我正在使用静态TS (MPEG Transport )文件模拟一组DASH和HLS活动流,这些文件被循环、打包,并提供如下服务:
cvlc --loop myfile.ts --> Shaka packager --> NGINX webserver使用ffmpeg创建TS文件,将输入的1080 p内容(myfile.mov)转换为1个音频流和3个视频流:720 p、480 p和360 p。对结果文件进行检查,以确保其构造正确。
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/DTS?
发布于 2018-12-03 18:21:52
关键是使用--、--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-keephttps://stackoverflow.com/questions/53567355
复制相似问题