【问题标题】:VLC: Looping an MPEG-TS file with multiple video PIDsVLC:使用多个视频 PID 循环播放 MPEG-TS 文件
【发布时间】:2018-12-01 02:50:19
【问题描述】:

我正在使用静态 TS(MPEG 传输流)文件模拟一堆 DASH 和 HLS 直播流,这些文件被循环、打包和提供如下:

cvlc --loop myfile.ts  -->  Shaka packager  -->  NGINX webserver

TS 文件是使用ffmpeg 创建的,用于将输入的 1080p 内容 (myfile.mov) 转换为 1 个音频流和 3 个视频流:720p、480p 和 360p。检查生成的文件以确保其构造正确。

cvlc 用于循环播放 TS,因为它正确处理每个循环的 PCR 和 PTS 更新,使视频“看起来”直播。

这是我的cvlc 命令:

cvlc myfile.ts --sout udp:127.0.0.1:9876 --repeat --loop --sout-all --sout-keep

我的问题是cvlc随机重新编号和重新排序视频 PID,因此打包程序无法将正确的分辨率放在正确的位置以进行自适应流式传输.

我如何循环一个 MPEG-TS 并让cvlc 不理会 PID(或至少保持它们按数字顺序排列),并且只在每个循环期间更新 PCR/PTS/DTS?

【问题讨论】:

    标签: loops vlc mpeg transport-stream


    【解决方案1】:

    关键是使用两者 --sout-ts-es-id-pid--ts-es-id-pid 以确保 VLC 在输入或输出阶段都不会更改 PID。

    最终命令:

    cvlc myfile.ts --sout udp:127.0.0.1:9876 --sout-ts-es-id-pid --ts-es-id-pid --repeat --loop --sout-all  --sout-keep
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-08
      • 2018-01-16
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      相关资源
      最近更新 更多