ffmpeg 与 rtsp 超时

问题描述 投票:0回答:3

我有一个脚本,可以使用 ffmpeg 从 wifi 摄像头捕获图像。 它工作正常,直到由于网络问题无法访问相机为止。 该脚本卡在 ffmpeg 捕获中并且永远不会退出。是否可以有某种超时? -stimeout(以毫秒为单位)似乎不起作用。

脚本中有一部分捕获图像。 (之后还有一些操作)

#!/bin/bash
week="$(date '+%Y_%U')"
ts="$(date '+%Y-%m-%d_%H:%M:%S')"
ffmpeg -rtsp_transport tcp -y -i "rtsp://192.168.64.101" -frames:v 1 $week/$ts.jpg -stimeout 3000 -y

我在其他相机上进行了测试,结果是:

ffmpeg -y -i "rtsp://192.168.64.112:8554/profile0" -frames:v 1 Ilatest.jpg

工作正常,但超时 5 秒

ffmpeg -timeout 5000000 -y -i "rtsp://192.168.64.112:8554/profile0" -frames:v 1 Ilatest.jpg

没有,我得到的错误报告为:

ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
...
...
[rtsp @ 0x55d250488740] Unable to open RTSP for listening
rtsp://192.168.64.112:8554/profile0: Cannot assign requested address
ffmpeg rtsp
3个回答
1
投票

RTSP协议文档表示有

timeout
选项。我会尝试:

ffmpeg -rtsp_transport tcp -stimeout 3000 -y -i "rtsp://192.168.64.101" ...

0
投票

跳出框框思考...您可以使用一个看门狗脚本来查找指定目录中最新的 jpg 文件。如果它比应有的旧,则终止 ffmpeg 进程并重新启动它。

这是我从 DVR 连续录制 RTSP 流的解决方案。导致 ffmpeg 挂起的网络问题将在很长一段时间内被发现并尽快纠正。


0
投票

我想说

-rw_timeout 5000000
非常适合我。如果流媒体停止 5 秒,
ffmpeg
命令将检测到它并在退出前保存视频文件。

© www.soinside.com 2019 - 2024. All rights reserved.