关闭FFMPEG如果连接ipcam丢失
问题描述:
这是我的scrit,它将实时摄像机rtsp流传输到youtube rtmp流。关闭FFMPEG如果连接ipcam丢失
开始之前的脚本验证与摄像头的连接是否存在。
问题是在这个过程中,如果网络连接丢失ffmpeg保持锁定状态。
如果连接相机丢失,关闭ffmpeg或重新启动任务是可能的吗?
: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
答
这是解决方案:
检查任务运行每分钟 如果有带摄像头的connetection一个问题,过程杀死所有istance ffmpeg的关闭并重新启动的首要任务。
@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"
)
主要任务检查相机的连接,如果连接丢失,关闭窗口。
: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
您需要另一批来检查状态,或用'start“”ffmpeg ....“从当前批次中分离ffmpeg。 – LotPings