Pion WebRTC
WebRTC API 的纯 Go 实现。
突破性变化
Pion WebRTC v3.0.0 开始发布了! 查看 发布说明 以了解新功能和突破性变化。
在v3.0.0被标记之前,建议使用v2。查看最新的 v2 版本 标签。
使用 Pion WebRTC 时,Go 模块 是强制性的。所以请确保你设置 export GO111MODULE=on,并在导入时明确指定 /v2 或 /v3。
我们正在积极规划,希望得到您的反馈。请在 GitHub 上创建问题或加入 Slack 频道 来关注开发并与维护者交流。
Pion WebRTC 是一个纯 Go 的 WebRTC 实现。它没有任何非 Go 的依赖,也没有第三方 Go 的依赖。它的设计遵循 WebRTC API,但在需要时可能会有偏差。请参阅 DESIGN.md 了解项目的指导原则/灵感。
使用方法
示例应用 包含人们使用 Pion WebRTC 构建的常见事物的代码示例。
example-webrtc-applications 包含更多使用第三方库的全功能示例。
awesome-pion 包含使用 Pion 的项目,并作为真实的使用实例。
GoDoc 是一个自动生成的 API 引用。我们所有的公共 API 都有注释。
FAQ 是对常见问题的解答。如果你有一个问题没有涉及到,请在Slack中提出,我们一直在寻求扩展它。
现在去构建一些很棒的东西吧 这里有一些想法,让你的创造力流动。
将一个视频文件实时发送到多个浏览器,以实现完美同步的电影观看。
将嵌入式设备上的网络摄像头发送到浏览器,无需额外的服务器!
在两台服务器之间安全地发送数据,无需使用 pub/sub。
录制你的网络摄像头,并在服务器端做特效。
构建一个会议应用程序,处理音频/视频,并据此做出决策。
想了解更多关于WebRTC的信息?
请看 《好奇者的 WebRTC》。一本关于 WebRTC 的深度书籍,而不仅仅是关于 API 的。了解ICE、SCTP、DTLS、SRTP的全部细节,以及它们如何共同组成 WebRTC 协议栈。
如果你想调试,这也是一个很好的资源。Leran 交易工具以及如何处理WebRTC问题。
本书与厂商无关,不会有任何 Pion 的特定信息。
WebAssembly
Pion WebRTC 可以在编译成 WebAssembly,也就是 WASM 时使用。在这种情况下,该库将作为 JavaScript WebRTC API 的封装器。这让你可以在服务器和浏览器端代码中使用来自 Go 的 WebRTC,几乎没有任何变化。查看 应用程序示例,了解如何编译和运行 ebAssembly 示例。你也可以访问 WebAssembly 开发的 Wiki 页面 获取更多信息。
路线图
库正在积极的开发中,请参考 路线图 来跟踪我们的主要里程碑。我们还保留了一个 大创意 的列表,这些都是我们想要建立的东西,但还没有明确的计划或资源。如果你想参与其中,这是一个很好的开始。我们也很乐意听到你的想法! 即使您不能亲自实施,也可以激励其他人。
社区
Pion 在 Slack 上有一个活跃的社区。
关注 Pion Twitter,了解项目更新和重要的 WebRTC 新闻。
我们一直在寻求对您项目的支持。如果你有东西要构建,请联系我们! 如果你需要商业支持或者不想使用公开的方法,你可以通过 team@pion.ly 联系我们。
许可证
MIT许可 -- 见 许可 全文。
(The first version translated by vz on 2020.09.26)