假设我有一个来自现有HLS的.ts文件,我只想调整它的大小。 例如,创建第二个低分辨率流,当带宽较差时可以切换。
ffmpeg -i video1080_1.ts -vf "scale=1280:720" video720_1.ts
如何确保 video720_1.ts 的起始时间与 video1080_1.ts 完全相同? 我没有改变速率,所以只要它以完全相同的 PTS 开始,它就会播放得很好。
我尝试了很多东西(vsync,copyts等(,但没有一个给我完全相同的数字。
另外,我尝试添加-copyts -vsync 2 -muxdelay 0 -muxpreload 0
,这使它更接近,但仍然偏离了 1100(4422778 vs 4423680(。
好的,经过大量测试,我发现以下内容实际上给了我与原始完全相同的 PTS:
ffmpeg -i 00091.ts -vf "scale=640:360" -copyts -vsync -1 -muxdelay 0 -muxpreload 0 -y 00091_360.ts
所有 4 个参数都需要一起使用。
编辑:-vsync -1
是默认值,是可选的。