2011-07-13 10 views
0

DirectShow互換カードからAVIファイルにビデオをキャプチャするプログラムを設計しています。 AVIファイルは一度に何時間も書き込まれる可能性が非常に高いです。まだ書き込まれている間にファイルからビデオを再生する方法はありますか?もしそうなら、私のクリップを構成するファイル内の開始点と終了点を定義できますか?クリップをプレイしたら、これ以上の使用はできませんので、新しいAVIファイルとして保存する必要はありません。個々のフレームキャプチャを保存する方が良いでしょうか?開いているAVIファイルからの読み取り

答えて

1

2つの問題があります。 1つ目は、グラフが停止したときにのみインデックステーブルがファイルに書き込まれることです(これはAVIとMP4に当てはまります)。もう1つは、ファイルリーダーがFILE_SHARE_READでファイルを開くことです。

ファイルリーダーを書き込み用に開いたファイルと互換性のあるものに置き換えると、索引なしでファイル内のチャンクに順番にアクセスする必要があります。これはAVIでも可能ですが推奨されておらず、代わりのデマルチプレクサが必要です。

代替手段:グラフを停止せずにGMFBridgeのようなものを使って新しい出力ファイルに切り替えることができます。その後、以前の出力ファイルにアクセスできましたが、現在の出力ファイルにはアクセスできませんでした。または、mpeg-2 PSのような索引付けされていない形式を使用することもできます。

+0

個々のフレームを.BMPイメージとしてファイルにキャプチャして、タイムコードに基づいてインデックスを作成するとどうなりますか?私の目標は、一度に3台のカメラからキャプチャすることです。私はそれらを1フレームまたは2フレーム以内に同期させる必要があります。私が提案したことは、圧縮されていないビデオをAVIファイルにキャプチャするよりもはるかに多くのCPUを必要とするでしょうか? –

関連する問題