私は間違いなくFFMPEGの専門家ではありませんが、このドキュメントによると:
プリセットは、特定のエンコード速度と圧縮率を提供するオプションのコレクションです。プリセットを遅くすると、圧縮率が高くなります(圧縮率はファイルサイズごとの品質です)。一般的な使用法は、忍耐力のある最も遅いプリセットを使用することです。速度の降順での現在のプリセットは、超高速、超高速、超高速、高速、高速、中、低速、低速、非常に低速、プラセボです。
したがって、私が理解しているように、ffmpeg
プリセットは出力ビデオの品質に影響を与えるべきではなく、圧縮率/出力ファイルサイズのみを決定する必要があります。したがって、同じ品質設定(私が使用します-crf 24
)を想定すると、ファイルは、たとえばfaster
プリセットの場合よりもプリセットの場合の方が大きくなりますslower
。これが、ファイルサイズを小さくするために遅いプリセットを使用する唯一の理由です。
これは事実ではないことが判明しました。さまざまなプリセットを使用してハンディカムからのHDストリームをエンコードしますが、それ以外はすべて同じです。
ffmpeg -y -i "$fname" -vf yadif=1,scale=-1:720 -acodec aac -ab 128k -ac 2 -strict experimental -vcodec libx264 -vpre slow -threads 2 -crf 24 "$outp"
驚いたことに、veryfast
プリセットのファイルサイズが最小になりました。例えば:
slower
:出力ビットレート3500kbps、エンコード速度17 fps、ファイルサイズ29MBveryfast
:出力ビットレート3050kbps、エンコード速度34 fps、ファイルサイズ25MB
あるべき姿ではないと思います。veryfast
プリセットのエンコード品質が悪いためだろうか?または私の場合、使用するslower
ことは単に何らかの理由で意味がありませんか?