2

ライブ ソースから WMV ファイル (WMV1 圧縮を使用) にビデオを記録するソフトウェアを開発しています。

ストレージ ハード ドライブの空き容量に基づいて、残りの録音時間の概算を提供しようとしています。残念ながら、出力ファイル サイズを単純にコーデックのビット レートに基づいて決定することはできません。ビデオ圧縮は、画像の複雑さによって出力サイズが大幅に変わることを意味するからです。

何かご意見は?

参考までに、C# と DirectShow を使用しています。

4

2 に答える 2

1

これは本当に良い質問です。残念ながら、これを確実に行う方法はありませんが、2つの基本的なオプションがあります。

  1. 実験またはコーデックプロバイダーからのデータに基づいて、特定のビットレートで特定の時間単位ごとに使用される平均スペースを事前に計算します。
  2. テクニック#1を使用することから始めますが、次に、現在使用されているスペースをファイルで割って合計記録時間から、特定の記録中に使用されている平均スペースを決定するメカニズムを作成します。次に、このメトリックを使用して、残り時間を決定します。

オプション1は、すばやく簡単に開始する方法です。オプション2にはもう少しプログラミングが必要ですが、見積もりは大幅に正確になります。結局のところ、これらのインスタンスでの圧縮は、記録しているものに基づいています。緑色の画面を1時間記録すると、前景が連続的に変化する移動する背景やフラクタルシーケンスを記録するよりも、ディスクの使用量が大幅に少なくなります。事前に適切な見積もりを行う方法はありません。

于 2010-01-07T15:21:03.493 に答える
0

最後の x 秒間に受信した圧縮率を使用して、将来の圧縮サイズを推定することしかできません。値が大きすぎたり、小さすぎたりしないでください。

時間が短すぎると、[ビデオの動きの量に応じて] 時間が大幅に変化する可能性があり、時間が長すぎると、時間が非常に不正確になります。

30 秒あれば妥当な精度が得られると思います。

于 2010-01-07T15:48:17.980 に答える