ffmpegエンコード処理の確認

 
パイプでffplayへ出力 

ffmpegで動画の品質を設定するオプションが -crf です。

動画の品質とファイルサイズは反比例するので妥協点を探すのが大変なのですが、実際にエンコードして見比べるしか方法は無いのかと思っていました。

ffmpeg関連でいろいろ調べていると、どうやらパイプという機能を使えばファイルへ出力せずとも品質を確認できることがわかり、早速テストしてみました。

以下がそのバッチファイルです。このバッチファイルへドロップした動画を 2分からスタートして 5秒間だけプレビューし、-crf を 21から27まで品質を変えて次々と見ていく方法です。

1
2
3
4
5
6
7
8
@echo off
set time=-ss 02:00 -t 00:05 -vcodec libx264
set vf=-vf scale=640:-1
set pipe=ffplay -i - -autoexit -window_title
 
for /l %%n in (21,1,27) do (
    ffmpeg -i %1 %time% -crf %%n %vf% -f matroska - | %pipe% crf=%%n
)

いやはやなんて便利なのでしょう。ffmpegを入手すると同梱されている ffplayにこんな使い方が有ったとは。