この質問は以前に尋ねられたと思いますが、検索したところ、解決に役立つ具体的なものは見つかりませんでした。
最初の懸念事項の概要を説明することから始めます。より詳細な技術情報が必要な場合は、それを提供できます。最初の質問に十分な情報があることを願っています。
Visual Studio 2010 で c++ と directshow を使用してアプリを作成しています。主なプロジェクトの仕様は、ライブ プレビュー用であり、任意の時点で、ビデオを mpeg2 に記録してハードドライブに記録し、次に dvd に記録して、標準の dvd プレーヤーで再生します。 、常にライブ プレビューが中断されないようにします。
キャプチャは、directshow を使用するための非常に些細な標準的な簡単なことのようです。
私が書いたカスタムフィルターがいくつかあります。驚くべきことではありませんが、独自のカスタム スクリーン オーバーレイ情報 (時間と日付など) が必要でした。これは、プレビューと記録されたファイルに含まれている必要があります。キャプチャ カードのビデオ出力ピンに接続された avi デコンプレッサを使用し、avi デコンプレッサをフィルタに接続して、操作可能な RGB イメージを提供します。このフィルターからの出力は、inftee フィルターを介して分割され、1 つは画面に送られ、もう 1 つは ms mpeg2 エンコーダーに送られます。オーディオは、キャプチャ カードのオーディオ出力から同じ mpeg2 エンコーダに送られます。次に、mpeg2 エンコーダーからの出力がファイルに送られます。そのファイルは、DVD 用にオーサリングされ、DVD に書き込まれます。
だから私の質問は...
mpeg2ファイル出力のみの開始と停止を許可するのに最適な場所はどこで、どのようにしてユーザーの操作で実行できますか?
スマート ティー フィルターを使用してみました。ビデオ用に 1 つ、オーディオ用に 1 つを mpeg2 エンコーダーの前の最後のフィルターとして使用し、iamstreamcontrol インターフェイスを使用して適切なタイミングでピンをオフにします。これにより、最終的な mpeg2 でタイミングの問題が発生する必要がありますか? 出力ファイルは mplayer や vlc などを介して再生されますが、mpeg2 DVD 準拠に変換されないため (テスト用 - 任意の DVD オーサリング ソフトウェアを介して - 壊れたファイルの苦情と somteimes が時間の参照を提供します) -ファイルに問題があり、エラーが発生していますか? キャプチャが開始された最初の瞬間からファイルがキャプチャされた場合 (ストリーミングの 5 分後ではなく)、すべて問題ありません。
streambuffer ルートを使用することを考えました - http://msdn.microsoft.com/en-gb/library/windows/desktop/dd693041(v=vs.85).aspx - しかし、最善の方向についてはわかりません物事を取る。最良の方向への選択肢はおそらくいくつかあるようです。
どんな助けやヒントも大歓迎です。特に、DirectShow フィルター、ピン、グラフ、およびそれらがどのように一緒に流れるかについての Web サイト/本/情報がある場合。
編集: 私は「スマート ティー」フィルターの独自のコピーを作成することを考えていました。つまり、オーディオとビデオの 2 つの入力ピンと、4 つの出力ピン - 2 つのビデオ (1 つのプレビューと 1 つのキャプチャ) と 2 つの出力ピンがあります。オーディオでも同じですが、同じ問題が発生しますか? そして、そのカスタム フィルタのキャプチャ ピンを「オフにする」処理の正しい方法は何ですか。このような作業に時間を費やすことになるでしょうか? 出力ピンのアクティブ/非アクティブ メソッドをオーバーライドし、サンプルを送信するか送信しないかの単純なケースですか? そんなに簡単じゃない気がする?
どうもありがとう!