8

テレビ信号 (dvb-t スティックから) のライブビューを含むフォームがあります。http://directshownet.sourceforge.net/about.htmlからサンプルプロジェクト「DTViewer」を取得しました。ここで、ボタンをクリックしてストリームをムービー ファイルにキャプチャしようとしましたが、どうすればよいでしょうか。C# と DirectShow.NET を使用しています。

多くのサンプル プロジェクトを検索しようとしましたが、これらは BDA (ブロードキャスト ドライバー アーキテクチャ) インターフェイスを備えた dvb-t スティックではなく、ビデオ入力用に作成されています。

ヘルプ!

4

3 に答える 3

4

「ムービーファイル」の正確な意味はわかりませんが、MUX(トランスポートストリーム)全体をキャプチャする方法は説明できます。Microsoft DVBTネットワークプロバイダーYou_Name_It BDA DVBTチューナーYou_Name_ItBDAデジタルキャプチャおよびMPEG-2デマルチプレクサフィルターを使用

してグラフを作成します。それらを接続したら、MPEG-2デマルチプレクサのすべての出力ピンを列挙してレンダリングします。選択した頻度を調整します(put_TuneRequest)。この時点で、すべてがグラフを実行する準備ができていますが、実行しないでください。グラフ内のすべてのフィルターを列挙します。Microsoft DVBTネットワークプロバイダーYou_Name_ItBDADVBTチューナーを除くすべてのフィルターを切断します



およびYou_Name_ItBDADigitalCaptureMPEG-2デマルチプレクサ

を除くこれらの切断されたフィルタをすべてグラフから削除します(接続されていなくてもグラフに含まれている必要があります)。サンプルグラバーフィルターとNULLレンダラーフィルターを追加します。デジタルキャプチャフィルターをサンプルグラバーに接続し、サンプルグラバーNULLレンダラーに接続します。これでグラフを実行できます。サンプルグラバーフィルターのコールバックを介して、MUX全体を受け取ります。もちろん、データをデマルチプレクサする作業はまだいくつかありますが、一度それを実行すると、すべてのTV番組を1つのMUXで一度にキャプチャできます。TSがブロードキャストされているため(188バイト長のパケット)、TS形式でキャプチャするのが最も簡単な方法です。

于 2010-12-06T07:49:04.233 に答える
2

私にはVLCがBDAサポート(BDA.cファイルリファレンス)を持っているように見えます、多分あなたは彼らのコードから何かをスヌープすることができますか?

于 2010-12-02T23:08:57.090 に答える
1

あなたの質問に対する簡単な答えはありません。私はそのようなプロジェクトの 1 つを開始しましたが、それについて私が知っていることはほとんどないことがわかりました。

まず、dvb-t チューナー カードまたはスティックは従来の意味でのビデオ フレームを提供しないことを理解する必要がありますが、デコードは PC の CPU 上で行われます。外付けカードは、空気から取得するため、圧縮されたデータのみを提供します。

次に、配信されるデータは MPEG2 または MPEG4 トランスポート ストリーム形式になります。ファイルへの保存ではなく、ストリーミングまたはブロードキャストに適しています。VLC はファイルに書き込まれた TS を再生できますが、適切なビデオ ファイルを記録するには、ファイルをトランスコードするか、プログラム ストリームに再パックする必要があります。ちょっとググってみれば違いがわかる。

さらに、放送中の 1 つの周波数は多くのチャネルで構成されており、そのチャネル パッキングは「mux」と呼ばれます。そのため、BDA チューナー/キャプチャーからすべてのデータを取得し、手動でデマルチプレクサーを実行するか、BDA デマルチプレクサーに任せる必要があります。

開始するのに十分な情報であることを願っています。実際のキーボードに到達したら、いくつかの興味深いリンクを投稿できます。

于 2010-12-06T07:32:47.267 に答える