0

2 つの DirectShow グラフを作成しました。1 つは Hauppauge HD-PVR からキャプチャし、StreamBufferSink に保存します。2 つ目は を使用しStreamBufferSource、出力を MPEG-2 Demultiplexer に送信し、ビデオを ArcSoft Video Decoder に送信してから、ウィンドウレス モードでセットアップされた Video Mixing Renderer 9 に送信します。

これはすべて、データのプレビューには問題なく機能します。IStreamBufferMediaSeeking.SetPositionsメソッド ( からインターフェイスを取得する)を使用しStreamBufferSourceて再生位置を変更するときに、ストリームの先頭以外の場所に設定すると、ビデオがフリーズして更新が停止します。呼び出すGetCurrentPositionIStreamBufferMediaSeeking、位置がストリーム上で移動していることがわかりますが、ビデオは追従していません。

プログラミングには C# と DirectShowLib-2005 を使用しています。

何が間違っているか、または何が間違っているかを理解する方法についてのアイデアはありますか?

4

2 に答える 2

0

私が発見したのは、StreamBufferSink/StreamBufferSource が MPEG-2 または DV ビデオのみを理解することです。H.264 はサポートされていないため、ストリーム内をシークする方法がわからないため、H.264 を持つ目的を無効にする MPEG-2 にストリームをトランスコードしない限り、このコンポーネントを目的に使用することはできません。そもそもストリーミング。

于 2009-02-09T21:44:46.567 に答える
0

詳細情報: これは、ストリーミング バッファー エンジンの更新により、実際には Windows 7 で動作します。巻き戻すには、データを Stream Buffer Sink に入れる前に、ストリームを分離し、MPEG-2 ビデオ ストリーム アナライザー フィルターを追加する必要がありました。

于 2011-02-15T19:22:49.990 に答える