2017-07-07 91 views
1

这是我的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 
+0

您需要另一批来检查状态,或用'start“”ffmpeg ....“从当前批次中分离ffmpeg。 – LotPings

回答

0

这是解决方案:

检查任务运行每分钟 如果有带摄像头的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