如何使用 FFMPEG 为从(v4l2)网络摄像头发送到媒体服务器的流添加延迟?
这里的用例类似于安全摄像头,当在视频中检测到某些内容时,我希望能够将视频流式传输到服务器。确保在视频中捕获感兴趣的事件的最简单方法是使用 FFMPEG 从摄像机流式传输到虚拟环回设备,并增加延迟。然后,当感兴趣的事件发生时,该环回设备可用于启动实时流式传输。
queue
在 GStreamer 中,我会使用元素的min-threshold-time
参数来完成这种延迟。例如,以下(非常简化的)示例管道在显示之前为来自 v4l2 网络摄像头的输出添加了 2 秒的延迟:
gst-launch-1.0 v4l2src device=/dev/video1 ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=2000000000 ! xvimagesink
我如何用 FFMPEG 完成同样的事情?有一些技术挑战阻止我们为此使用 GStreamer。
我已经调查了这个itsoffset
选项,但据我所知,它只适用于已经录制的文件,目前还不清楚什么是好的选择。