23 pontos por GN⁺ 2024-09-05 | 2 comentários | Compartilhar no WhatsApp
  • Broadcast Box é uma ferramenta que permite fazer transmissões com latência ultrabaixa
  • Foi projetada para ser fácil de usar e simples de modificar. Foi desenvolvida para demonstrar as tecnologias mais recentes de transmissão
  • Vantagens de usar WebRTC
    • Latência ultrabaixa: a transmissão e a reprodução são feitas com WebRTC em vez de RTMP e HLS
    • É possível usar codecs de vídeo mais modernos. Com o codec AV1, é possível transmitir a mesma qualidade de vídeo usando 50% menos largura de banda
    • É possível enviar vários fluxos de vídeo na mesma sessão. Dá para transmitir de vários ângulos de câmera ou compartilhar experiências de vídeo interativas em tempo real
    • Para oferecer uma boa experiência ao usuário, é necessário transcodificar. Com WebRTC, os usuários podem enviar o mesmo vídeo em diferentes níveis de qualidade, reduzindo os custos operacionais do servidor
    • Com WebRTC, qualquer pessoa pode se tornar um transmissor. Com o Broadcast Box, é possível usar softwares de transmissão como o OBS. Também é possível começar a transmitir diretamente do navegador, facilitando o início de lives até para iniciantes
    • Peer-to-Peer quando necessário: com o Broadcast Box, é possível fornecer vídeo sem IP público nem port forwarding. Com a tecnologia P2P do WebRTC, dá para transmitir e reproduzir vídeo sem um servidor dedicado
  • Como usar
    • É possível usar diretamente em b.siobud.com hospedado, sem precisar executar o Broadcast Box localmente
    • Para executar localmente, consulte a seção Getting Started

Resumo do GN⁺

  • Broadcast Box é uma ferramenta que permite transmissões com latência ultrabaixa e oferece uma experiência de streaming rápida e eficiente usando WebRTC
  • Foi projetada para que até iniciantes possam usá-la com facilidade e pode ser utilizada de forma flexível em diferentes ambientes
  • Reflete as tendências mais recentes em tecnologia de transmissão, sendo útil para quem tem interesse no setor de broadcasting
  • Projetos com funcionalidades semelhantes incluem OBS e GStreamer.

2 comentários

 
roxie 2024-09-09

Realmente dá para fazer streaming estável com menos de 3 segundos de atraso. A onda do WebRTC vai chegar..

 
GN⁺ 2024-09-05
Comentários no Hacker News
  • Transformaram o Broadcast Box em um servidor de teste para OBS

    • Ficou mais fácil testar PRs de WebRTC/WHIP
    • À medida que as pessoas usam, ficam mais evidentes as vantagens e o interesse
  • Baixa latência significa relação com o público

    • Transmissões mais íntimas se tornam uma nova mídia
  • O envio simultâneo reduz os custos operacionais dos sites de streaming

    • Não é necessário executar ffmpeg/transcodificação no lado do servidor
  • AV1/H265/Opus permite transmitir mesmo para usuários com baixa largura de banda

    • Usuários com largura de banda suficiente também podem transmitir com qualidade mais alta do que antes
  • UDP viabiliza streams IRL/em roaming

    • Não é necessário ajuste personalizado para reconexão
  • Multitrack permite enviar vários feeds de vídeo ou idiomas ao mesmo tempo

  • Criptografia de ponta a ponta viabiliza distribuição P2P

  • Quem se interessa por este projeto também pode achar interessante o serviço de streaming WebRTC da Cloudflare

    • Streaming ao vivo com latência ultrabaixa usando WHIP e reprodução usando WHEP
    • É possível conectar diretamente à Cloudflare usando o plugin OBS WHIP
    • O modelo de preço é de US$ 1 por 1000 minutos, equivalente a US$ 0,06 por hora
  • Uma pergunta meta sobre por que live streaming é preferido

    • Live streaming tem várias desvantagens
      • Exige participação em tempo real
      • Não pode ser editado (uso ineficiente do tempo do espectador)
      • No lado do cliente, não dá para ajustar a velocidade nem pular partes desnecessárias
      • Não permite índice nem sumário
  • O Broadcast Box usa WebRTC para transmissão e reprodução

    • Usa WebRTC em vez de RTMP e HLS para oferecer a experiência mais rápida
    • RTMP não tem problema para alcançar baixa latência; quem determina a latência é a pilha de software
    • HLS adiciona latência extra por causa de limitações inerentes
  • Se isso funcionar direito, ficarei muito satisfeito

    • Jogar RPG junto pela internet não é divertido quando há mais de 1 segundo de atraso
    • Procurei uma solução de streaming P2P de baixa latência, mas só com OBS surgiram problemas
    • Obrigado por incluir esse caso de uso
  • O estado da arte atual para distribuir WebRTC para mais de 100 mil clientes

    • Quando eu trabalhava com streaming de baixa latência há alguns anos, o WebRTC conseguia latência abaixo de 1 segundo, mas faltava infraestrutura real para implantar isso
    • Cloudflare e outros fornecedores estavam criando padrões
    • Fico curioso se dá para operar um broadcaster WebRTC escalável horizontalmente (e se existe uma implementação open source)
    • Low-latency HLS ou CMAF chegavam a menos de 5 segundos de latência, mas eram muito fáceis de implantar (distribuir arquivos estáticos em CDN/servidor HTTP)
  • Sempre tenho problemas ao falar com a família pelo Jitsi

    • Não consigo ver a tela, ou ela aparece em baixa resolução, ou a câmera está ligada mas não aparece, ou todo mundo perde a conexão
    • Fico curioso se o Broadcast Box permite fazer streaming com OBS Studio (sem depender de servidores proprietários)
    • Não preciso de mais de 100 mil clientes, só de uma conexão estável entre 2 e 4 clientes
    • Posso operar um servidor fora do NAT
    • Latência de 120 ms é impossível; estou na Argentina e a maioria está nos EUA, então já há mais de 200 ms de latência até os EUA pela internet
    • Se o Broadcast Box não for o que eu quero, queria saber se há outras alternativas
    • Já conheço Zoom, Google e Teams, mas eles são vulneráveis por dependerem de servidores proprietários
  • Vi a seguinte frase no README

    • "Você pode trazer outros broadcasters para a stream usando P2P. Não é mais necessário nenhum servidor nem configuração especial"
    • Tenho uma configuração atual para fazer co-stream com um amigo
      • Meu amigo captura a jogatina com OBS
      • Meu amigo envia o stream do OBS para um Raspberry Pi na minha casa
      • O Raspberry Pi roda nginx para aceitar o stream RTMP
      • Em outro dispositivo, eu rodo OBS para capturar minha jogatina e adicionar overlays
      • Meu OBS usa VLC como fonte de entrada para capturar o stream do Raspberry Pi
    • A configuração é horrível, o vídeo atrasa e trava com frequência
    • Quero dar uma olhada neste projeto, mas mesmo depois de ler o README ainda não está claro como configurar
    • Preciso de orientação
  • Como alguém que não está acostumado com atraso em transmissão de vídeo, fico curioso sobre como isso se compara a outras alternativas

    • Também tenho curiosidade sobre as especificações de hardware usadas para alcançar a medição de 120 ms
  • Uso o OvenMediaEngine há alguns anos

    • Ele oferece recursos semelhantes, mas este projeto também parece promissor
    • Vou experimentar