【问题标题】:Which protocol (WebRTC/SRT /...) for live music broadcast in LAN?哪种协议(WebRTC/SRT /...)用于局域网中的现场音乐广播?
【发布时间】:2022-01-04 20:54:32
【问题描述】:

我想从服务器向局域网中的大约 100 个手机客户端广播现场音乐。目标是一种从静音迪斯科中知道的设置,但通过 IP 以手机作为接收器。听众应该使用耳机,不需要完美的同步。 1-3 秒的延迟是可以接受的。

我的第一个设置使用了Icecast(基于 TCP),它带来了良好的音乐质量,但延迟很高(4-50 秒)。我的第二种方法使用Janus WebRTC server(带有流插件),可以实现亚秒级延迟,但音频质量只是中等(针对语音进行了优化,没有一致的播放速度)。

我发现this issue 描述了一个支持多个客户端连接的 SRT 服务器。

我应该优化我的 Janus/WebRTC 音乐方法,还是尝试使用 SRT 构建解决方案,或者是否有更好的协议/解决方案?

【问题讨论】:

    标签: webrtc broadcast srt janus-gateway


    【解决方案1】:

    我会推荐 WebRTC。您可以在浏览器中提取提要,然后无需在所有这 100 部手机上安装客户端。


    您如何将 WebRTC 的音频发布(到您的 Janus 服务器)?如果可能的话,我会使用 WebRTC 代理,您可以在其中拥有更大的控制权。

    使用流插件的 Janus 提供了一种非常简单的方法来publish via GStreamer 或 ffmpeg。通过这种方式,您可以更好地控制音频质量。

    【讨论】:

    • 感谢您的回答!我通过 GStreamer 发布音频,因此我将专注于优化 WebRTC 音频传输以用于音乐而不是语音。我对 SRT 流的最初想法是“强制”所有听众在他们的手机上安装 VLC 播放器应用程序。
    • 介意分享您的 GStreamer 管道吗?我认为您唯一需要调整的是音频参数。我不熟悉 libwebrtc,如果它正在做任何可能降低质量的解码后处理:/
    • 当然!我的 GStreamer 管道是:gst-launch-1.0 \ osxaudiosrc device=60 ! \音频重采样质量=10!音频/x-raw,channels=2,rate=48000 ! \ opusenc 带宽=fullband 帧大小=60 比特率=64000 ! \rtpopuspay! udpsink 主机=127.0.0.1 端口=5002
    • 原来Janus WebRTC流媒体插件的demo代码没有输出立体声,所以OPUS立体声音频被muxed to mono,听上去很闷。我设法在流插件 JS 演示代码中更改了协商 SDP(SDP munging)以支持立体声,现在音质很棒!
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 2021-06-30
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多