首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WebRTC浏览器=>服务器的实时流媒体音频

使用WebRTC浏览器=>服务器的实时流媒体音频
EN

Stack Overflow用户
提问于 2018-01-16 14:39:37
回答 1查看 3.8K关注 0票数 5

我正在尝试将一些音频流从我的浏览器发送到某个服务器(udp,也尝试websockets)。我正在用webrtc记录音频流,但我在将数据从nodeJS客户机传输到我的服务器时遇到了问题。有什么想法吗?是否可以使用webrtc(openwebrtc)将音频流发送到服务器?

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 05:43:50

要从浏览器获取音频到服务器,您有几种不同的可能性。

Web套接字

只需将音频数据通过二进制网络套接字发送到您的服务器。您可以使用Web和ScriptProcessorNode来捕获原始PCM,并将其无损地发送出去。或者,您可以使用MediaRecorder记录MediaStream并用类似于Opus的编解码器对其进行编码,然后您可以在Web上进行流。

有一个用于在Facebook的GitHub回购上使用视频进行此操作的示例。流音频在概念上是相同的,所以您应该能够修改这个示例。

HTTP (未来)

在不久的将来,您将能够使用一个WritableStream作为请求主体,使用Fetch API,允许您使用浏览器中的流源制作一个正常的HTTP。这与您对Web套接字所做的工作本质上是一样的,只是没有Web套接字层。

WebRTC (数据通道)

通过WebRTC连接和服务器作为“对等方”,您可以打开一个数据通道,并发送完全相同的PCM或编码音频,您可以通过WebRTC或HTTP发送这些音频。

这增加了大量的复杂性,并没有真正的好处。不要用这种方法。

WebRTC (媒体流)

WebRTC调用支持直接处理MediaStreams。您可以附加流并让WebRTC堆栈负责协商编解码器、适应带宽变化、删除未到达的数据、维护同步以及围绕限制性防火墙环境协商连接。虽然这会使表面上的事情变得更容易,但这也是非常复杂的。Node.js没有任何向您公开MediaStreams的包,所以您必须处理其他软件.所有这些都不像可能的那样容易整合。

大多数走这条路的人都会将gstreamer作为RTP服务器来执行,以处理媒体组件。我不相信这是最好的方法,但这是我目前所知道的最好的方式。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48283723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档