防止 ffmpeg 在丢失输入 icecast 流时丢失

防止 ffmpeg 在丢失输入 icecast 流时丢失

我用以下命令对 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

相关内容