ffmpeg 同时使用 -re 和 -ss

ffmpeg 同时使用 -re 和 -ss

我正在使用 ffmpeg 将视频文件实时流式传输到 RTMP 服务器。我使用选项-re来确保视频以适当的速率流式传输到实时源。有时我想在几分钟后开始流式传输视频。但是,如果我添加-ss 00:03:00,例如,前几帧不会被流式传输,但 ffmpeg 仍然会快速浏览它们-re,这意味着我必须等待(在这种情况下)三分钟才能看到流,此时它会在三分钟后开始。

从技术上讲,这就是我所要求的,但在上下文中也是无用的。有没有办法告诉 ffmpeg 在给定的时间启动,但直接转到那里,以便在使用时它能有用地运行-re

ffmpeg-user 邮件列表中至少有两个例子,人们想知道如何做到这一点,但没有明显的解决方案。

答案1

尝试在输入文件前指定 -ss 00:03:00。

我还没有尝试过屏幕捕获/直播,但我知道这适用于标准 ffmpeg 转码语法。

例如,以下命令将输入​​一个文件,将整个文件转码为 h264,然后仅保存从 3 分钟标记开始的输出。

ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]

另一方面,以下命令将在 3 分钟处输入一个文件,从该点开始转码,然后保存输出。输出文件应与上面的输出相同,但由于前三分钟没有被解码,因此处理时间要短得多。

ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]

再次,我不知道这是否适用于直播。希望它能有所帮助!

相关内容