如果与输入流的连接丢失,如何停止 FFMPEG 运行?

Rya*_*ggs 5 ffmpeg

我每 1 秒从网络摄像头 RTMP 流中捕获缩略图到 JPG 文件。这是我的命令行:

ffmpeg -i rtsp://192.168.1.89:554/11 -f image2 -r 1 thumb%03d.jpg
Run Code Online (Sandbox Code Playgroud)

如果输入 RTMP 流在给定的超时时间内丢失,如何使 FFMPEG 因错误而死亡?目前,如果我失去与网络摄像头的连接,FFMPEG 就会开始抛出“未知错误”消息,但是当网络重新连接时,ffmpeg 似乎重新连接到流,但不再输出任何捕获的帧。我必须手动终止该进程并重新启动它才能再次开始捕获帧。

当 ffmpeg 在特定的超时时间内失去连接时,让 ffmpeg 死亡会很好。然后我可以监视该过程并在其结束时重新启动。

有任何想法吗?

小智 2

您可以为 RTSP 设置 ffmpeg 超时

\n\n
\n

timeout设置等待传入连接的最大超时时间(以秒为单位)。

\n\n

值 -1 表示无限(默认)。此选项意味着\n rtsp_flags 设置为\xe2\x80\x98listen\xe2\x80\x99。

\n\n

stimeout设置套接字 TCP I/O 超时(以微秒为单位)。

\n
\n