![防止 ffmpeg 在丢失输入 icecast 流时丢失](https://linux22.com/image/1537830/%E9%98%B2%E6%AD%A2%20ffmpeg%20%E5%9C%A8%E4%B8%A2%E5%A4%B1%E8%BE%93%E5%85%A5%20icecast%20%E6%B5%81%E6%97%B6%E4%B8%A2%E5%A4%B1.png)
我用以下命令对 ICECAST 流进行转码并通过 ffmpeg 将其发送到 udp 多播:
ffmpeg-ihttp://ip:8000/icecast-vn -acodec libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp://ip:端口
但是如果 icecast 流被丢弃,那么 ffmpeg 也会被丢弃。有什么方法可以让 ffmpeg 继续运行吗?
最好的变体是播放静音udp://ip:端口当 icecast 流中断时播放流,并在此流再次可用时继续播放。
我路由了 wget 的输出并飞翔到 ffmpeg,但没有运气。有没有什么软件解决方案可以解决这个问题?
答案1
未经测试但值得一试
更短的方法
ffmpeg -reconnect_at_eof 1 -reconnect_streamed 1 -i http://ip:8000/icecast
-vn -c:a libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp://ip:port
更长的方法(如果上述方法无效,请尝试)
ffmpeg -reconnect_at_eof 1 -reconnect_streamed 1 -i http://ip:8000/icecast
-f lavfi -i anullsrc
-filter_complex "[0]aresample=async=1[main];
[main][1]amix=dropout_transition=0,volume=2"
-vn -c:a libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp://ip:port