【发布时间】:2017-11-19 11:12:17
【问题描述】:
我使用 ffmpeg 在文件中保存 15 fps 的 RTSP 流。命令类似这样(我已经简化了):
ffmpeg -y -i rtsp://IP/media.amp -c copy -r 15 -f 段 -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 而无需重新编码?
提前致谢。
【问题讨论】:
-
保存到 TS。 MP4 中最后一帧的持续时间被截断。如果需要,可以重新混合到 MP4。
-
如果你不介意我问,什么是 TS?传输流文件格式?我试图重新混合到 MP4 并且它可以工作,但是我有太多的数据可以在我所拥有的时间限制下完成它。谢谢你的回答,它确实为我打开了一些可能性
-
TS = 传输流。除非您的文件很大,否则 Remux 应该需要几秒钟。
-
我保存到 TS 并且它可以解决问题,但是当我使用 VLC 打开单个 TS 文件时,它没有显示持续时间,该怎么办?
-
这是一个 VLC 问题。 ffprobe 显示持续时间,就像 Potplayer 之类的播放器一样。
标签: ffmpeg frame-rate segment