私には多くのビデオがありますが、そのほとんどは動きがほとんどまたはまったくない静的イメージです。特定のシーケンスにのみアクションが多いアニメーションシーンがあります。
これでファイルサイズを小さくしたいのですが、crfまたは特定のビットレートを使用するffmpegが最善の方法ではないようです。 ffmpegが動きのあるシーンでは自動的に高いビットレートを使用し、ほとんどのシーン(バッファなど)ではほぼ0ビットレートを使用するオプションはありますか?
ありがとう
答え1
これがCRFが実行する必要がある作業です。 CRFは継続的な認識品質を維持する必要があります。または、特定のファイルサイズをターゲットにする必要がある場合は、デュアルパスモード(-pass
および使用-passlogfile
)を使用できます。ここで、最初のパスではビットが必要なシーンを検索し、2番目のパスでは可能な場合はビットを割り当てます。
一部のコードには、さまざまなビデオタイプの調整オプションがあります。たとえば、H.264でエンコードする場合は、静止画またはアニメーションを調整してみてください。 (もちろん、可能であればコーデックを変更してください。または、画像の種類に応じてH.264に対して10ビットを有効にし、可能であれば再度有効にしてください。)
シーンチェンジ検出とキーフレームに触れる価値があります。静的画像を含む写真を望むことがよくあります。最初は、アーティファクトがいっぱいの静的画像を表示し、突然鮮明になる途中でキーフレームを置くのが最悪のエンコーディングです。これには多くのオプションがあります。無差別代入方式は-force_key_frames
。
他の方法が機能しない場合は、-rc_override
フレームごとに量子化器/品質要素を手動で設定できます。特に静止フレームが許可されるように残りのオプションを設定した場合は、それを使用してアニメーション部分を変更できます。しかし、これは多くの作業が必要なので、最後の手段です!
しかし、スチールフレームの内容に応じて多くのビットを占めることができます。ビデオエンコーディングは、できるだけ少ないビットで動作を表現する方法を見つけることです。特に、視聴者がアーティファクトに気付くのに十分な時間があるため、複雑なストップフレームには多くのビットしか必要ありません。
あなたがStack Exchangeについて知っているかどうかはわかりません。ビデオ制作ウェブサイト;そこに聞いてみるといいようです。