首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果与ipcam的连接丢失,则关闭FFMPEG

如果与ipcam的连接丢失,则关闭FFMPEG
EN

Stack Overflow用户
提问于 2017-07-07 17:05:40
回答 1查看 1.2K关注 0票数 1

这是我的脚本,传输一个实时摄像头rtsp流到youtube rtmp流。

启动前的脚本验证与摄像头的连接是否处于活动状态。

问题是在这个过程中,如果网络连接丢失,ffmpeg仍然处于锁定状态。

如果与摄像头的连接中断,是否可以关闭ffmpeg或重新启动任务?

代码语言:javascript
运行
复制
:LOOP
timeout /t 10
ping 192.168.1.11
IF ERRORLEVEL 1 goto exit
IF ERRORLEVEL 0 goto START
:START

ffmpeg  -f lavfi -i anullsrc -rtsp_transport tcp -i rtsp://192.168.1.11:10554/tcp/av0_0 -tune zerolatency -vcodec libx264 -t 12:00:00 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/(secret code)

goto LOOP
EN

回答 1

Stack Overflow用户

发布于 2017-07-07 21:56:32

这就是解决方案:

检查任务每分钟运行一次如果摄像头连接出现问题,进程将关闭ffmpeg并重新启动主任务。

代码语言:javascript
运行
复制
@echo off
set "host=192.168.1.11"

ping -n 1 "%host%" | findstr /r /c:"[0-9] *ms"

if %errorlevel% == 0 (
    echo Success.
) else (
echo Camera offline il %date% alle ore %time% >>C:\Users\Gianluca\Desktop\script\log.txt
WMIC PROCESS WHERE "COMMANDLINE LIKE '%%ffmpeg%%'" call terminate
schtasks /Run /TN "webcam"

)

主要任务是检查摄像头的连接,如果连接断开,则关闭窗口。

代码语言:javascript
运行
复制
:LOOP
set "host=192.168.1.11"

ping -n 1 "%host%" | findstr /r /c:"[0-9] *ms"

if %errorlevel% == 0 (
   goto START
) else (

exit

)
pause


:START

ffmpeg  -f lavfi -i anullsrc -rtsp_transport tcp -i rtsp://%host%:10554/tcp/av0_0 -tune zerolatency -vcodec libx264 -t 12:00:00 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/code

goto LOOP
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44966792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档