Linux DVB ビデオ キャプチャ カードを使用して、単純な「TV ビューア」を作成しようとしています。現在、次のプロセスを使用してテレビを見ています (私は Raspberry Pi を使用しています)。
- を使用してチャンネルに合わせ
azap -r TV_CHANNEL_HERE
ます。これにより、 device にバイトが提供されます/dev/dvb/adapter0/dvr0
。 - OMXPlayerを開く
omxplayer /dev/dvb/adapter0/dvr0
- テレビを見る!
チャンネルを変更しようとすると問題が発生します。着信バイトをキャッシュするようにプレーヤーを設定しても (MPlayer でも試しました)、プレーヤーはチャネルの変更に耐えられません (azap
新しいチャネルで再起動することによる)。
これは、MPEG TS ストリームのメタデータが変更されたためだと思います。
次のことができる C ライブラリを探しています。
- DVR デバイスからcache_size * mpeg_ts_packet_sizeを取得します。
- 各パケットを評価し、必要に応じてメタデータ (PID など) を書き換えます。
- 結果のパケットを FIFO に取り込みます。
- {OMXPlayer,MPlayer} を FIFO から読み取るように設定します。
私が考えていたもう 1 つのことは、MPEG TS を MPEG PS に変換し、そのようにバイトを連結するプログラムを使用することです。
考え?