Webrtc and Ortc的实现
aiortc的Python项目详细描述
什么是aiortc?
aiortc是Web Real-Time Communication (WebRTC)和 Object Real-Time Communication (ORTC)在python中。它建在 asyncio,python的标准异步i/o框架。
api在使用pythonic时紧跟其javascript对应项 构造:
- 承诺被合作所取代
- 事件使用pyee.EventEmitter 发出
要了解有关aiortc的更多信息,请read the documentation。
为什么要使用aiortc?
WebRTC和ORTC的主要实现要么内置在Web浏览器中, 或者以本机代码的形式出现。尽管它们经过了广泛的战斗测试, 它们的内部很复杂,不提供python绑定。 此外,它们与媒体堆栈紧密耦合,因此很难插入 在音频或视频处理算法中。
相反,aiortc实现相当简单且可读。作为 对于希望了解如何 WebRTC工作或修补其内部。创造创新也很容易 通过利用python生态系统中提供的大量模块来开发产品。 例如,您可以构建一个处理信令和数据的完整服务器 频道或使用opencv将计算机视觉算法应用于视频帧。
此外,在为 确保类内代码质量最佳的aiortc代码。
实施状态
aiortc允许您交换音频、视频和数据通道 Chrome和Firefox都定期测试互操作性。这是 它的一些功能:
- sdp生成/解析
- 建立交互式连接,包括半涓涓流
- DTLS密钥和证书生成
- DTLS握手、加密/解密(用于SCTP)
- rtp和rtcp的srtp密钥、加密和解密
- 纯python sctp实现
- 数据通道
- 发送和接收音频(opus/pcmu/pcma)
- 发送和接收视频(VP8/H.264)
- 捆绑音频/视频/数据频道
- rtcp报告,包括从包丢失中恢复的nack/pli
要求
除了aiortc的python依赖项之外,还需要几个库 为媒体编解码器安装在系统上。需要FFMPEG 3.2或更高版本。
在debian/ubuntu上运行:
apt install libavdevice-dev libavfilter-dev libopus-dev libvpx-dev pkg-config
在OS X上运行:
brew install ffmpeg opus libvpx pkg-config
许可证
aiortc在BSD license下释放。