如何防止 ffmpeg 重新流式传输崩溃?我在 .BAT 文件中运行以下命令:
:loop
ffmpeg -i "RTMP://IPADDRESS:1935/LIVE/STREAMNAME.STREAM pageUrl=http://URL.COM swfurl=http://domain.com/licensed/player-licensed.swf live=1" -isync -vcodec copy -b:v 400k -acodec copy -b:a 128000 -ar 32000 -f flv "rtmp://IP:1935/LIVE/CHANNELNAME"
goto loop
除了我为了演示目的而放置的链接之外,这行代码还有什么问题吗?
它总是崩溃——与 DTS 编解码器有关。也许我应该使用除“复制”之外的其他音频编解码器?
答案1
#!/bin/bash
until ffmpeg -i http://serverIP:host/user/pass/stream -c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://serverIP:port/live/name;do
echo "restarting ffmpeg command"
sleep 1
done
编写一个 bash 脚本,重新启动 ffmpeg 指令。运行nohup ./batch-file.sh > /dev/null 2>&1 &