ffmpegを使用してH264ビデオファイルから高品質のJPEG画像を抽出するにはどうすればよいですか?


108

現在、私はこのコマンドを使用して画像を抽出しています:

ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.jpeg

しかし、どうすればJPEG画像の品質を向上させることができますか?


1
現在の品質の何が悪いのでしょうか、それ以外は「良い」とは言えないのですか?
bjoernz 2012

回答:


215

使用する -qscale:v

出力オプションとして-qscale:v(またはalias -q:v)を使用します。JPEGの有効範囲は2〜31で、31が最低の品質です。2〜5の値を試すことをお勧めします。

一連の画像を出力するには:

ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg

〜60秒の持続時間で単一の画像を出力するには:

ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg

これは、どのビデオ入力でも機能します。入力がMJPEGの場合は、以下を参照してください。


MJPEG

入力がMJPEG(モーションJPEG)の場合、画像は品質を損なうことなく抽出できます。

ffmpegまたはffprobe、あなたの入力がMJPEGの場合は、コンソール出力はあなたを伝えることができます。

$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg

次に、mjpeg2jpegビットストリームフィルターを使用してフレームを抽出できます

$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg

また見なさい


これは私には効果がないようです-qscale 1と2はどちらも同じファイルサイズを与え、(肉眼では)qscaleがない場合とまったく同じように見えます。
felwithe 2015年

使用している完全なコマンドラインを投稿できますか?また、ffmpegからの完全なノーカット出力をコマンドラインに投稿してください。オプションの配置が関連しているため、-qscale:v 2を-i inputfileオプションの後で、出力ファイルオプションの前に配置する必要があることに注意してください。
ロナルドS.ブルジェ

1
ファイルサイズ-qmin 1 -qmax 1-q:v 12倍にすることに加えて追加します。また、非常にわずかな改善も見られるようです。
complistic 2015年

1
@complistic:-qmin 1 -qmax 1ファイルは大きくなりますが、まったく同じ画像が表示されます。フォトショップ、2レイヤー、差分フィルターを使用してこれを検証しました。ピクセルは同じです。
cherouvim 2015年

@Kostanos試すことができ-qmin 1 -q:v 1ます。
llogan 2017年

0

PNGなどのロスレス形式で画像を出力します。

ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.png

次に、別のプログラムを使用して(品質、サブサンプリング、DCTメソッドなどをより正確に指定できます。GIMPなど)、必要なPNGをJPEGに変換します。

このように-qmin 1 -q:v 1してから直接JPEGとして出力するよりもわずかに鮮明な画像をJPEG形式で取得することができffmpegます。


ffmpegPNG8256色のみを使用するファイルを出力します(GIFと同じ)。そのため、実際非常に損失が大きくなります。
ラパン

@lapinこの方法を使用して抽出したPNGは24ビットです(256色未満のフレームでも、他のフレームの方が多い)。これはWindowsでバージョン4.2.1 x64を使用していました。また、書かれたここにある:「もし私のプルPNGのMP4から、この[とffmpeg]コマンド、私は、高品質なPNGのオリジナルビデオと同じ品質であることを取得します。」ファイルのffmpeg出力に使用しているのはどのバージョンでPNG8、入力形式は何ですか。
ジェイク

実際に私はあなたしている右、問題はそれだったと思うidentify image.png平均どのようにするとき、実際にそのことは本当に単一チャネルの8ビットの結果に「8ビット」を与えるが、R、G、BのIDKのための8ビットのidentifyユーザーが理解することになっていますそのtho。
ラパン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.