現在、私はこのコマンドを使用して画像を抽出しています:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.jpeg
しかし、どうすればJPEG画像の品質を改善できますか?
-qscale:v
を使用出力オプションとして-qscale:v
(またはエイリアス-q:v
)を使用します。 JPEGの有効範囲は2〜31で、31が最低品質です。 2〜5の値を試すことをお勧めします。
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
これは、どのビデオ入力でも機能します。入力がMJPEGの場合は以下を参照してください。
入力がMJPEG(Motion 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