Saltar al contenido principal
SubtitleMatrix

Convertir SUP (PGS) a SRT

Archivos multimediaSubtítulos de mapa de bits (PGS / VobSub)

La primera ejecución descarga el lector de texto: unos 4 MB más el modelo de idioma, servidos por este sitio y almacenados en caché por el navegador después. No se sube nada, y el resultado lo lee una máquina: revísalo antes de confiar en él.

Opciones

Un subtítulo de mapa de bits es una imagen de texto, así que las palabras tienen que leerse de ella. Indica al lector en qué idioma están escritos los subtítulos: la lista cubre todos los idiomas en los que se publica este sitio. Unos subtítulos en ruso leídos con el modelo inglés salen como ruido, no como ruso. Solo se descarga el modelo que elijas (los demás nunca se descargan), así que cambiar cuesta una descarga por idioma, que después queda en caché.

Un archivo .sup es un flujo PGS, el formato de subtítulos de imagen que usan los discos Blu-ray. No contiene un solo carácter: cada subtítulo se guarda como un mapa de bits, junto con una paleta y el momento en que debe aparecer, y el reproductor lo compone sobre el vídeo. Sacar texto de ahí significa, por tanto, leer las letras de cada imagen. Esta página lo hace en la pestaña con un motor de OCR que el sitio sirve por su cuenta y escribe el resultado como un archivo .srt.

El formato es una secuencia de segmentos, cada uno con una cabecera de trece bytes que lleva una marca de presentación en unidades de 90 kHz, un tipo y una longitud. Importan cuatro tipos: la definición de paleta (PDS), que asigna índices a RGB completo pasando por YCbCr; la definición de objeto (ODS), que contiene un mapa de bits codificado por rachas; la composición de presentación (PCS), que dice qué objetos se sitúan y dónde en el fotograma; y el conjunto de visualización que los apila. El inicio de un bloque es la marca de tiempo del conjunto de visualización que lo muestra. Un flujo PGS no lleva ninguna hora de fin: un subtítulo permanece en pantalla hasta que el siguiente conjunto lo sustituye, así que el fin de cada bloque aquí es el inicio del siguiente, que es exactamente lo que hace un reproductor.

Como cada bloque lo lee una máquina, el texto es una lectura y no una transcripción: una tipografía con serifas a tamaño pequeño, una fuente poco habitual o un contorno grueso pueden convertir un carácter en otro. Revisa el archivo a mano antes de fiarte de él. Esa advertencia no es una fórmula de cortesía: es el único punto del sitio donde la salida no se deriva de lo que decía el archivo, y la página lo dice en lugar de presentar el resultado como exacto.

Elige el idioma en que están escritos realmente los subtítulos. La lista cubre todos los idiomas en que se publica este sitio, y cada modelo lee su propia escritura. Pasar un modelo inglés sobre subtítulos japoneses produce ruido en lugar de una mala traducción, porque el reconocedor busca formas que no están ahí. Solo se descarga el modelo que elijas —unos 31 MB la primera vez— y después queda en caché.

Los bloques cuyas imágenes no producen ningún texto —un fotograma de fundido, un logotipo, un bloque negro— se omiten y se cuentan en la lista de pérdidas en lugar de escribirse como líneas vacías. Todo lo que era imagen sigue siendo imagen en esencia: la tipografía, el color, el contorno y la posición en pantalla no existen en un .srt, y la lista de pérdidas lo indica una vez para todo el archivo.

Preguntas frecuentes

¿Qué hay dentro de un archivo .sup que convierte la conversión a SRT en un trabajo de reconocimiento?

Segmentos, no caracteres. Cada subtítulo de un flujo PGS es un objeto: un mapa de bits de índices de paleta codificado por rachas, más una definición de paleta que convierte esos índices en RGB. Los únicos valores parecidos a texto del archivo son las marcas de presentación, que son enteros de 90 kHz y no algo que lea una persona. Convertir eso a SRT significa poner cada mapa de bits en un lienzo y reconocer las letras, y por eso el resultado necesita revisión y por eso la página pregunta en qué idioma están los subtítulos.

¿Por qué el último subtítulo de la salida termina un par de segundos después de lo que debería?

Porque PGS nunca dice cuándo termina un subtítulo. Un reproductor muestra una composición hasta que llega la siguiente o hasta que se limpia el flujo, así que la única hora de fin que existe en el archivo es el inicio de la siguiente. Para el último bloque no hay siguiente; la página le da dos segundos y registra esa decisión en la lista de pérdidas. Si el disco realmente mantenía su última línea diez segundos, la solución honesta es un desplazamiento o un ajuste de duración, no una suposición escondida en el conversor.

¿Qué modelo de idioma conviene elegir para subtítulos con líneas en japonés y en inglés?

El del idioma en que está la mayor parte del diálogo. Un fotograma PGS puede mezclar escrituras en una misma línea —es habitual una frase japonesa con un préstamo inglés escrito en letras latinas—, pero al reconocedor se le da un modelo por ejecución, y un modelo entrenado en una escritura lee la otra como basura. Si el archivo alterna de verdad entre dos escrituras, procésalo dos veces, una por idioma, y quédate con las líneas que cada pasada acertó: la salida es un .srt normal, así que fusionar las dos es un diff, no una nueva exportación.

¿Se trasladan los colores de los subtítulos al SRT?

No, y no pueden. Un .sup codifica el color tres veces: en la paleta (que es YCbCr con canal alfa, por bloque), en la composición (dónde se sitúa el mapa de bits en un fotograma de 1920×1080) y en el contorno y la sombra dibujados dentro del propio mapa de bits. SRT no tiene ninguno de esos huecos. La página lee la luminancia de cada píxel para decidir qué es tinta y qué es fondo, que es todo lo que necesita el OCR, y la lista de pérdidas informa del estilo una vez para el archivo en lugar de fingir que los colores sobrevivieron.

¿Qué ha pasado con los bloques que han salido vacíos o que faltan?

Una imagen que no produjo texto se descartó en lugar de escribirse como subtítulo en blanco. Ocurre con fotogramas de fundido de entrada y salida, con bloques que solo son un logotipo o un símbolo y con texto muy pequeño por debajo del tamaño que el reconocedor puede resolver. Cada uno se cuenta en la lista de pérdidas, así que el archivo que recibes no es más corto en silencio que el que entregaste. Si el recuento es alto, la causa habitual es un modelo de idioma equivocado o un flujo cuyos mapas de bits son especialmente pequeños.

¿Se sube a algún sitio el archivo .sup o sus imágenes?

No. El reconocedor se ejecuta en la pestaña, y su worker, su núcleo WebAssembly y su modelo de idioma se sirven desde este sitio y el navegador los guarda en caché. Las únicas peticiones que hace la página son para esos archivos. Esto importa más aquí que en una página de texto: un flujo PGS extraído de un disco suele ser justo la pieza que un estudio o un abogado menos dispuesto está a entregar a un tercero, y el sentido de esta página es que no tenga que hacerlo.

Herramientas relacionadas