将音频从浏览器流式传输到WebRTC本机C++应用程序

stream audio from browser to WebRTC native C++ application

本文关键字:WebRTC 本机 C++ 应用程序 传输 音频 浏览器      更新时间:2023-10-16

我管理运行WebRTC对等连接示例,但它没有在浏览器上运行。 我正在尝试找到一种方法将视频和音频从浏览器流式传输到我的本机程序。

有什么办法吗?

这是可以做到的。WebRTC被设计为在两个WebRTC代理(通常是Web浏览器(之间以点对点的方式工作。您的本机程序需要成为第二个对等方。

如果您需要依赖开源组件,一个好的起点是:

  • 用于 DTLS 密钥交换的 OpenSSL。
  • libsrtp 来加密 RTP 数据包。
  • ffmpeg 从浏览器解码 PCM 音频(如果需要制作视频,则为 libvpx(。

您还需要处理需要处理 STUN 消息的 ICE 协商。还要从 RTP 数据包中提取媒体有效负载。所有这些步骤也是在确定在应用和浏览器之间交换 SDP 选件和答案的信令方法之后进行的。

正如您可能已经意识到的那样,从头开始是一项艰巨的任务。可能有一些商业图书馆可以完成这项工作并为您节省很多痛苦。

如果这并没有吓到你,并且你仍然想尝试使用开源组件,那么这个例子"可能"有帮助。该示例执行的操作与您提出的要求相反,而是将视频流发送到 Chrome,而不是接收音频流。有用的方面是连接协商。示例程序能够使RTP数据包流动,这通常是主要问题。

该示例还使用特定于Windows的Windows Media Foundation。它还具有许多快捷方式,特别是RTP和STUN数据包处理。