我正在构建一个应用程序,将音频流到一个icecast服务器。
这是我当前发送音频的命令。
nohup ffmpeg -f alsa -ac $CHANNELS -i hw:0 -codec libmp3lame -ab $BITRATE -ar 44100 -nostats -content_type 'audio/mpeg' -f mp3 icecast://$USERNAME:$PASSWORD@$ICECASTSERVER:$ICECASTSERVERPORT/$MOUNTPOINT &> /tmp/stl-app/icecast-source.log &当我使用一个源,那两个频道(即左和右立体声)编码器不能跟上。ffmpeg的使用率是100%,流的口吃很厉害。我可以把声卡换成只有一个通道输入的usb卡,麦克风,它工作得很好。
我意识到这可能是因为我正在测试的pi不能对mp3进行立体声实时编码,然后流。所以我的问题是,我能做些什么来使这个工作在树莓pi3b+上吗?或者我只是要被限制在那个设备上的一个频道和一个立体声编码,我需要升级到其他的东西。
我可以用alsa记录音频,然后将其传输到ffmpeg,但它引入了4-5秒的延迟时间。我想避免那样做。
我试过提高比特率,降低采样率,改变编解码器等等,有点不知所措。
尽我所能控制成本,但你永远也不知道,我可能错过了什么。
我有一台RPi4,我可以用它来测试,但是它更贵。有没有SBC有我需要的处理器的能力?
发布于 2019-08-30 19:37:43
结果发现我使用的是一个通过GPIO连接的音频捕获设备,而且很明显这还不够快,无法处理两个流的音频。当我切换到一个高端usb捕获模数转换器时,它工作得很好。
https://unix.stackexchange.com/questions/537967
复制相似问题