2017-12-25 12 views
0

私は、system()経由でffmpegを呼び出して、一連のJPGからビデオをエンコードするタイムラプスプログラムで作業しています。ユーザーは、圧縮コーデックを含むいくつかのオプションを選択できます。 libx264とmjpegエンコーダを使用すると非常に良い結果が得られます。私はVP9でそう多くの結果を得ています。VP8ではいくつかの恐ろしい結果を得ています。VP8で見栄えの悪いビデオを生成するffmpeg

私はffmpegを次のように呼びます:ffmpeg.exe -framerate 12 -i "./output/img_%05d.jpg" -dst_range 1 -color_range 2 -c:v libvpx -b:v 0 -threads 8 - スピード2 -crf 8「./output/video.webm」

私はユーチューブにアップロードされたサンプル:https://www.youtube.com/watch?v=eG2jxzR3Uxs(あなたが9秒マークの後に本当に悪いのフレームを見ることができます

私がやっているものを任意のアイデアを。間違っていますか?

答えて

3

CRF(libvpx wikiも参照)でも、最高の結果を得るには、2パスエンコーディングを使用することをお勧めします。ここで使用している1パスallyはlibvpxでかなり悪い結果を出します。私はそれが典型的ではないことを知っています、CRFはマルチパスの影響を受けるべきではありませんが、残念なことにlibvpxは少し違っています。他のエンコーダは1パスCRFで正常に動作します。

CRFインデックスは同じですが、必ずしも同じ有効な量子化ツールを選択したり、同じビットレートの近くにいるわけではありません。有効なビットレートを考慮せずに1つのエンコーダまたはコードが他のエンコーダまたはコードより優れた結果をもたらすという事実は、それ自体ではあまり有用ではありません。通常は、ビットレートの関数として品質を分析します。

これは、VBRを使用することによっていくらか改善される可能性がありますが、実際のビットレートはレート制御/ターゲット設定が貧弱な場合は目標ビットレートからかなり離れている可能性があります。したがって、ターゲットだけでなく実際のビットレートビットレート。

+0

私は圧縮ごとに異なるCRFを使用しています(たとえば、libx264は18〜28のようなものを好みます)。手動でビットレートを設定する方が良いでしょうか? – Radu

+0

また、私はvp8とvp9の両方でほぼ同じ設定を使用していますが、vp9のほうが私にはるかに良い結果をもたらしました(ただし、x264はどこにもありません)。 https://www.youtube.com/watch?v=achbQzpZ7YY – Radu

+1

シングルパスに固執したい場合は、どのようなコマンドをお勧めしますか? – Mulvya

関連する問題