O que é um arquivo SRT?
Um arquivo SRT é um formato de legendas em texto simples que contém blocos numerados sequencialmente. Cada bloco fornece um tempo de início, um tempo de fim e o texto da legenda, com linhas em branco separando as entradas.
Como funcionam os arquivos SRT
Os dados de legendas SubRip são organizados em blocos: uma linha de contador, uma linha de temporização no formato hours:minutes:seconds,milliseconds --> hours:minutes:seconds,milliseconds, uma ou mais linhas de texto e uma linha em branco. O formato vem do programa de extração de legendas SubRip e não tem especificação formal. Por isso, na prática, é definido pelo que os analisadores aceitam. Ele contém temporização e texto, mas não um modelo de layout implementado uniformemente pelos players; muitos players aceitam estilos informais, como tags de negrito, itálico, sublinhado e cor semelhantes às do HTML, o que pode fazer o mesmo arquivo ser renderizado de formas diferentes entre aplicações. O SRT costuma aparecer como arquivo auxiliar durante a troca de legendas, a localização, a revisão de qualidade e o empacotamento em um contêiner de streaming.
Informações essenciais
- A temporização canônica do SRT tem o formato
00:00:00,498 --> 00:00:02,827: uma vírgula antes dos milissegundos e uma seta formada por dois hífens e um sinal de maior que. Os analisadores têm tolerâncias diferentes. O demultiplexador SRT do FFmpeg (verificado na versão 8.0) aceita vírgula ou ponto e não verifica os valores dos contadores nem sua ordem, embora uma linha de contador precise começar com um número. Um analisador mais rigoroso pode aceitar menos variações, portanto escreva no formato canônico. - Os navegadores não carregam SRT como faixa de texto: a MDN documenta os arquivos do elemento
trackcomo WebVTT. Converter exige mais do que renomear o arquivo. Um arquivo WebVTT deve começar com a stringWEBVTT, usa um ponto antes dos milissegundos e deve ser codificado em UTF-8. - O SRT não tem um padrão de codificação de caracteres nem um local para declará-lo, como observa a Library of Congress. Por isso, o software de leitura precisa receber essa informação ou tentar adivinhá-la. Entregue em UTF-8: o Matroska armazena texto SRT em UTF-8, e o WebVTT exige essa codificação. Para arquivos legados, converta a partir da codificação de origem conhecida; a opção
sub_charencdo FFmpeg existe para informar a codificação das legendas de entrada. Se a codificação for desconhecida, pergunte ao remetente; uma codificação detectada é uma estimativa, portanto confira o texto acentuado e não latino após a conversão. - Trate a formatação e o posicionamento como não portáveis. A Library of Congress descreve as tags de negrito, itálico, sublinhado e cor derivadas do HTML como dependentes do software de leitura. O FFmpeg analisa as coordenadas opcionais
X1,X2,Y1,Y2na linha de temporização, mas seu decodificador as redimensiona supondo um quadro de 720×480, e o Matroska mantém apenas o texto e a temporização de cada bloco quando o SRT é multiplexado nele.
Quando os arquivos SRT são importantes
Use SRT para trocar legendas ou traduções com players, editores e plataformas que o aceitam, e converta para WebVTT no caso de vídeo em HTML, em que o elemento track carrega arquivos WebVTT. Uma linha de temporização malformada, a falta de uma linha em branco entre blocos ou a codificação de texto errada podem fazer as legendas desaparecerem, se juntarem ou exibirem caracteres corrompidos.
Como a Transloadit ajuda com arquivos SRT
O Robot /video/subtitle da Transloadit aceita arquivos de legendas SRT e VTT e os adiciona a um vídeo como um fluxo separado, que pode ser ativado ou desativado, ou os grava permanentemente na imagem. Já o Robot /speech/transcribe pode gerar sua transcrição como um arquivo srt ou webvtt.
A documentação do Robot não informa como são tratadas as tags de formatação SRT ou os arquivos que não estão em UTF-8, e indica que seus parâmetros de cor do texto, cor da borda, negrito e itálico se aplicam apenas a legendas gravadas permanentemente na imagem. Teste arquivos representativos com formatação e arquivos que não estejam em UTF-8 no modo que você pretende usar.
Explore os formatos de arquivo e os recursos de compressão da Transloadit
Fontes
- Descrição de formato fdd000569 da Library of Congress: formato de legendas SubRip (SRT)
- Matroska: legendas (seção de legendas SRT)
- FFmpeg 8.0 libavformat/srtdec.c, linhas 34–93: detecção de SRT e análise da linha de temporização
- FFmpeg 8.0 libavcodec/srtdec.c, linhas 33–56: coordenadas SubRip e conversão de marcação
- Documentação de codecs do FFmpeg: opção de codec
sub_charenc - MDN: o elemento track (incorporar faixa de texto)
- W3C: WebVTT, o formato de faixas de texto para vídeo na web (seção 4, sintaxe)
- MDN: formato de arquivo WebVTT (cabeçalho, temporização dos blocos de legenda, codificação de caracteres)