-
-
Save Bioblaze/5c50883d805aef2109e9b773580d2fc3 to your computer and use it in GitHub Desktop.
auto-restart FFMPEG when it stops sending frames to youtube
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
sleep 5 | |
ffmpeg -re -f mjpeg -r 10 -i "http://localhost/?action=stream" -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -acodec aac -ab 1k -strict experimental -s 640x360 -vcodec h264 -pix_fmt yuv420p -g 20 -vb 500k -preset ultrafast -crf 31 -r 10 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx" 2> /home/pi/ffmpeg.log |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
sleep 10 | |
while true | |
do | |
frameA=$(tail /home/pi/ffmpeg.log -n 1 | sed -nr 's/.*frame=(.*)fps.*/\1/p') | |
echo "$frameA" | |
sleep 5 | |
frameB=$(tail /home/pi/ffmpeg.log -n 1 | sed -nr 's/.*frame=(.*)fps.*/\1/p') | |
echo "$frameB" | |
if [ "$frameA" = "$frameB" ] | |
then | |
echo "Stream has hung" | |
printf "%s - Stream has hung\n" "$(date)" >> stream.log | |
pkill ffmpeg | |
echo "killed ffmpeg..." | |
printf "%s - Killed ffmpeg...\n" "$(date)" >> stream.log | |
echo "Waiting 5 secs" | |
sleep 5 | |
bash /home/pi/ffmpeg.sh & | |
echo "started ffpmeg.." | |
printf "%s - Started ffmpeg..\n" "$(date)" >> stream.log | |
echo "Waiting 15 secs" | |
sleep 15 | |
else | |
echo "Stream looks ok." | |
fi | |
sleep 2 | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment