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 (CC1…CC4 para CEA-608, SERVICE1…SERVICE63 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¶
- 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.
- 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.
- 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.
- 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».