如何在ffmpeg中设置rtsp连接超时

时间:2016-02-01 05:01:01

标签: ffmpeg

我使用ffmpeg库写入rtsp流。 当rtsp网址正确时,它运行良好。 但是当这个rtsp url不正确时,它会被卡在avformat_write_header中。 这个问题有什么解决方案吗? 感谢。

2 个答案:

答案 0 :(得分:1)

请参考以下链接: [FFmpeg-user] How do I set a timeout for an RTSP source?

  

RTSP有两种超时类型的选项:

     

“ - 超时”

Set maximum timeout (in seconds) to wait for incoming connections.

A value of -1 mean infinite (default). This option implies the
‘rtsp_flags’ set to ‘listen’. ‘reorder_queue_size’

Set number of packets to buffer for handling of reordered packets.
     

“ - stimeout”

Set socket TCP I/O timeout in micro seconds.

答案 1 :(得分:1)

'-timeout'和& '-stimeout'不适合我。

我的解决方案[python code]是:

while True:
    try:
        check_call('ffmpeg -i <rtsp://your-input-stream-url> -frames:v 1 screenshot.jpg', shell=True, timeout=N)   # try to get a screenshot if RTSP stream is OK
    except TimeoutExpired as e:
        logger.error('RTSP stream error')   # send error message if timeout
        break
祝你好运。