2017-05-28 10 views
0

C#/ WinForms/VMR9/DirectShowLib-2005を使用して、ローカルのビデオファイルを再生するか、サードパーティのDirectShowフィルタを使用してudp経由でライブビデオストリームを受信(レンダリング)します。ビデオストリームはH.265コーディングを使用し、1080pファイルを送信します。C#ビデオウィンドウでDirectShowフィルタグラフを実行したままにする方法は、サイズ変更、最小化、デバイスの紛失、リセット?

ローカルファイルにライブビデオフィードを記録するDirectShowフィルタもあります。

ビデオ再生中またはライブビデオフィード再生中にフォームのサイズを変更すると、デバイスが失われてリセットされる必要があります。すべてのリソースを解放していますが、グラフも破棄しない限り、デバイスのリセットは失敗します。しかし、それは私のライブビデオフィードを受信し、それを記録するために使用されています。

問題は、サイズ変更、別のモニタへの移動、デバイスの消失またはリセットによって中断することなくビデオフィードを記録しておきたいことです。これを達成するための私の選択肢は何ですか?コードをWPF/WFに変換し、市販のものを購入したり、無料のプラグインを使って仕事をしたりすることも考えられます。ここでアドバイスが必要です。

同じ問題について2番目の質問があります。ライブフィードはローカルファイルに記録され、ビデオウィンドウでそのライブフィードを再生している間に、ライブビデオフィードの開始から現在の瞬間までの時間を表すタイムライン(スライダーコントロール)も表示されますライブフィードがアクティブな間、前方に移動します)。以前の瞬間を選択してすぐに録画ビデオのその部分を再生できるようにする必要があります。ライブフィードは同じファイルに記録されます。録画したビデオの一部を見直した後、私はライブフィードの視聴をユーザーに許可する方法を知る必要があります。

これを達成するためにどの技術を使用するべきかわかりません。助けていただければ幸いです。

ありがとうございました。

答えて

0

録画フィルタグラフは予期しない状態遷移に敏感で、ビデオハードウェアのリセットやフォーマットの変更などのために一時停止や継続を行わずに「一度に」録画が行われることを前提としています。

典型的な方法は、録音を他のアクティビティと別のグラフに分けることです。専用の記録グラフは、外部で生成されたデータを受信し、ファイル(またはネットワークへのストリーム)に記録します。別のグラフで実行される再生およびプレゼンテーションアクティビティは、必要に応じて柔軟にリセットまたは再構成できます。

も参照してください:

関連する問題