2011-10-18 38 views
1

C#で記述されたアプリケーションはDirectShowを使用して、Audio + VideoをAVIファイルに記録しています。 しかし、ビデオソースは非定常フレームレートを生成します。たとえば、フレームレートを24 fpsに設定すると、実際のレートは24〜30 fpsの間で変動します。ビデオソースフレームレートのジッタ

これにより、結果のAVIファイルにオーディオ/ビデオの同期の問題が発生します。

可能な解決策は、レートドロップフレームを調整する、または要求されたレートを維持するためにフレームを複製するフィルタをグラフに追加することです(AVIに書き込む直前)。

解決策は実現可能だと思いますか?
この問題の他の解決方法はありますか?

ありがとう、
Ury。

答えて

2

AVIコンテナは、固定フレームレートを使用しています。このフレームレートは、ファイルを開始する前に指定する必要があります。ビデオフレームはフレームレートに一致する必要があります。十分なデータがない場合は、フレームをゼロにすることができます(長さゼロのフレーム)。その結果、AVI形式は可変フレームレートビデオにはあまり適していません。あなたのための

オプション:あなたは高いが、柔軟に、すべてのフレームを保存するために、フレームレートを落として、高AVIフレームレートを使用

  • 良く適したコンテナフォーマットを使用し
  • を示唆したよう

    • は、ビデオフレームの時間を調整フレームの時間グリッドを小さくする
  • +0

    残念ながら、AVIコンテナは必須です。 3番目の選択肢についてさらに説明できますか? –

    +0

    たとえば、AVIを作成することができます。フレームをドロップする代わりに複製します。しかし、なぜソースフレームレートが安定していないのか、それについて何かできることがあるかどうかを調べることをお勧めします。ソースが安定していない場合、スムーズなジッタのないビデオを得ることはほとんど不可能です。 –

    関連する問題