【问题标题】:Web Audio live streaming网络音频直播
【发布时间】:2020-11-27 17:55:07
【问题描述】:

有一个音频流从移动设备发送到服务器。服务器将数据块(由于网络套接字)发送到网络。 问题是。在现场模式下使用什么播放此音频,也应该有可能将音频倒回,听以前的内容..然后再次切换到现场模式。

我考虑过 Media Source API 这样的可能性,但 IOS 上的 Safari 和 Chrome 不支持,不是吗?但我们需要这种支持。

此外,还有现代浏览器支持的 Web Audio API,但我不确定是否可以在实时模式下收听音频并将音频倒回?

关于如何实现它的任何想法或指南?

【问题讨论】:

    标签: audio streaming audio-streaming web-audio-api media-source


    【解决方案1】:

    我考虑了 Media Source API 这样的可能性,但 IOS 上的 Safari 和 Chrome 不支持,不是吗?但我们需要这种支持。

    然后,您不能使用 MediaSource 扩展。感谢苹果!

    服务器向网络发送数据块(由于网络套接字)。

    如果没有 MediaSource 扩展,您将无法使用来自 Web 套接字连接的这些数据。 (除非是 PCM,或者您将其解码为 PCM,在这种情况下您可以使用 Web Audio API,但这完全不切实际、效率低下,也不应该追求。)

    您必须更改直播方式。你有几个选择:

    最佳选择:HLS

    如果您切换到 HLS,您将获得所需的兼容性,以及及时返回的能力等等。这是你应该做的。

    中等选项:HTTP 渐进式

    对于大多数用例来说,这是一种很好的流式传输方式,但没有任何内置方式来处理您想要的流式搜索。您必须构建它,这不值得您花时间,因为您只能使用 HLS。

    更平庸的选择:WebRTC

    您可以切换到 WebRTC 进行流式传输,但会大大增加基础架构成本和复杂性。而且,你仍然需要弄清楚你将如何处理寻找。您想要采用 WebRTC 路线的唯一原因是您绝对需要最低延迟。

    【讨论】:

    • 感谢您的回复,先生,因为我们需要最低延迟,我认为目前最好的选择是 WebRTC
    • @TarasKulchytskyi 您也可以使用混合方法,其中 WebRTC 用于实时,但您切换回 HLS 以便及时返回。这将允许您使用最现成的组件。
    • WebRTC 不允许您暂停和倒带。在我看来,满足您要求的最佳选择仍然是 MediaSource 扩展。相当低的延迟和暂停和倒带的能力。它在 iPad 上受支持,以纠正 Brad 的答案。不过,还没有 iPhone。这就是你需要的那种播放器:umediaserver.net/umediaserver/demohtml5MSEplayer.html
    • @user1390208 感谢您提供有关 webRTC 的信息,但必须支持 iPhone,很难决定使用什么来支持所有现代浏览器
    • @TarasKulchytskyi 从设计上看,Safari 绝不是现代浏览器。无论如何,正如我所说,如果您使用多种协议,您的问题就会得到解决。
    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多