Repolode
pion

pion/webrtc

Implementação pura em Go da API WebRTC para criar conexões P2P de áudio, vídeo e dados em tempo real.

Estrelas
16,851
Forks
1,912
Issues abertas
107
Último commit
há 9 horas

O que é?

Pion WebRTC é uma biblioteca Go que implementa a API WebRTC e permite que programas em Go abram conexões peer-to-peer para transmitir áudio, vídeo e canais de dados arbitrários. Ela abrange a API PeerConnection, incluindo renegociação, DataChannels e SDP nos modos Plan-B e Unified Plan, além de um agente ICE completo e suporte a STUN e TURN sobre UDP, TCP, DTLS e TLS.

A biblioteca é escrita inteiramente em Go, sem Cgo, e pode ser compilada de forma cruzada para Windows, macOS, Linux, FreeBSD, iOS, Android, WebAssembly e várias outras arquiteturas. O suporte a mídia inclui acesso direto a RTP/RTCP, packetizers para Opus, PCM, H264, VP8 e VP9, além de leitores e gravadores para IVF, Ogg e Matroska. Ela também oferece recursos como simulcast, SVC, NACK, feedback de controle de congestionamento e estimativa de largura de banda.

O projeto usa a licença MIT e foi desenvolvido para quem precisa de WebRTC no lado do servidor ou em dispositivos embarcados, não apenas em navegadores.

Recursos principais

  • 01API PeerConnection completa, com DataChannels, renegociação e suporte a Unified Plan
  • 02Agente ICE completo, com STUN e TURN sobre UDP, TCP, DTLS e TLS
  • 03Go puro, sem Cgo, com compilação para Windows, macOS, Linux, iOS, Android e WASM
  • 04Acesso direto a RTP/RTCP e packetizers para Opus, H264, VP8 e VP9
  • 05Suporte a IVF, Ogg e Matroska para enviar e salvar mídia
  • 06Simulcast, SVC, NACK e estimativa de largura de banda

Casos de uso

  • Transmitir a imagem de uma webcam de um dispositivo embarcado para um navegador
  • Enviar arquivos de vídeo em tempo real para vários clientes de navegador
  • Criar aplicações de processamento de mídia ou videoconferência com WebRTC no servidor
  • Transferir dados com segurança entre dois servidores por canais de dados WebRTC

Início rápido

  1. 1

    Ative o Go Modules configurando a variável de ambiente

    export GO111MODULE=on
  2. 2

    Importe a biblioteca no seu projeto Go, especificando o caminho /v4

  3. 3

    Confira os aplicativos de exemplo para conhecer os usos mais comuns

Antes de usar

  • O Go Modules é obrigatório e, na versão atual, o caminho de importação deve incluir /v4.
  • A versão 4 inclui alterações incompatíveis, portanto, quem usa a v3 deve consultar as tags da versão anterior.
  • A implementação de getUserMedia requer Cgo.

Tópicos

Perguntas frequentes

O que é webrtc?
Implementação pura em Go da API WebRTC para criar conexões P2P de áudio, vídeo e dados em tempo real. Pion WebRTC é uma biblioteca Go que implementa a API WebRTC e permite que programas em Go abram conexões peer-to-peer para transmitir áudio, vídeo e canais de dados arbitrários. Ela abrange a API PeerConnection, incluindo renegociação, DataChannels e SDP nos modos Plan-B e Unified Plan, além de um agente ICE completo e suporte a STUN e TURN sobre UDP, TCP, DTLS e TLS.
webrtc é gratuito? Qual é a licença?
webrtc é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
webrtc ainda é mantido?
Manutenção ativa. O último commit de webrtc foi em 21 de out. de 2026.
Para que posso usar webrtc?
Transmitir a imagem de uma webcam de um dispositivo embarcado para um navegador Enviar arquivos de vídeo em tempo real para vários clientes de navegador Criar aplicações de processamento de mídia ou videoconferência com WebRTC no servidor Transferir dados com segurança entre dois servidores por canais de dados WebRTC
Como instalar webrtc?
Ative o Go Modules configurando a variável de ambiente: export GO111MODULE=on Importe a biblioteca no seu projeto Go, especificando o caminho /v4 Confira os aplicativos de exemplo para conhecer os usos mais comuns
Onde consigo webrtc?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pion/webrtc

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados