Skip to content

Legendas ocultas de um canal de radiodifusão

Um canal de radiodifusão quase sempre carrega legendas ocultas: elas não viajam como faixa separada, e sim dentro da própria imagem, nos dados de serviço dos quadros. Uma TV ligada ao cabo ou à antena as mostra. O assinante que assiste ao mesmo canal no seu aplicativo, não.

A Catena decodifica essas legendas e as entrega como uma faixa WebVTT separada, compreendida por todos os players OTT. Não é preciso acrescentar nada ao canal: o texto vem do mesmo sinal que você já recebe.

Para que serve ao provedor

  • As legendas deixam de se perder no caminho até o assinante. O radiodifusor as entregou, o seu player não as exibiu — e a reclamação chega a você, não a ele.
  • Requisitos de acessibilidade. Nos EUA, a CVAA obriga a preservar as legendas na distribuição on-line do que foi ao ar; na Europa, o European Accessibility Act exige o mesmo. O sentido prático é um só: se as legendas estavam na versão de antena, precisam estar também no aplicativo.
  • Multilinguismo de graça. O radiodifusor costuma colocar dois ou três serviços de idioma num único canal (nos EUA, inglês e espanhol). Cada um vira uma entrada do menu de legendas, sem uma segunda entrada de sinal e sem trabalho manual.
  • Uma entrada, todas as saídas. Decodifica-se uma vez na recepção e entrega-se ao navegador, ao aplicativo e à TV.

De quais dispositivos a conversão é necessária

Legendas embutidas estão longe de ser lidas por tudo o que seus assinantes usam:

  • O navegador é a falha mais comum. Os players web (hls.js, dash.js, Shaka) entregam a imagem por Media Source Extensions e não analisam legendas embutidas: CEA-708 não é lido de forma alguma e CEA-608, na melhor das hipóteses, parcialmente. Sem a conversão, o player web e a área do cliente ficam sem legendas.
  • A entrega DASH, independentemente do dispositivo. Legendas embutidas até podem ser anunciadas formalmente em DASH, mas os players não as procuram: só funciona uma faixa separada.
  • Aplicativos Android e Smart TVs, conforme o caso. Os players nativos de Tizen e webOS costumam entender CEA-608 e tropeçam em CEA-708; aplicativos baseados em ExoPlayer leem 608 e nem sempre 708, e em DASH não leem nada.
  • Set-top boxes e players web próprios, quase nunca: seria preciso programar à mão a leitura das legendas embutidas.
  • WebRTC e saídas de baixa latência: legendas embutidas simplesmente não chegam lá.

Nativamente lidam com elas poucos: Safari e iOS para HLS, Apple TV e Roku. Por isso «no meu iPhone as legendas aparecem» não diz nada sobre o resto do parque de dispositivos.

Como ativar

Abra o stream, aba Configurações básicas, seção Legendas ocultas. A Catena mostra ali os serviços que realmente falam no fluxo (CC1CC4 para CEA-608, SERVICE1SERVICE63 para CEA-708) e permite escolher o modo de entrega:

  • Dentro do vídeo (padrão): entregue como foi recebido. As legendas são anunciadas como embutidas e não há faixa separada.
  • Como faixa no lugar: as legendas são entregues em uma faixa WebVTT e retiradas do vídeo. O player mostra exatamente uma entrada de menu.
  • Dentro do vídeo e como faixa: os dois ao mesmo tempo. Escolha-o se o mesmo canal também chega aos assinantes por MPEG-TS.

Na mesma seção se definem o idioma e o nome do serviço — eles viram o rótulo da entrada do menu. Sem eles o rótulo é deduzido do fluxo e, quando não há idioma anunciado, do endereço do serviço.

O modo «como faixa no lugar» e o MPEG-TS

Nesse modo as legendas são retiradas do vídeo em todas as saídas, inclusive MPEG-TS: push por udp/rtp/srt e segmentos .ts. Dentro do MPEG-TS uma faixa de texto não tem em que viajar, então quem consome essa saída fica sem legendas. Se o canal é puxado por MPEG-TS, escolha «dentro do vídeo e como faixa».

O que o assinante verá

No player aparece um menu de legendas comum: uma entrada por serviço que fala, com idioma e nome. O texto acompanha a fala e fica onde ficava no ar — as linhas embaixo, não sobre os rostos.

As legendas funcionam também no arquivo: elas são gravadas sempre, qualquer que seja o modo escolhido. Por isso o modo pode ser ligado depois, e as legendas aparecerão inclusive em programas já gravados.

Se não houver legendas

  1. A seção «Legendas ocultas» está vazia. Então elas não são vistas no fluxo. Verifique se você está olhando um stream em andamento: os serviços são detectados do ar, não da configuração.
  2. O serviço aparece, mas não há faixa no player. Confira o modo: em «dentro do vídeo» não há faixa por definição.
  3. Há faixa, mas não há texto. É normal enquanto o ar está em silêncio: janelas de legenda vazias são um estado válido. Se também não houver texto durante a fala, envie um trecho do fluxo ao suporte.
  4. As legendas sumiram para parte dos assinantes depois da mudança para «como faixa no lugar». Quase certamente são consumidores de MPEG-TS: volte para «dentro do vídeo e como faixa».