怎样通过编写shell脚本让ffmpeg和ffserver转码和推流服务器开机自动运行?
通过写一个SHELL脚本,可以实现ffmpeg和ffserver开机自动运行。
比如用ffmpeg把rtsp流转成ts流,由于rtsp服务器有可能关闭,需要自动的重启ffmpeg去连接rtsp服务器
1、编写一个用ffmpeg转TS流的脚本rtsp2ts.sh
ffmpeg -i "rtsp://xx.xx.xx.xx:554/xxx?tcp" -vcodec mpeg2video -b 2048k -acodec libmp3lame -ab 128k -f mpegts udp://127.0.0.1:1234?pkt_size=1316 2> /dev/null &
备注:URI中?tcp表明音视频数据采用tcp传输,而不是rtp/udp
2、编写一个检测ffmpeg是否挂掉的脚本check.sh
#!/bin/sh
num=`ps -ef | grep ffmpeg | grep -v grep | wc -l`
if [ $num -lt 1 ]
then
/root/rtsp2ts.sh
fi
3、把脚本添加crontab
crontab -e
*/1 * * * * /root/check.sh
或者
echo "*/1 * * * * /root/check.sh">>/etc/crontab
每分钟检查一次