Repolode
pion

pion/webrtc

リアルタイムの音声・映像・データによるP2P接続を構築するための、WebRTC APIの純粋なGo実装。

スター
16,851
フォーク
1,912
未解決の Issue
107
最終コミット
9 時間前

これは何?

Pion WebRTCは、WebRTC APIを実装したGoライブラリです。Goプログラムから、音声、映像、任意のデータをやり取りするP2P接続を確立できます。PeerConnection APIを網羅しており、再ネゴシエーション、DataChannels、Plan-BとUnified Planの両方のSDPに対応するほか、ICEエージェント、STUN、UDP・TCP・DTLS・TLS経由のTURNも備えています。

ライブラリはCgoを使わず、すべてGoで記述されているため、Windows、macOS、Linux、FreeBSD、iOS、Android、WebAssemblyなど、さまざまなプラットフォーム向けにクロスコンパイルできます。メディア機能として、RTP/RTCPへの直接アクセス、Opus、PCM、H264、VP8、VP9用のpacketizer、IVF、Ogg、Matroskaの読み書きをサポートしています。Simulcast、SVC、NACK、輻輳制御フィードバック、帯域幅推定などの機能も利用できます。

このプロジェクトはMITライセンスで提供されており、ブラウザだけでなく、サーバー側や組み込みデバイスでWebRTCを利用したい開発者向けに設計されています。

主な機能

  • 01DataChannels、再ネゴシエーション、Unified Planに対応した完全なPeerConnection API
  • 02UDP、TCP、DTLS、TLS経由のSTUNとTURNに対応する完全なICEエージェント
  • 03Cgoを使わない純粋なGo実装。Windows、macOS、Linux、iOS、Android、WASM向けにビルド可能
  • 04RTP/RTCPへの直接アクセスと、Opus、H264、VP8、VP9用packetizer
  • 05メディアの送信と保存に使えるIVF、Ogg、Matroska対応
  • 06Simulcast、SVC、NACK、帯域幅推定

ユースケース

  • 組み込みデバイスからブラウザへWebカメラ映像をストリーミングする
  • 動画ファイルをリアルタイムで複数のブラウザクライアントに送信する
  • サーバー側のWebRTCメディア処理や会議アプリケーションを構築する
  • WebRTCのデータチャネルを使って2台のサーバー間でデータを安全に転送する

クイックスタート

  1. 1

    環境変数を設定して Go Modules を有効にする

    export GO111MODULE=on
  2. 2

    インポートパスに /v4 を指定して、Go プロジェクトにライブラリをインポートする

  3. 3

    一般的な用途について、サンプルアプリケーションを確認する

使う前に知っておきたいこと

  • Go Modules は必須です。現行リリースでは、インポートパスに /v4 を含める必要があります。
  • バージョン 4 には互換性を破る変更が含まれているため、v3 のユーザーは旧リリースのタグを確認してください。
  • getUserMedia の実装には Cgo が必要です。

トピック

よくある質問

webrtc とは?
リアルタイムの音声・映像・データによるP2P接続を構築するための、WebRTC APIの純粋なGo実装。 Pion WebRTCは、WebRTC APIを実装したGoライブラリです。Goプログラムから、音声、映像、任意のデータをやり取りするP2P接続を確立できます。PeerConnection APIを網羅しており、再ネゴシエーション、DataChannels、Plan-BとUnified Planの両方のSDPに対応するほか、ICEエージェント、STUN、UDP・TCP・DTLS・TLS経由のTURNも備えています。
webrtc は無料で使えますか?ライセンスは?
webrtc は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
webrtc は今もメンテナンスされていますか?
活発にメンテナンス中。webrtc の最終コミットは 2026年10月21日 です。
webrtc は何に使えますか?
組み込みデバイスからブラウザへWebカメラ映像をストリーミングする 動画ファイルをリアルタイムで複数のブラウザクライアントに送信する サーバー側のWebRTCメディア処理や会議アプリケーションを構築する WebRTCのデータチャネルを使って2台のサーバー間でデータを安全に転送する
webrtc のインストール方法は?
環境変数を設定して Go Modules を有効にする: export GO111MODULE=on インポートパスに /v4 を指定して、Go プロジェクトにライブラリをインポートする 一般的な用途について、サンプルアプリケーションを確認する
webrtc はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pion/webrtc

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト