![使用 ffmpeg 产生 udp 流延迟](https://linux22.com/image/1517526/%E4%BD%BF%E7%94%A8%20ffmpeg%20%E4%BA%A7%E7%94%9F%20udp%20%E6%B5%81%E5%BB%B6%E8%BF%9F.png)
我有一个来自 UDP 上的 RTP 流的流。使用 FFMPEG,我将该流重定向到另一个端口。我想知道是否有办法故意为该输出流添加延迟。
当前流函数的示例:
ffmpeg -an -i rtsp://stream-ip:port -an -r 10 -tune zerolatency -preset fast -vcodec libx264 -f mpegts udp://outgoing-ip:port
我想为流添加 30 - 180 秒的故意延迟。这将允许出站端的系统收到警报,以便在缓冲区良好的情况下执行一些视频处理。ffmpeg 是否有这样的功能,如果没有,是否有其他途径可以产生这种故意的延迟?
答案1
没有直接的功能,但您可以在前面加上 N 秒的空白流来实现相同的目标。
ffmpeg -f lavfi -i nullsrc=s=WxH:d=N -an -i rtsp://stream-ip:port -filter_complex "concat" -an -r 10 -tune zerolatency -preset fast -vcodec libx264 -f mpegts udp://outgoing-ip:port
您必须将 WxH 替换为输入源的分辨率,并将 N 替换为“延迟”的持续时间(以秒为单位)。