私は3台のカメラでデータロガーを構築しており、24フレーム/秒でJPEGフレーム(約79MB/JPEG @24ビット/ピクセル)として出力します。これらの画像を撮影してビデオに変換したいと考えています。
ビデオについては、1080p のビデオ品質を生成するために使用するビデオのサイズとエンコード形式を推定しようとしています。また、ビデオのエンコードにかかる時間を推定するにはどうすればよいでしょうか。
達成可能な最終的なデータ サイズを推定する式はありますか?
答え1
達成可能な最終的なデータ サイズを推定する式はありますか?
いいえ。サイズは、選択するエンコード設定、つまりレート制御モード、平均ビットレートまたは平均品質、フレームレート、圧縮効率と速度のトレードオフ、特定のエンコーダーなどに大きく依存します。
もちろん、単純な固定ビットレートのエンコード プロセスであれば、出力ファイルのサイズは簡単に計算できます。ただし、ほとんどの場合、固定ビットレートを強制することは望ましくありません。
ビデオについては、1080p のビデオ品質を生成するために使用する必要があるビデオのサイズとエンコード形式を推定しようとしています。
1080p は、垂直方向に 1080 ピクセルの解像度を意味します。これらの寸法には、固有の「品質」は付属していません。品質について話すときは、一般的に次のように分類します。
- ロスレス(数学的にロスレス)
- 視覚的にロスレス(元のバージョンとエンコードされたバージョンの違いは人間の目には見えない)
- 非可逆
RAW YUV、FFV1、HuffYUV などのロスレス コーデックを選択する場合、心配なのはファイル サイズだけです。ProRes や DNxHD などの視覚的にロスレスなコーデックを選択した場合でも、オンライン ストリーミングには適さない大きなファイル サイズが発生する可能性があります。
非可逆圧縮については、要件について考える必要があります。ファイル サイズが小さいことよりも、高速エンコードの方が重要ですか? 圧縮アーティファクトが心配ですか? それとも、ビデオを Web 経由でストリーミングして圧縮する必要がありますか? ストリームをアーカイブして後で視聴する予定ですか?
上記の質問への回答に応じて、Webストリーミングを可能にするために、低く制限されたビットレートのシングルパス高速エンコードプリセットが適している場合があります。または、一定の品質モード(例:x264 の CRF) は、忠実度を重視しながらも、サイズを小さくしたい場合におすすめです。
ビデオのエンコードにかかる時間をどのように見積もればよいでしょうか?
これは、CPUの性能、ビデオのピクセルサイズとフレームレート、時空間の複雑さ、エンコーダーのオプションによって異なります。libx264
たとえば、では、さまざまなプリセットから選択できます。FFmpeg H.264 エンコーディング ガイドいくつかのヒントについては。