FFmpeg 分割和不准确/错误的帧率

标签 ffmpeg frame-rate segment

我使用 ffmpeg 以 15 fps 的速度将 RTSP 流保存在文件上。该命令与此类似(我已对其进行了简化):

ffmpeg -y -i rtsp://IP/media.amp -c copy -r 15 -f segment -segment_time 60 -reset_timestamps 1 -segment_atclocktime 1 -strftime 1 outputFile%Y-%m-%d_%H-%M- %S.mp4

它基本上从流中创建 1 分钟长的文件,但问题是每个分段文件的帧速率都不是 15fps。

我得到的值是这样的。

14.99874
15.00031

这对我来说是个大问题,因为我需要将这些文件与其他 15fps 视频合并,结果并不好。如果我随机点击时间栏,合并后的文件不稳定,图像崩溃,有时甚至 VLC 崩溃。

如果我只是合并流文件一切都很好,当我尝试将它与其他东西混合时,我无法做任何事情来获得可观看且稳定的视频文件。

这是正常的吗?我可以做些什么来获得固定 15fps 的片段而无需重新编码?

提前致谢。

最佳答案

正如 Mulvya 指出的那样,ffmpeg 会截断最后一帧。

有两种方法可以解决这个问题:

1)将文件保存到mp4以外的另一个容器中,可以是TS

2)删除视频的最后一帧也可以,但是您必须使用过滤器,这意味着重新编码在 cpu/ram 上可能又长又重

关于FFmpeg 分割和不准确/错误的帧率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593241/

相关文章:

ffmpeg 将三个图像组合成一个循环视频

ffmpeg-mp4box-mpeg dash 只播放几个片段

c++ - Directshow 返回错误的帧速率 FPS

Android GLES20 big textured quad 非常慢(在 Nexus One 上)

Java 计时器 Swing 精确到 60 fps

Android分段下载

assembly - 8086 中的堆栈段和堆栈指针

python - 您可以使用 ffmpeg 流从文件实时插入文本吗?

ffmpeg 添加带有两个输出的缩放 Logo

objective-c - UISegementSwitch 不工作