当传输是UDP时,IP摄像机会在摄像机RTSP超时设置的1/2后关闭向ffmpeg客户端的RTSP流

问题描述

使用ffmpeg从IP摄像机捕获RTSP Motion JPEG流。

ffmpeg -loglevel debug -i rtsp://192.168.1.100:554/videoinput_1/mjpeg_3/media.stm -an -codec copy -y test.avi

在IP摄像机上,RTSP超时的有效设置是1到120。当rtsp_transport是认值(UDP)时,ffmpeg将在摄像机超时设置的一半后终止。如果将摄像机设置为RTSP Timeout = 30,则ffmpeg将在15秒后退出。如果设置为120,ffmpeg将在60秒后退出。将ffmpeg loglevel设置为debug时,获得“不再有要写入的输出流”消息:

No more output streams to write to,finishing.
frame=  375 fps= 26 q=-1.0 Lsize=   34794kB time=00:00:14.98 bitrate=19027.7kbits/s speed=1.06x
video:34771kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.067360%
Input file #0 (rtsp://192.168.1.100:554/videoinput_1/mjpeg_3/media.stm):
  Input stream #0:0 (video): 375 packets read (35605476 bytes);
  Total: 375 packets (35605476 bytes) demuxed
Output file #0 (test.avi):
  Output stream #0:0 (video): 375 packets muxed (35605476 bytes);
  Total: 375 packets (35605476 bytes) muxed
0 frames successfully decoded,0 decoding errors

但是,如果将传输设置为使用-rtsp_transport tcp-rtsp_flags prefer_tcp的TCP,则连接将无限期保持,这当然是所需的行为。当传输是UDP时,有什么方法可以使它正常工作? ffmpeg是否应该向摄像头发送信息/保持活动状态,但是在UDP中不是吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)