Youtube ffmpeg在流处于静默状态时关闭

Youtube ffmpeg在流处于静默状态时关闭,youtube,ffmpeg,streaming,icecast,Youtube,Ffmpeg,Streaming,Icecast,我在Linux环境中运行ffmpeg,我将来自Icecast流和静态图像的音频流合并,以便能够将其流到Youtube 有时,冰晶流变得非常安静,有时几乎一分钟。由于内容的性质,这是有意的。但是,当流变得太安静时,ffmpeg会在没有通知的情况下关闭 这是我如何开始ffmpeg的: ffmpeg -loop 1 -r 30 -s 1280x720 -i /var/www/html/files/youtube/image.png -i http://my-stream-to-icecast:800

我在Linux环境中运行ffmpeg,我将来自Icecast流和静态图像的音频流合并,以便能够将其流到Youtube

有时,冰晶流变得非常安静,有时几乎一分钟。由于内容的性质,这是有意的。但是,当流变得太安静时,ffmpeg会在没有通知的情况下关闭

这是我如何开始ffmpeg的:

ffmpeg -loop 1 -r 30  -s 1280x720 -i /var/www/html/files/youtube/image.png -i http://my-stream-to-icecast:8000/my-mount -c:v libx264 -preset fast -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key
有没有办法解决这个问题?和/或如何优化上述内容


非常感谢

对不起,请忽略此答案。如果流将被发送回Icecast服务器,而不是Youtube,则该规则适用。

这很可能是由于Icecast的源超时。如果使用高效的编解码器,则静默编码为“无”,icecast服务器将不会获取任何数据并断开源连接

您可以通过查看Icecast error.log来确认这一点


根据您使用的编解码器,您可能能够配置最低比特率(编解码器然后插入虚拟数据),或者需要将低电平噪声注入音频端。一个或两个最低有效位就足够了,人类无法察觉,但会使编码器忙,比特率上升。

您可以尝试将其与虚拟流混合:

ffmpeg -loop 1 -framerate 30 -i /var/www/html/files/youtube/image.png
 -reconnect_streamed 1 -reconnect_delay_max 120 -i http://my-stream-to-icecast:8000/my-mount
 -f lavfi -i anullsrc
 -filter_complex "[1]aresample=async=1[i];[i][2]amix=2:shortest,volume=2[a]"
 -map 0:v -map "[a]"
 -c:v libx264 -s hd720  -preset fast -tune stillimage -crf 18 -pix_fmt yuv420p
 -c:a aac -shortest
 -f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key

我不知道如果Icecast feed死了amix会怎么处理。您必须检查。

ffmpeg只是流式复制音频,因此没有调用音频编码器。我们不知道给冰雹喂食的东西是否在OP的控制之下。实际上完全无视我的回答。因为目标不再是Icecast,而是YouTube。一定错过了,谢谢。我尝试了这个,但只得到了这个:无法识别的选项“重新连接”。拆分参数列表时出错:未找到选项我正在使用v。2.6.9. 有什么想法吗?你需要3.0或更新版本。这解决了上述问题,谢谢。但我仍然无法解决这个问题:[http@0x96e9320]流在0处提前结束,应该是18446744073709551615:输入/输出错误还有什么想法吗?