2011-03-26 15 views
0

私はDVB-TチューナーでDVBチャンネルを録音しようとしています。 私はすでにこのトピックについて多くの研究をしましたが、本当に "情報"を得ることはできません。DVBチャンネルの録画

私は基本的にデフォルトのGraphEditで独自のグラフを作成することができます。調整要求を行い、チャンネルを見ます。グラフをC#コードDirectShowLibまたはC++に変換することは大きな問題ではありません。

しかし、私が知らないことは、映画を記録する正しいアプローチは何か。

+0

元の(MPEG-TS)ストリームを記録しますか?ストリーム全体、または1つのチャンネルだけ? – wimh

+0

主にただ1つのチャンネル... "ただ1つのチャンネル"と元のTSストリームの違いは私にとってはっきりしませんか? – LatinChriz

+1

TSストリームには、その内部に複数のプログラム(チャネル)がリストされています。たとえば、オーディオとビデオの2つのチャンネルがある場合、TSストリームに多重化された4つのストリーム、1つのビデオと1つのオーディオ/チャンネルがあります。したがって、オリジナルのストリーム全体を録音すると、両方のプログラムを同時に取得できます。それ以外の場合は、関心のあるチャンネルを分割し、オーディオ/ビデオをいくつかのコンテナ形式に再エンコードして、そのコンテナを保存する必要があります。 –

答えて

0

グラフの最も重要な部分は、いくつかのチューニング関連のフィルタで、デマルチプレクサ(demux)に接続し、demuxはビデオとオーディオストリームを出力します。

mpegストリームを取得する最も簡単な方法は、demuxの前にフィルタを置くことです。たとえば、サンプルグラバー。ここでは、ブロードキャストされているときに完全なトランスポートストリームを受信します。しかし、それは通常、同じ周波数で多重化されているmultiple programsを含んでいます。 1つのプログラムだけが必要な場合は、ストリームから他のプログラムをフィルタリングする必要があります。

1つのプログラムだけが必要な場合は、デマルチプレクサから出てくるオーディオとビデオストリームをマルチプレクサに直接接続し、その出力をファイルに書き込む方が簡単でしょう。デマルチプレクサとマルチプレクサの間にデコーダやその他のフィルタがないことを確認する必要があります。問題は、ウィンドウに標準マルチプレクサが含まれていないため、ダイレクトショーマルチプレクサを見つける必要があることです。私は自由マルチプレクサを知らない。

また、オーディオとビデオを直接ファイルに書き込むこともできます。 (もう一度デコードすることなく、または何か他のもの)。次に、例えばffmpegを使用してオーディオとビデオを1つのファイルに結合します。

C:\> ffmpeg -i input.m2v -i input.mp2 -vcodec copy -acodec copy output.mpg 

また、オーディオストリームまたはビデオストリームを同期させるには、それらを遅延させる必要があります。

さらに、ffmpegからconvertまでのマルチプログラムトランスポートストリームを1つのプログラムストリームに追加することもできます。

+0

私は1つのチャンネルしか必要ないので、私はTS - Streamの一部だけを必要とします!グラフには既にチューニングに関連するフィルタがあります。これは、ビデオミキシングのレンダリングフィルタでテレビ信号を見るためです。私は主にMPEG2デマルチプレクサからすべてのデータをファイルに書き込むDirectShowフィルタを主に書きましたか? – LatinChriz

+0

マルチプレックスフィルタを見つけたり、自分で作成したりする必要があります。また、ファイルライタを使用して出力をファイルに書き込む必要があります。あるいは、2人のファイルライターを使ってオーディオとビデオを別々に2つのファイルに書き込んだり、後で多重化したりすることもできます(DirectShowではなく)。しかし、適切なマルチプレクサが見つからない場合は、デマルチプレクサの前にサンプルグラバフィルタを追加し、必要のないPID以外のファイルにすべてを書き込む方が簡単です。そうした場合は、PATを変更する必要がありますが、PATを変更しなければ何も問題はありません。 iso13818-1にはmpeg-tsに関する技術情報が含まれています。 – wimh

+1

すべてのご提案ありがとう!私は自分のdirectshowフィルタを書いて、私のC#アプリケーションでコールバックと接続しています。私はTS-Steamで何でもできます...コードのほんの数行:-) – LatinChriz