假设我有一个来自现有 HLS 的 .ts 文件,我只是想调整它的大小。例如,创建第二个较低分辨率的流,可以在带宽不足时切换。
ffmpeg -i video1080_1.ts -vf "scale=1280:720" video720_1.ts
如何确保 video720_1.ts 以与 video1080_1.ts 完全相同的 PTS 开始?我没有改变速率,所以只要它以完全相同的 PTS 开始,它就可以正常播放。
我尝试了很多东西(vsync、copyts 等),但它们都没有给我完全相同的数字。
另外,我尝试添加
-copyts -vsync 2 -muxdelay 0 -muxpreload 0
这让它更接近了,但仍然相差 1100(4422778 与 4423680)。
最佳答案
好的,经过多次测试,我发现以下内容实际上给了我与原始完全相同的 PTS:
ffmpeg -i 00091.ts -vf "scale=640:360" -copyts -vsync -1 -muxdelay 0 -muxpreload 0 -y 00091_360.ts
所有 4 个参数都需要。
编辑:
-vsync -1
是默认值并且是可选的。
关于ffmpeg - 在 .ts 文件调整大小时维护 PTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062986/