Ffmpeg 和噪声使连接保持活动

Ffmpeg 和噪声使连接保持活动

我正在尝试制作 SDR 扫描仪来向网络广播信号。


RTL_FM -> FFMPEG -> Icecast2。


但在暂停时流媒体终止,据我所知,没有使用 Ffmpeg 函数使其保持活动的选项。因此,我决定添加空输入并将其与 RTL 信号混合以使其保持在线:

rtl_fm -f 104M -f 102.8 -f ... -M fm -s 180s -r 44.1k | ffmpeg -f lavfi -i anullsrc=r=44.1k:cl=mono -f s16le -ar 44.1k -ac 1 -i pipe:0 -filter_complex amix=inputs=2:duration=longest -acodec libmp3lame -b:a 92k -ar 44.1k  -content_type audio/mpeg icecast://source:pass@localhost:8000/audio.mp3

而且它不起作用!RTL 信号离线时没有广播。为什么?如果我使用 anoisesrc 而不是 anullsrc,结果是一样的。

这按预期工作:

ffmpeg -f lavfi -i anullsrc=r=44.1k:cl=mono -acodec libvorbis -b:a 92k -ar 44.1k -content_type audio/ogg icecast://source:pass@localhost:8000/vorbis.ogg

除了 CPU 负载为 100% 之外。

怎么了?也许有更合适的解决方案来保持流的活跃? Ubuntu-18.04.4

答案1

使用另一个版本解决问题rtl_fm从这里git-hub

只需添加-E pad,并在启用静噪时用零填充输出

相关内容