Skip to content

Reprodução do stream

Um stream em funcionamento se serve por todos os protocolos principais de uma vez — não há nada para ligar, o endereço depende só do nome do stream. O espectador chega ao endereço da instalação; em um cluster, o balanceador de reprodução o leva ao streamer certo.

Os endereços

Protocolo Endereço
HLS /streaming/v/<nome>/index.m3u8 — o caminho principal para web, apps móveis e Smart TV
DASH /streaming/v/<nome>/Manifest.mpd
MPEG-TS por HTTP /streaming/mpegts/<nome> — decodificadores e VLC
Stream fMP4 /streaming/fmp4-stream/<nome> — fMP4 contínuo, prático para ferramentas
Reprodutor embutido /streaming/embed/<nome> — uma página-reprodutor pronta
Informações do stream /streaming/info/<nome> — JSON com trilhas e taxas de bits

Se o stream leva um transcodificador com escada de qualidades, HLS e DASH servem todas as qualidades e o reprodutor troca entre elas sozinho.

Duas maneiras de reproduzir moram em outras páginas: servir por SRT — na página de retransmissão, assistir ao arquivo com retrocesso — na página de DVR.

Reprodução em um cluster

Os endereços /streaming são a entrega de uma máquina específica: cada streamer os serve por conta própria, e nessa via não há balanceamento. Em um cluster não é preciso prender o espectador a uma máquina — o central tem um balanceador de reprodução: os mesmos endereços, só que com o prefixo /playback em vez de /streaming, no endereço do central:

http://<endereço do central>/playback/v/<nome>/index.m3u8
http://<endereço do central>/playback/embed/<nome>

O balanceador encontra um streamer vivo onde o stream está colocado e leva o espectador de uma de duas maneiras:

  • Redirecionamento — o reprodutor recebe um 302 para o payload URL público do streamer e dali em diante fala com a máquina diretamente; o central não participa do tráfego.
  • Proxy — o streamer está sem endereço público configurado, e o central repassa a mídia por conta própria.

A maneira é escolhida pelas configurações de entrega do streamer — veja Conexão e entrega.

Se o cluster tem streamers edge, o balanceador os prefere: os espectadores vão aos edges, e os streamers de captura servem só os fluxos internos do cluster. Streamers em cidades e redes diferentes são distribuídos entre espectadores pelo mecanismo de zonas CDN.

A proteção da reprodução vale também nessa via: a política é aplicada pelo streamer ao qual o balanceador levou o espectador.

O reprodutor embutido

/streaming/embed/<nome> é uma página-reprodutor completa: abra no navegador para uma checagem rápida ou incorpore no seu site com um iframe. O parâmetro ?autoplay=false desliga o início automático.

O reprodutor embutido com o ar ao vivo

O mesmo reprodutor mostra o stream na aba de configurações básicas do console.

Confira a entrega

A checagem mais rápida é a playlist:

curl -s http://<endereço>/streaming/v/<nome>/index.m3u8 | head

Um stream vivo responde com um manifesto listando as qualidades (#EXT-X-STREAM-INF). Um manifesto só de cabeçalho significa que o stream existe mas não tem o que servir: quase sempre codecs brutos sem transcodificador.

  • 404. Não há stream com esse nome — o nome entra no endereço literalmente.
  • O manifesto está lá, o reprodutor não toca. Olhe os codecs em /streaming/info/<nome>: reprodutores de navegador leem H.264/AAC.
  • O stream não está verde. Primeiro a fonte, depois a reprodução.