ffmpegでH265エンコ

Arcsoft mediaconverterを愛用していたが、

  • 開発停止
  • Windows10で起動せず

で使用不可能に。バッチ処理可能、そこそこ高速(QSV使用)で、実時間の1/4程度でエンコできた。
欠点として、動画の種類によってはスレッドがハングすると動作が止まり、つまり、queueにいくら動画が並んでいてもハングしたまんま。
エラーをログに吐いて次に進んで欲しかったが。


で、次に使ったのがhandbrake。悪くないのだが、これ、突っ込むとプレスキャンすんのな。大量のファイル入れると、暫くファイルを操作するので、それが終わらないとエンコの命令が打てない。


でで、ffmpeg。これでバッチファイルを組めばD&Dでイケる。


:REPEAT
set size=-1440
rem 画像サイズの表示をファイル名に加えるだけ。ffmpegのオプションにはしていない

set filename1=%1
set filename2=%~p1%~n1%size%.mp4



C:\Users\hogehoge\ffmpeg.exe -i "%filename1%" -c:v libx265 -pix_fmt yuv420p -preset medium -tune animation -movflags +faststart "%filename2%"
rem サイズ指定は 例  -s 960x540 

if "%~2"=="" GOTO EXIT
shift
GOTO REPEAT

:EXIT
pause

結果は、
元動画 1440x1080 1:25 144MB

1440x1080 31.2MB 15.7fps
960x544 10.4MB 30? fps
640x480 7.7MB 62fps

Haswell のi7だとこんなもん