¿Qué es un archivo SRT?
Un archivo SRT es un formato de subtítulos en texto plano que contiene bloques numerados secuencialmente. Cada bloque incluye un tiempo de inicio, un tiempo de fin y el texto del subtítulo, con líneas en blanco que separan las entradas.
Cómo funcionan los archivos SRT
Los datos de subtítulos SubRip se organizan en bloques: una línea de contador, una línea de tiempos con la forma hours:minutes:seconds,milliseconds --> hours:minutes:seconds,milliseconds, una o más líneas de texto y una línea en blanco. El formato procede del programa de extracción de subtítulos SubRip y no tiene una especificación formal, por lo que, en la práctica, lo define aquello que aceptan los analizadores. Contiene tiempos y texto, pero no un modelo de disposición que los reproductores implementen de manera uniforme; muchos reproductores aceptan estilos informales, como etiquetas similares a las de HTML para negrita, cursiva, subrayado y color, lo que puede hacer que el mismo archivo se muestre de forma diferente entre aplicaciones. SRT suele aparecer como archivo complementario durante el intercambio de subtítulos, la localización, la revisión de calidad y el empaquetado en un contenedor de streaming.
Datos clave
- La notación canónica de tiempos de SRT tiene la forma
00:00:00,498 --> 00:00:02,827: una coma antes de los milisegundos y una flecha formada por dos guiones y un signo de mayor que. La tolerancia varía entre analizadores. El demultiplexor SRT de FFmpeg (comprobado en la versión 8.0) acepta una coma o un punto y no comprueba los valores del contador ni su orden, aunque la línea del contador debe comenzar con un número. Un analizador más estricto puede aceptar menos variantes, así que escribe la forma canónica. - Los navegadores no cargan SRT como pista de texto: MDN documenta que los archivos del elemento
trackson WebVTT. La conversión requiere más que cambiar el nombre del archivo. Un archivo WebVTT debe comenzar con la cadenaWEBVTT, utiliza un punto antes de los milisegundos y debe usar UTF-8 como representación de caracteres. - SRT no tiene un estándar de representación de caracteres ni un lugar donde declararlo, como señala la Biblioteca del Congreso, por lo que el lector debe recibir esa información o intentar deducirla. Entrega los archivos en UTF-8: Matroska almacena el texto SRT en UTF-8 y WebVTT lo requiere. Para los archivos heredados, convierte a partir de la representación de caracteres de origen conocida; la opción
sub_charencde FFmpeg sirve para indicar la representación de caracteres de los subtítulos de entrada. Si se desconoce, pregunta a quien envió el archivo; una representación de caracteres detectada es una estimación, así que revisa el texto acentuado y no latino después de convertirlo. - Considera que los estilos y el posicionamiento no son portables. La Biblioteca del Congreso describe las etiquetas de negrita, cursiva, subrayado y color derivadas de HTML como dependientes del lector. FFmpeg analiza las coordenadas opcionales
X1,X2,Y1,Y2de la línea de tiempos, pero su decodificador las reescala suponiendo un fotograma de 720×480, y Matroska conserva solo el texto y los tiempos de cada bloque al multiplexar SRT en el contenedor.
Cuándo importan los archivos SRT
Usa SRT para intercambiar subtítulos o traducciones con reproductores, editores y plataformas que lo acepten, y convierte a WebVTT para video HTML, donde el elemento track carga archivos WebVTT. Una línea de tiempos mal formada, la ausencia de una línea en blanco entre bloques o una representación de caracteres incorrecta pueden hacer que los subtítulos desaparezcan, se unan o muestren caracteres ilegibles.
Cómo ayuda Transloadit con los archivos SRT
El Robot /video/subtitle de Transloadit acepta archivos de subtítulos SRT y VTT y los añade a un video como un flujo separado que se puede activar o desactivar, o los incrusta en la imagen. Por su parte, el Robot /speech/transcribe puede generar su transcripción como archivo srt o webvtt.
La documentación del Robot no indica cómo se gestionan las etiquetas de estilo SRT o los archivos que no usan UTF-8, y señala que sus parámetros de color de texto, color de borde, negrita y cursiva se aplican solo a los subtítulos incrustados. Prueba archivos representativos con estilos y archivos que no usen UTF-8 en el modo que planeas utilizar.
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Descripción de formato fdd000569 de la Biblioteca del Congreso: formato de subtítulos SubRip (SRT)
- Matroska: subtítulos (sección de subtítulos SRT)
- FFmpeg 8.0 libavformat/srtdec.c, líneas 34–93: detección de SRT y análisis de la línea de tiempos
- FFmpeg 8.0 libavcodec/srtdec.c, líneas 33–56: coordenadas SubRip y conversión del marcado
- Documentación de códecs de FFmpeg: opción de códec
sub_charenc - MDN: el elemento track (incorporar una pista de texto)
- W3C: WebVTT, formato de pistas de texto para video web (sección 4, sintaxis)
- MDN: formato de archivo WebVTT (cabecera, tiempos de los bloques, codificación de caracteres)