ffmpeg - 使用 ffmpeg 转码时如何消除文件内的 PTS 间隙?

标签 ffmpeg pts

我有一个来自 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/

相关文章:

FFMpeg:如何使用 between() 选择最后一秒?

video - PTS必须从0开始吗?

video - ffmpeg setpts 在不重新编码的情况下应用统一偏移

ffmpeg - 使用 ffmpeg,每 30 秒将 wav 文件从 ip 流写入 file.temp,然后将名称更改为 timestamp.wav

django - 处理子进程文件输出

c++ - 使用PTS同步FFMPEG视频帧

ffmpeg - pts & pcr 值限制在 mpegts?

video - ffmpeg - 如何设置直方图大小?

ffmpeg - 如何过滤运动矢量?