我有一个来自 rtmp 流的视频。
由于广播经常断断续续,
存档文件具有如下所示的 PTS
(假设这是秒)
0--10--20--30--40 120--130--140
40 到 120 秒之间存在不连续性。
此文件的持续时间必须为 60 秒,因为 40~120 之间有 80 秒的间隙。
但是当我转码这个文件时,最终持续时间变成了 140 秒,其中有 80 秒的暂停部分。
我怎样才能在没有“不存在”80秒的情况下转码这个文件,以便输出文件变成60秒而没有多余的暂停80秒。
我尝试了“+getpts”或“+igndts”选项,但它们根本不起作用。
最佳答案
使用 setpts 过滤器。
ffmpeg -i in.flv -vf setpts=N/FRAME_RATE/TB out.mp4
如果还有音频,请添加 -af asetpts=N/SR/TB
。
关于ffmpeg - 使用 ffmpeg 转码时如何消除文件内的 PTS 间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45158659/