【问题标题】:Stream audio to multiple web browsers将音频流式传输到多个 Web 浏览器
【发布时间】:2019-11-03 02:12:21
【问题描述】:

我正在尝试在我的 linux 服务器上播放一些音频并将其流式传输到多个 Internet 浏览器。我有一个环回设备,我指定为 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”命令是赋予进程更高的优先级。

【问题讨论】:

  • Janus 端的音频配置是什么? ffmpeg(rtp源)与Janus网关之间的协商如何?有没有SDP参数。
  • sdp 在 janus 服务器配置文件中设置:janus.conf.meetecho.com/docs/streaming.html
  • 当您在 ffmpeg 端更改参数(通道或比特率或采样频率)时,您是否也在更改 janus 端的参数。在 rtp 中没有协商,您需要对其进行硬编码。
  • 是的,sdp 是硬编码在 janus conf 中的。如果我改变一个,我会同时改变它们。
  • 建议使用默认的 sdp/janus conf 并相应地配置您的 ffmpeg。你能分享一下 janus conf /sdp 以供参考吗?

标签: ffmpeg webrtc rtp janus


【解决方案1】:

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

这是我在 CentOS 7 上使用的 cmd:

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

【讨论】:

    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 2012-02-17
    • 2014-05-29
    • 2014-11-10
    • 2017-02-10
    • 1970-01-01
    • 2016-07-03
    • 2018-07-30
    相关资源
    最近更新 更多