質問

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

ストレージハードドライブに残っているスペースに基づいて、残りの記録時間の大まかな見積もりを提供しようとしています。残念ながら、ビデオの圧縮は画像の複雑さによって出力サイズが大きく異なることを意味するため、コードのビット率の出力ファイルサイズを単純にベースにすることはできません。

何かご意見は?

FYI私はC#とDirectShowを使用しています。

役に立ちましたか?

解決

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

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

オプション1は、簡単に簡単に開始する方法です。オプション2にはもう少しプログラミングが必要ですが、推定値は実質的に正確になります。結局のところ、これらのインスタンスでの圧縮は、あなたが録音しているものに基づいています。 1時間の固体緑色のスクリーンを記録するには、前景が継続的に変化している、またはフラクタルシーケンスで動く背景を記録するよりも、ディスクが大幅に少なくなります。事前に良い見積もりを行う方法はありません。

他のヒント

過去のX秒で受信した圧縮率を使用することにより、将来の圧縮サイズを推定できます。値が大きすぎたり、小さすぎたりしないでください。

期間が小さすぎると、時間が大きく変化する可能性があることを意味します(ビデオの動きの量に応じて)。時間が長すぎると、時間が非常に不正確になることを意味します。

30秒の時間は合理的な程度の精度を提供できると思います

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top