首页 > 解决方案 > 如何使用 ffmpeg 在相机和直播之间添加延迟,因为 -vf tpad=start_duration 并没有真正延迟网络流输出?

问题描述

在尝试在多个摄像机和输入 OBS 的直播之间添加 10 秒延迟时,我希望能够在某些事件发生之前切换流,并且 10 秒延迟将允许这样做。

我发现使用以下形式的命令:

ffmpeg -i input -vf tpad=start_duration=10 -af adelay=10000|10000 stream-out

将在视频流的开头插入 10 秒的空白内容,但它会在前几秒内流出所有空白内容,以便传出的直播有效地赶上传入的摄像头流。

查看传出的网络流量,当流开始发送前 10 秒的数据时,我会看到大量的网络流量,然后网络流量稳定到视频流的通常恒定流量水平。

如果我从一开始就开始观看传出的流,那么在我观看的过程中,直播会有 10 秒的延迟。如果我丢失了流并重新连接或在它已经运行后开始观看流,那么 10 秒的延迟将不再存在。

我真的试图让ffmpeg及时延迟发送输出流,以便它始终缓冲10秒的数据,而 -vf tpad=start_duration=10 -af adelay=10000|10000 命令不这样做.

是否有另一个 ffmpeg 命令会强制 ffmpeg 的实际输出流量保持延迟?

标签: ffmpegvideo-streaming

解决方案


推荐阅读