VLC:循环使用多个视频PID的MPEG-TS文件



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

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

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

CCD_ 2用于使TS循环;PTS为每个循环更新,使视频"看起来"逼真。

这是我的cvlc命令:

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

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

如何循环MPEG-TS并让cvlc单独保留PID(或至少按数字顺序保留PID(,并在每个循环期间仅更新PCR/PTS/DTS?

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

最终命令:

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

相关内容

  • 没有找到相关文章

最新更新