aiortc
? aiortc
是 Python 中用于 Web 实时通信 (WebRTC) 和对象实时通信 (ORTC) 的库。它构建在asyncio
之上,Python 的标准异步 I/O 框架。
该 API 在使用 pythonic 结构时紧密遵循其 Javascript 对应部分:
承诺被协程取代
使用pyee.EventEmitter
发出事件
要了解有关aiortc
更多信息,请阅读文档。
aiortc
?主要的 WebRTC 和 ORTC 实现要么内置于 Web 浏览器中,要么以本机代码的形式出现。虽然它们经过了广泛的实战测试,但它们的内部结构很复杂,并且不提供 Python 绑定。此外,它们与媒体堆栈紧密耦合,因此很难插入音频或视频处理算法。
相比之下, aiortc
实现相当简单且可读。因此,对于希望了解 WebRTC 工作原理或修补其内部结构的程序员来说,这是一个很好的起点。利用 Python 生态系统中提供的广泛模块也可以轻松创建创新产品。例如,您可以构建一个处理信号和数据通道的完整服务器,或者使用 OpenCV 将计算机视觉算法应用于视频帧。
此外,我们还投入了大量精力为aiortc
代码编写广泛的测试套件,以确保一流的代码质量。
aiortc
允许您交换音频、视频和数据通道,并且定期针对 Chrome 和 Firefox 测试互操作性。以下是它的一些功能:
SDP生成/解析
交互式连接建立,支持半滴流和 mDNS
DTLS 密钥和证书生成
DTLS 握手、加密/解密(用于 SCTP)
RTP 和 RTCP 的 SRTP 密钥、加密和解密
纯Python SCTP实现
数据通道
发送和接收音频(Opus / PCMU / PCMA)
发送和接收视频(VP8/H.264)
捆绑音频/视频/数据通道
RTCP 报告,包括 NACK / PLI 以从数据包丢失中恢复
安装aiortc
最简单的方法是运行:
pip 安装 aiortc
如果您的系统没有轮子或者您希望从源代码构建 aiortc,您将需要在系统上安装几个库:
Opus 用于音频编码/解码
用于视频编码/解码的 LibVPX
在 Debian/Ubuntu 上运行:
apt 安装 libopus-dev libvpx-dev
在 OS X 上运行:
酿造安装opus libvpx
aiortc
是在 BSD 许可证下发布的。