コーデックの指定
:CPU H264 : -vcodec libx264 :CPU H265 : -vcodec libx265 :Nvidia H264 : -vcodec h264_nvenc :Nvidia H265 : -vcodec hevc_nvenc
downloadしながら再生に対応
-movflags +faststart
参考
http://tech.ckme.co.jp/ffmpeg_h264.shtml
ソフトウェアエンコードとGPUを利用したハードウェアエンコードの差が激しい
速度的には、圧倒的にハードウェアエンコードだが、ファイルサイズ的には、圧倒的にソフトウェアエンコードが有利という結果に。
どちらをメインで使うか悩んでしまう結果となった。
要約すると下記表の通り
h264 | h265 | |||
速度 | ファイルサイズ | 速度 | ファイルサイズ | |
cpu | 8.6x | 81.9MB | 2.5x | 46.1MB |
gpu | 11.5x | 380.7MB | 11.5 | 381MB |
Machine
CPU Xeon E5-2687W SMP PowerLimit 80%
MEM 64GB
GPU GTX-1080
OS Windows 10.0.17134.228
FFMPEG 4.0.2
source file
Stream #0:0[0x1003]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, top first), 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x1043]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 256 kb/s
h264 cpu encoding 8.6x(9.3x) 81.9MB
ffmpeg -deinterlace -dual_mono_mode main -i test.ts -vcodec libx264 -movflags +faststart test.cpu264.mp4
h264 gpu encoding 11.5x 380.7MB
ffmpeg -deinterlace -dual_mono_mode main -i test.ts -vcodec libx265 -movflags +faststart test.cpu265.mp4
h265 cpu encoding 2.5x(3.2x) 46.1MB
ffmpeg -deinterlace -dual_mono_mode main -i test.ts -vcodec h264_nvenc -movflags +faststart test.gpu264.mp4
h265 gpu encoding 11.5x 381MB
ffmpeg -deinterlace -dual_mono_mode main -i test.ts -vcodec hevc_nvenc -movflags +faststart test.gpu265.mp4