【问题标题】:How can I concatenate ATSC streams from DVB card?如何连接来自 DVB 卡的 ATSC 流?
【发布时间】:2014-08-03 18:10:48
【问题描述】:

我正在尝试使用 Linux DVB 视频采集卡制作一个简单的“电视查看器”。目前我使用以下过程看电视(我在树莓派上):

  1. 使用azap -r TV_CHANNEL_HERE 调谐到一个频道。这将提供字节到 设备/dev/dvb/adapter0/dvr0
  2. 打开OMXPlayeromxplayer /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 读取。

我想的另一件事是使用一个程序将 MPEG TS 转换为 MPEG PS 并以这种方式连接字节。

想法?

【问题讨论】:

    标签: linux encoding mpeg dvb


    【解决方案1】:

    确实,当您想调到其他频道时,某些元数据可能会发生变化,并使之前缓存的数据无效。 不幸的是,我不熟悉您使用的工具,但您的观点 2. 让我大吃一惊:您将浪费时间尝试重写传输流数据。

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

    附: 这里有一些可以提供帮助的tools。另外,我不确定您的问题在哪个级别,但VLC 可以安装在 Raspberry PI 上,它可以优雅地处理 TS。

    【讨论】:

    • 谢谢,我认为重写 TS 文件是浪费时间。我不能使用 VNC(所以我认为),因为它不使用 GPU 来解码视频。除非有另一种我不知道的方法......
    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多