web-dev-qa-db-ja.com

ffmpegはMJPEGエンコーディング用に高品質の画像を生成します

Mov/H.264ファイルがたくさんあるので、mov/MJPEGにエンコードします。ただし、非常に低品質の出力が得られます。ここに私が試したものがあります:

ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov

H.264エンコードの場合、-crfおよび-presetフラグはより高い品質を生成します。しかし、それはMJPEGでは機能しないようです。

10
Arun

-q:vを使用して(M)JPEG品質を制御します

有効範囲は2〜31の線形スケールであり、値を小さくすると出力の品質が向上します。

MOVコンテナでMJPEGビデオを作成します。

ffmpeg -i input.mov -c:v mjpeg -q:v 3 -an output.mov

一連のJPG画像を出力します。

ffmpeg -i input.mov -q:v 2 images_%04d.jpg

ファイルには、images_0001.jpgimages_0002.jpgimages_0003.jpgなどの名前が付けられます。


プライベートオプション

H.264エンコードの場合、-crfおよび-presetフラグはより高い品質を生成します。しかし、それはMJPEGでは機能しないようです。

MJPEGエンコーダーは-crfおよび-presetを使用しません。これらは、libx264、libx265、libvpxなどの一部のエンコーダーでは "private"オプション です。次のようなプライベートオプションを見ることができます:ffmpeg -h encoder=mjpeg

26
llogan