1

Linux DVB ビデオ キャプチャ カードを使用して、単純な「TV ビューア」を作成しようとしています。現在、次のプロセスを使用してテレビを見ています (私は Raspberry Pi を使用しています)。

  1. を使用してチャンネルに合わせazap -r TV_CHANNEL_HEREます。これにより、 device にバイトが提供されます/dev/dvb/adapter0/dvr0
  2. OMXPlayerを開くomxplayer /dev/dvb/adapter0/dvr0
  3. テレビを見る!

チャンネルを変更しようとすると問題が発生します。着信バイトをキャッシュするようにプレーヤーを設定しても (MPlayer でも試しました)、プレーヤーはチャネルの変更に耐えられません (azap新しいチャネルで再起動することによる)。

これは、MPEG TS ストリームのメタデータが変更されたためだと思います。

次のことができる C ライブラリを探しています。

  1. DVR デバイスからcache_size * mpeg_ts_packet_sizeを取得します。
  2. 各パケットを評価し、必要に応じてメタデータ (PID など) を書き換えます。
  3. 結果のパケットを FIFO に取り込みます。
  4. {OMXPlayer,MPlayer} を FIFO から読み取るように設定します。

私が考えていたもう 1 つのことは、MPEG TS を MPEG PS に変換し、そのようにバイトを連結するプログラムを使用することです。

考え?

4

1 に答える 1

1

実際、他のチャンネルでチューニングしたい場合、一部のメタデータが変更され、以前にキャッシュされたデータが無効になる可能性があります。残念ながら、私はあなたが使用しているツールに詳しくありませんが、あなたの指摘2.には眉をひそめます。トランスポート ストリーム データを書き換えようとして時間を無駄にすることになります。

最初は問題なく動作しているように見えるので、ザッピングのプロセスを停止して再起動することをお勧めします。

PS: 役立つツールをいくつか紹介します。また、問題がどのレベルにあるかはわかりませんが、VLCは Raspberry PI にインストールでき、TS を適切に処理します。

于 2014-08-05T15:10:21.073 に答える