将音频流式传输到多个网络浏览器

Stream audio to multiple web browsers

我正在尝试在我的 linux 服务器上播放一些音频并将其流式传输到多个互联网浏览器。我有一个环回设备,我将其指定为 ffmpeg 的输入。 ffmpeg 然后通过 rtp 流式传输到 WebRTC 服务器 (Janus)。可以用,但是出来的声音太难听了

这是我用来通过 rtp 从 ffmpeg 流式传输到 janus 的命令:

nice --20 sudo ffmpeg -re -f alsa -i hw:Loopback,1,0 -c:a libopus -ac
1 -b:a 64K -ar 8000 -vn -rtbufsize 250M -f rtp rtp://127.0.0.1:17666

WebRTC 服务器 (Janus) 要求音频编解码器为 opus。如果我尝试制作 2 声道音频或提高采样率,流会变慢或听起来更糟。 "nice"命令是给进程更高的优先级。

使用 gstreamer 代替 ffmpeg 效果很好,听起来很棒!

这是我在 CentOS 7 上使用的命令:

sudo gst-launch-1.0 alsasrc device=hw:Loopback,1,0 ! rawaudioparse ! audioconvert ! audioresample ! opusenc ! rtpopuspay ! udpsink host=127.0.0.1 port=14365