【发布时间】:2014-08-03 18:10:48
【问题描述】:
我正在尝试使用 Linux DVB 视频采集卡制作一个简单的“电视查看器”。目前我使用以下过程看电视(我在树莓派上):
- 使用
azap -r TV_CHANNEL_HERE调谐到一个频道。这将提供字节到 设备/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 读取。
我想的另一件事是使用一个程序将 MPEG TS 转换为 MPEG PS 并以这种方式连接字节。
想法?
【问题讨论】: