如何向使用FFMPEG的网络摄像头(v4l2)提供的实时流添加延迟?

如何向使用FFMPEG的网络摄像头(v4l2)提供的实时流添加延迟?,ffmpeg,video-streaming,gstreamer,v4l2loopback,Ffmpeg,Video Streaming,Gstreamer,V4l2loopback,如何使用FFMPEG为从(v4l2)网络摄像头发送到媒体服务器的流添加延迟 这里的用例类似于安全摄像头,我希望在视频中检测到某些内容时能够将视频流传输到服务器。确保在视频中捕获感兴趣事件的最简单方法是使用FFMPEG以附加延迟将视频从摄像机传输到虚拟环回设备。然后,当发生偶数感兴趣的事件时,该环回设备可用于启动实时流媒体 在GStreamer中,我将使用queue元素的minthresholdtime参数来完成这种延迟。例如,以下(简化得多)示例管道在显示v4l2网络摄像头的输出之前,为其添加了

如何使用FFMPEG为从(v4l2)网络摄像头发送到媒体服务器的流添加延迟

这里的用例类似于安全摄像头,我希望在视频中检测到某些内容时能够将视频流传输到服务器。确保在视频中捕获感兴趣事件的最简单方法是使用FFMPEG以附加延迟将视频从摄像机传输到虚拟环回设备。然后,当发生偶数感兴趣的事件时,该环回设备可用于启动实时流媒体

在GStreamer中,我将使用
queue
元素的
minthresholdtime
参数来完成这种延迟。例如,以下(简化得多)示例管道在显示v4l2网络摄像头的输出之前,为其添加了2秒延迟:

gst-launch-1.0 v4l2src设备=/dev/video1!队列最大大小缓冲区=0最大大小时间=0最大大小字节=0最小阈值时间=2000000000!xvimagesink

如何使用FFMPEG完成相同的任务?有一些技术挑战阻止我们使用GStreamer实现这一目标


我已经为此研究了
itscoffset
选项,但据我所知,它仅可用于已录制的文件,目前还不清楚什么是好的替代方案。

对于最近构建的ffmpeg git,基本模板是

ffmpeg -i input -vf tpad=start_duration=5 -af adelay=5000|5000 stream-out

tpad
过滤器将在视频流开始时添加5秒的黑色,而apad过滤器将在音频的前两个通道中添加5000毫秒的静音。

对于最近构建的ffmpeg git,基本模板是

ffmpeg -i input -vf tpad=start_duration=5 -af adelay=5000|5000 stream-out

tpad
过滤器将在视频流开始时添加5秒的黑色,而apad过滤器将在音频的前两个通道中添加5000毫秒的静音。

谢谢,这非常有效!几周前(通过我对FFMPEG listservs的阅读),这个过滤器刚刚成为master,这是多么偶然啊。有没有什么资源可以让你订阅来查看这些新功能,而不必接触到与开发相关的大量讨论?谢谢你在这里所做的一切,你帮了我很大的忙。谢谢,这非常有效!几周前(通过我对FFMPEG listservs的阅读),这个过滤器刚刚成为master,这是多么偶然啊。有没有什么资源可以订阅来查看这些新特性,而不必接触到与开发相关的大量讨论?感谢这里的一切,您已经帮了我很大的忙。