718

0

WebRTC

纯 Go 实现的WebRTC API

WebRTC API 的纯 Go 实现

Pion webrtc 源图小部件 松弛小部件 推特小部件 构建状态 包GoDev 覆盖状态 去报告卡 执照:麻省理工学院

用法

使用 Pion WebRTC 必须使用Go 模块。因此,请确保您设置, 并在导入时 export GO111MODULE=on明确指定 /v2or 。/v3

示例应用程序包含人们使用 Pion WebRTC 构建的常见事物的代码示例。

example-webrtc-applications包含更多使用 3rd 方库的全功能示例。

awesome-pion包含使用过 Pion 的项目,并作为真实世界的使用示例。

GoDoc是一个自动生成的 API 参考。我们所有的公共 API 都有注释。

常见问题解答有常见问题的答案。如果您有未涵盖的问题,请在Slack中提问,我们一直在寻求扩展它。

现在去建造一些很棒的东西!这里有一些想法可以让您的创意源源不断:

  • 将视频文件实时发送到多个浏览器,以实现完美同步的电影观看。
  • 将嵌入式设备上的网络摄像头发送到您的浏览器,无需额外的服务器!
  • 在两台服务器之间安全地发送数据,无需使用 pub/sub。
  • 记录您的网络摄像头并在服务器端做特效。
  • 构建一个处理音频/视频并据此做出决策的会议应用程序。
  • 远程控制机器人并实时传输其摄像机。

想了解更多关于 WebRTC 的信息吗?

加入我们的办公时间。快来闲逛,提出问题,获得调试帮助并了解使用 WebRTC 构建的酷东西。我们还从基本项目规划开始每次会议。

查看WebRTC 的 Curious。一本关于 WebRTC 的深度书籍,而不仅仅是关于 API。了解 ICE、SCTP、DTLS、SRTP 的全部详细信息,以及它们如何协同工作以构成 WebRTC 堆栈。

如果您尝试调试,这也是一个很好的资源。了解行业工具以及如何处理 WebRTC 问题。

这本书与供应商无关,不会包含任何 Pion 特定信息。

特征

PeerConnection API

  • Go implementation of webrtc-pc and webrtc-stats
  • DataChannels
  • Send/Receive audio and video
  • Renegotiation
  • Plan-B and Unified Plan
  • SettingEngine for Pion specific extensions

Connectivity

  • Full ICE Agent
  • ICE Restart
  • Trickle ICE
  • STUN
  • TURN (UDP, TCP, DTLS and TLS)
  • mDNS candidates

DataChannels

  • Ordered/Unordered
  • Lossy/Lossless

媒体

安全

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 和 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 用于 DTLS v1.2
  • SRTP_AEAD_AES_256_GCM 和 SRTP_AES128_CM_HMAC_SHA1_80 用于 SRTP
  • 可用于 GCM 套件的硬件加速

纯Go

  • 没有使用 Cgo
  • 广泛的平台支持
    • Windows、macOS、Linux、FreeBSD
    • iOS、安卓
    • WASM查看示例
    • 386, amd64, 手臂, mips, ppc64
  • 易于构建在 Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz 上生成的数字
    • 构建示例/从磁盘播放的时间 - 0.66s 用户 0.20s 系统 306% cpu 0.279 总计
    • 运行整个测试套件的时间 - 25.60s 用户 9.40s 系统 45% cpu 1:16.69 总计
  • 提供的衡量绩效的工具

路线图

该库正在积极开发中,请参阅路线图以跟踪我们的主要里程碑。我们还维护了一个大创意列表,这些是我们想要构建的东西,但还没有明确的计划或资源。如果您想参与其中,这是一个开始的好地方!我们也很想听听您的想法!即使您自己无法实现它,它也可以启发他人。

社区

Pion 在Slack上有一个活跃的社区。

关注Pion Twitter以获取项目更新和重要的 WebRTC 新闻。

我们一直在寻求支持 您的项目 。如果您有什么要构建的,请联系我们!如果您需要商业支持或不想使用公共方法,您可以通过team@pion.ly联系我们

贡献

查看贡献的 wiki以加入使这个项目成为可能的令人惊叹的团队:

赞助

Pion 的拥塞控制和带宽估计工作由用户运营的互联网基金资助,该基金由NLnet建立,由PKT 社区/网络管家和 stichting Technology Commons Trust提供资金支持。

执照

MIT 许可证 -全文见许可证