H264 の JPG への解凍/分解 - 品質の問題

H264 の JPG への解凍/分解 - 品質の問題

1920x1080 30fps h264 ストリームをデコードしようとしています。VLC メディア プレーヤー (再生を一時停止) では個々のフレームが鮮明に見えますが、avconv (ffmpeg は非推奨となり、avconv に置き換えられました) を使用してデコードすると、フレームの品質が比較すると非常に悪くなります (主な不満はブロック状の表示です)。

avconv を呼び出す方法は次のとおりです:

avconv -i video.h264 -s 1920x1080 -f image2 temp/images/video-%03d.jpg

avconvにjpg出力設定はありますか?avconvのドキュメントの重要な部分と思われる部分を読みました(つまり、http://libav.org/avconv.html#image2-1)、出力 jpg 品質を指定する方法が見つかりませんでした。

さらに、avconv はデコードを開始する前にストリーム全体を読み取るようです。そのため、ストリームが進行中の場合は、avconv がデコード プロセスを開始したときのストリームの位置までしかデコードしません。これを回避する方法はありますか? つまり、10 秒間のストリームが t 秒に開始され、avconv が t+1 秒に開始された場合、avconv はストリームの 1 秒のみをデコードします。

答え1

次のパラメータを使用すると、JPEG 品質スケールを可能な限り最高の JPEG 品質に強制することができます-q:v 1

avconv -i video.h264 -s 1920x1080 -f image2 -q:v 1 temp/images/video-%03d.jpg

答え2

JPEGは非可逆コーデックなので、PNGを使用することをお勧めします。

ffmpeg -i video.h264 -s 1920x1080 temp/images/video-%03d.png

関連情報