Repolode
pion

pion/webrtc

纯 Go 实现的 WebRTC API,用于构建实时音视频与数据点对点连接。

Star
16,851
Fork
1,912
未关闭 Issue
107
最近提交
9小时前

这是什么?

Pion WebRTC 是一个 Go 语言库,实现了 WebRTC API,让 Go 程序可以建立点对点连接,传输音频、视频和任意数据通道。它支持 PeerConnection API、重新协商、DataChannel,并同时支持 Plan-B 与 Unified Plan 的 SDP,同时包含完整的 ICE Agent,以及基于 UDP、TCP、DTLS 和 TLS 的 STUN 与 TURN。

该库完全使用 Go 编写且不依赖 Cgo,可交叉编译到 Windows、macOS、Linux、FreeBSD、iOS、Android、WebAssembly 等多个平台和架构。媒体方面提供直接的 RTP/RTCP 访问、Opus、PCM、H264、VP8、VP9 的打包器,以及 IVF、Ogg、Matroska 的读写支持,并包含 Simulcast、SVC、NACK、拥塞控制反馈和带宽估计等功能。

项目采用 MIT 许可证,适合需要在服务端或嵌入式设备上使用 WebRTC 的开发者,而不仅限于浏览器场景。

核心功能

  • 01完整的 PeerConnection API,支持 DataChannel、重新协商和 Unified Plan
  • 02完整的 ICE Agent,支持基于 UDP、TCP、DTLS 和 TLS 的 STUN 与 TURN
  • 03纯 Go 实现且不依赖 Cgo,可编译到 Windows、macOS、Linux、iOS、Android 和 WASM
  • 04提供直接的 RTP/RTCP 访问,以及 Opus、H264、VP8、VP9 打包器
  • 05支持 IVF、Ogg、Matroska 格式的媒体发送与保存
  • 06包含 Simulcast、SVC、NACK 和带宽估计功能

适用场景

  • 将嵌入式设备上的摄像头画面实时推送到浏览器
  • 向多个浏览器客户端实时发送视频文件
  • 构建服务端 WebRTC 媒体处理或会议应用
  • 通过 WebRTC 数据通道在两台服务器之间安全传输数据

快速上手

  1. 1

    设置环境变量以启用 Go 模块

    export GO111MODULE=on
  2. 2

    在 Go 项目中导入该库,并指定 /v4 路径

  3. 3

    浏览示例应用,了解常见用法

使用前须知

  • 必须使用 Go Modules,且当前版本的导入路径需包含 /v4。
  • v4 包含破坏性变更,无法升级的用户需使用标签中的 v3 版本。
  • getUserMedia 实现需要 Cgo。

标签

常见问题

webrtc 是什么?
纯 Go 实现的 WebRTC API,用于构建实时音视频与数据点对点连接。 Pion WebRTC 是一个 Go 语言库,实现了 WebRTC API,让 Go 程序可以建立点对点连接,传输音频、视频和任意数据通道。它支持 PeerConnection API、重新协商、DataChannel,并同时支持 Plan-B 与 Unified Plan 的 SDP,同时包含完整的 ICE Agent,以及基于 UDP、TCP、DTLS 和 TLS 的 STUN 与 TURN。
webrtc 可以免费使用吗?用的什么许可证?
webrtc 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
webrtc 还在维护吗?
活跃维护中。webrtc 最近一次提交是在 2026年10月21日。
webrtc 适合用来做什么?
将嵌入式设备上的摄像头画面实时推送到浏览器 向多个浏览器客户端实时发送视频文件 构建服务端 WebRTC 媒体处理或会议应用 通过 WebRTC 数据通道在两台服务器之间安全传输数据
webrtc 怎么安装和运行?
设置环境变量以启用 Go 模块: export GO111MODULE=on 在 Go 项目中导入该库,并指定 /v4 路径 浏览示例应用,了解常见用法
在哪里获取 webrtc?
源代码和安装说明在 GitHub 上:https://github.com/pion/webrtc

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目