2017-07-07 93 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