如何从DVB卡连接ATSC流?

时间:2014-08-03 18:10:48

标签: linux encoding mpeg dvb

我试图制作一个简单的电视观众"使用Linux DVB视频采集卡。目前我使用以下流程观看电视(我在Raspberry Pi上播放):

  1. 使用azap -r TV_CHANNEL_HERE收听频道。这将提供字节 设备/dev/dvb/adapter0/dvr0
  2. 打开OMXPlayer omxplayer /dev/dvb/adapter0/dvr0
  3. 看电视!
  4. 当我尝试更换频道时出现问题。即使我将播放器设置为缓存传入的字节(也尝试使用MPlayer),播放器也无法承受频道更改(通过使用新频道重新启动azap

    我认为这是因为MPEG TS流元数据的变化。

    寻找可让我执行以下操作的C库:

    1. 从DVR设备中提取 cache_size * mpeg_ts_packet_size
    2. 根据需要评估每个数据包并重写元数据(PID等)。
    3. 使用生成的数据包填充FIFO。
    4. 将{OMXPlayer,MPlayer}设置为从FIFO读取。
    5. 我想的另一件事是使用一个程序将MPEG TS转换为MPEG PS并以这种方式连接字节。

      思想?

1 个答案:

答案 0 :(得分:1)

实际上,当您想要调整其他频道时,某些元数据可能会更改并使以前缓存的数据无效。 不幸的是,我不熟悉您正在使用的工具,但您的观点2.让我引起了注意:您将浪费时间尝试重写传输流数据。

我宁愿建议在启动时停止并重启进程,因为它似乎在开始时工作正常。

P.S .: 以下是一些可以提供帮助的tools。此外,我不确定您的问题在哪个级别,但可以在Raspberry PI上安装VLC,它可以优雅地处理TS。