Fusionar dos pistas de subtítulos en una versión bilingüe: qué les pasa de verdad a los subtítulos
Publicado el 5/8/2026 · 16 min de lectura · Herramientas para desarrolladores
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en OneKitly
Rendimiento web · Formatos de archivo
Verificado con 4 fuentes
Este combinador no empareja subtítulos en absoluto, y saberlo antes de empezar ahorra una hora. Ofrece dos modos. «Superponer» concatena las dos listas y ordena el resultado por tiempo de inicio: no se combina nada, cuatro subtítulos ingleses y tres franceses producen siete subtítulos distintos, cada uno con una sola lengua. «Añadir» desplaza todo el segundo archivo para que empiece tras el final del primero más un espacio elegido, lo que sirve para unir los subtítulos de dos partes de vídeo, no de dos lenguas. Ninguno de los dos modos empareja por índice ni por solapamiento temporal, las dos estrategias que necesitaría una fusión bilingüe. Eso importa, porque los recuentos casi nunca coinciden: un traductor que convierte dos réplicas inglesas cortas en una frase francesa ya ha roto la correspondencia de índices, y a partir de ese subtítulo la numeración de los dos archivos diverge para siempre. «Superponer» sigue siendo útil cuando las dos pistas se ajustaron sobre el mismo máster, porque los inicios iguales mantienen cada pareja contigua y el orden de lectura se conserva, de modo que la línea del primer archivo va delante. Pero en cuanto una pista se adelanta cuarenta milisegundos en una réplica, esa pareja se invierte y tus dos lenguas dejan de aparecer en un orden constante. Lo que «superponer» nunca produce es un subtítulo con dos líneas. Si es eso lo que quieres, las dos lenguas tienen que unirse dentro del texto de un mismo subtítulo, lo que es una edición de texto y no una operación de tiempos, y SubRip no tiene posicionamiento de ninguna clase, así que dónde caen las líneas en pantalla lo decide el reproductor y no tu archivo.
El subtítulo 12 de la pista inglesa no es el subtítulo 12 de la francesa, porque los traductores parten y juntan las frases de otra forma. Existen dos estrategias para emparejarlos; este combinador no usa ninguna: intercala. Esto es lo que sale y cuándo basta.
Por qué el subtítulo 12 no es el subtítulo 12
Toma doce segundos de diálogo. En inglés son cuatro subtítulos: «I told you.» / «I told you twice.» / «And you did it anyway.» / «That is the part I mind.» El traductor francés funde los dos primeros en una sola línea que cabe cómodamente en pantalla y entrega tres subtítulos que cubren esos mismos doce segundos. A partir de ahí, el subtítulo inglés 3 es el francés 2, el inglés 4 es el francés 3, y cada divergencia posterior —una línea partida por velocidad de lectura, dos líneas unidas porque la lengua meta es más breve— vuelve a mover la correspondencia. Nada, en ninguno de los dos archivos, deja constancia de ello.
Así que una fusión bilingüe tiene que decidir, subtítulo a subtítulo, qué línea de un archivo va con qué línea del otro, y solo hay dos formas honestas de hacerlo. Emparejar por índice es instantáneo y correcto hasta la primera divergencia, tras la cual se equivoca con aplomo el resto de la película, y el fallo es invisible en un editor de texto porque ambos archivos siguen perfectamente bien formados. Emparejar por solapamiento temporal es la respuesta real: dos subtítulos van juntos cuando sus intervalos se cruzan por encima de cierto umbral. Hace falta ese umbral, porque el subtítulo del traductor suele empezar una fracción más tarde y porque un subtítulo largo en una lengua puede solapar dos cortos en la otra, lo que obliga a elegir entre emparejarlo con el solapamiento mayor o emparejarlo con los dos.
Lo que este combinador hace en su lugar: intercalar y concatenar
El modo «superponer» toma la lista de subtítulos del primer archivo, la del segundo, las pone una tras otra y ordena el conjunto por tiempo de inicio. Eso es todo. Ningún subtítulo se combina nunca con otro, ningún texto se une, ningún umbral se aplica. Ejecútalo con el ejemplo de cuatro y tres de arriba: devuelve siete subtítulos, numerados del 1 al 7, alternando entre las dos lenguas allí donde alternan los tiempos. El contador bajo el cuadro te lo dice antes de desplazarte: siete, no cuatro.
No es inútil, y conviene ser justo con los casos en que funciona. Si las dos pistas se ajustaron sobre el mismo máster —el caso normal de una edición subtitulada profesionalmente, donde el traductor parte del pautado original— los tiempos de inicio serán a menudo idénticos, y los inicios idénticos mantienen cada pareja contigua en la salida. El orden de lectura de los subtítulos se conserva, de modo que la línea del primer archivo pasa delante en cada empate, y obtienes un archivo que alterna de lengua de forma fiable. Probado con dos pistas de tiempos idénticos, cuatro subtítulos cada una, la salida son ocho subtítulos en parejas estrictas primer-archivo-luego-segundo.
La fiabilidad se acaba en cuanto los tiempos son solo parecidos en lugar de iguales. Dale a la pista francesa un arranque cuarenta milisegundos más tarde en cada línea: las parejas siguen contiguas, con el inglés siempre delante. Dale un arranque cuarenta milisegundos más temprano en una sola línea y esa pareja se invierte: la línea francesa pasa a ser el subtítulo 1 y la inglesa el 2, mientras el resto del archivo conserva el orden contrario. Leer una pista bilingüe cuyo orden de lenguas cambia sin avisar es peor que leer dos archivos separados; antes de usar una salida «superponer» para estudiar, comprueba unas cuantas parejas repartidas por la película, no solo la primera.
El modo «añadir» es otra herramienta para otro trabajo: unir los subtítulos de una película que llega en dos archivos. Calcula el mayor tiempo de fin del primer archivo, le suma el espacio que introduzcas y añade ese total a cada marca del segundo archivo. La trampa está en que suma a las marcas propias del segundo archivo en vez de sustituirlas. Si tu segunda parte ya está ajustada desde cero, todo sale bien. Si se recortó de un archivo más largo y su primer subtítulo está en 00:10:00, obtienes 00:10:13 en lugar de 00:00:13: la herramienta se probó exactamente con eso y produjo un agujero de diez minutos. Pon primero el segundo archivo a cero con la herramienta de desplazamiento y luego añade.
Dos subtítulos en la misma ventana, y por qué nadie puede decirte qué pasa
Una salida «superponer» contiene a menudo dos subtítulos consecutivos con tiempos de inicio y fin idénticos: ese es exactamente el aspecto de una pareja bilingüe una vez pasada la herramienta. Lo que un reproductor hace con eso no está especificado en ninguna parte, porque SubRip no tiene especificación donde especificarlo. La Biblioteca del Congreso no lista ningún documento de especificación para el formato. El contenedor Matroska, cuando ingiere SubRip, guarda el tiempo de inicio como marca del bloque y la duración como duración del bloque, y nada más: no hay ajustes generales para ese códec, así que el contenedor transporta el texto y el tiempo y no tiene campo donde registrar una preferencia sobre solapamientos.
En la práctica los reproductores difieren, y el único procedimiento fiable es probar el tuyo con una muestra de treinta segundos antes de comprometerte con una película entera. Algunos motores apilan las entradas simultáneas como líneas separadas; algunos muestran la última cargada y ocultan la otra; algunos descartan una en silencio. Ninguno se equivoca, porque no hay en qué equivocarse. No traslades una suposición de un reproductor de escritorio a un teléfono, una aplicación de televisión o una página web: los caminos de renderizado son distintos, y un archivo bilingüe que se ve bien en un portátil puede mostrar una sola lengua en un descodificador.
La pregunta vecina —dónde aparece cada lengua en pantalla— tiene una respuesta más corta: no puedes controlarlo desde un archivo SRT, porque SubRip no tiene posicionamiento alguno. El formato del programa original se limitaba a negrita, cursiva, subrayado y color, heredados de las etiquetas HTML, y nada en el formato trata la colocación. WebVTT es lo contrario: su línea de tiempos puede llevar una lista de ajustes con alineación, línea y posición, y define bloques REGION enteros para zonas de desplazamiento. Si la colocación importa en tu pista bilingüe, esa es una razón para trabajar en WebVTT y no en SubRip.
Cómo meter de verdad dos lenguas en un mismo subtítulo
El resultado que probablemente quieres es un subtítulo por momento con dos líneas, el original arriba y la traducción debajo. Es una operación de texto: las dos cadenas tienen que acabar en el mismo cuerpo de subtítulo, separadas por un salto de línea. La vía tentadora en este sitio es la ida y vuelta por hoja de cálculo: exportar la primera pista con el conversor de SRT a CSV, pegar la segunda lengua en una columna al lado, construir una columna de texto combinada y reconstruir el archivo con el conversor de CSV a SRT. Esa vía funciona de principio a fin, y el párrafo siguiente explica por qué se le puede confiar una película entera.
Las dos mitades son correctas. Un subtítulo con salto de línea se escribe como campo CSV entre comillas con un salto real dentro, que es la forma que describe la RFC 4180 y la que una hoja de cálculo abre como una sola celda; el conversor de CSV a SRT lee el archivo como registros CSV y no como líneas de texto, así que un salto solo termina un registro cuando cae fuera de las comillas. Probado con un subtítulo bilingüe hecho a mano, «I told you.» sobre «Je te l'avais dit.», la ida y vuelta devuelve las dos líneas dentro del mismo subtítulo, y un archivo que mezcla subtítulos de una, dos y tres líneas vuelve idéntico byte a byte.
La receta práctica es esta. Exporta la primera pista, pega la segunda lengua en una columna libre y construye una columna de texto combinada que ponga un salto de línea real dentro de la celda entre las dos: Alt+Intro en Excel para Windows, el atajo propio de tu hoja en los demás casos, y no una barra invertida seguida de una ene. Vuelve a pegar las cuatro columnas en el conversor de CSV a SRT y los subtítulos salen con el original arriba y la traducción debajo. Conserva la columna de índice mientras trabajas: la importación reconstruye en su orden, así que una hoja que hayas ordenado por el camino te devuelve igualmente un archivo en orden cronológico. Lo que hay que vigilar es la hoja de cálculo y no las herramientas: puede reinterpretar una columna de tiempos en cuanto abres el archivo, así que impórtalo en vez de hacer doble clic y pon las dos columnas de tiempo en Texto. Si prefieres no pasar por una hoja de cálculo, pegar las dos pistas una junto a otra en un editor de texto y unirlas a mano sigue siendo la vía más corta para un puñado de subtítulos.
| Estrategia | Cómo decide qué va con qué | Resultado en el ejemplo | ¿Disponible aquí? |
|---|---|---|---|
| Emparejar por índice | El subtítulo n de un archivo con el n del otro | Correcto hasta que los recuentos divergen, luego mal hasta el final | No |
| Emparejar por solapamiento temporal | Intervalos que se cruzan por encima de un umbral elegido | 3 o 4 subtítulos combinados, según el umbral | No |
| Intercalar (esta herramienta, modo «superponer») | Las dos listas concatenadas y luego ordenadas por inicio | 7 subtítulos separados, una lengua cada uno, parejas solo si coinciden los inicios | Sí |
| Concatenar (esta herramienta, modo «añadir») | El segundo archivo se empuja tras el final del primero, más un espacio | 7 subtítulos que van uno tras otro: para dos partes de vídeo, no dos lenguas | Sí |
| Emparejar a mano en un editor de texto | Decides tú, leyendo los dos archivos en paralelo | 4 subtítulos, cada uno con dos líneas: el resultado bilingüe | No lo automatiza el fusionador: hazlo en un editor, o con la ida y vuelta por CSV |
Preguntas frecuentes
- ¿El combinador empareja el subtítulo 12 con el 12, o usa los tiempos?
- Ninguna de las dos cosas, porque no empareja en absoluto. El modo «superponer» concatena las dos listas de subtítulos y ordena el resultado por tiempo de inicio; el modo «añadir» suma un desplazamiento a la segunda lista y la coloca tras la primera. En ambos casos cada subtítulo de los dos archivos sobrevive como subtítulo propio, conserva una sola lengua y se renumera en la salida. Cuatro subtítulos ingleses y tres franceses dan siete subtítulos, no cuatro combinados, y el recuento que aparece bajo el cuadro lo dice antes de desplazarte. Emparejar por índice sería erróneo aquí de todos modos —los recuentos divergen la primera vez que un traductor une dos líneas cortas en una— y emparejar por solapamiento temporal, que es el enfoque correcto, exige un umbral para el que esta herramienta no tiene campo. Lo que «superponer» sí te da, cuando las dos pistas se pautaron sobre el mismo máster, es un archivo en el que cada pareja queda contigua, porque los inicios iguales se ordenan juntos y se conserva el orden de lectura.
- Fusioné 4 subtítulos ingleses con 3 franceses y obtuve 7. ¿Es un fallo?
- No, es lo que significa intercalar, y siete es la respuesta aritméticamente correcta para una operación que no combina nada. La herramienta hace exactamente lo que anuncia —fusionar dos archivos en uno, renumerado— y «fusionar archivos» no es la misma operación que «fusionar subtítulos». Si esperabas cuatro subtítulos con dos lenguas cada uno, esperabas un paso de emparejamiento que esta herramienta no contiene. Lee la salida de siete subtítulos como una pista de lectura intercalada y no bilingüe: allí donde las dos pistas de origen tenían el mismo pautado verás las dos líneas seguidas, lo que sirve para estudiar; allí donde los tiempos difieren, una lengua aparecerá sola. Si necesitas un archivo bilingüe de verdad, los dos textos tienen que acabar dentro de un mismo cuerpo de subtítulo separados por un salto de línea, y se llega ahí en un editor de texto o mediante la ida y vuelta por CSV, que ahora devuelve intacto un subtítulo de dos líneas.
- ¿Qué hace un reproductor con dos subtítulos que ocupan exactamente la misma ventana?
- No hay respuesta que valga en todas partes, y eso es un hecho sobre el formato más que un hueco de este artículo. SubRip no tiene especificación: la ficha de la Biblioteca del Congreso no lista ningún documento de especificación y describe el formato como parcialmente documentado y mal normalizado. Nada define, por tanto, qué debería hacer un motor de renderizado cuando dos entradas reclaman el mismo intervalo. Algunos las apilan en líneas separadas, algunos muestran solo una, algunos descartan una sin decirlo, y el mismo archivo puede comportarse de otro modo en un reproductor de escritorio, una aplicación móvil y un navegador, porque los caminos de renderizado son distintos. El contenedor tampoco ayuda: cuando SubRip se integra en Matroska, el tiempo de inicio pasa a ser la marca del bloque y la longitud una duración de bloque, y como no hay ajustes generales para ese códec, no hay dónde registrar una preferencia. Prueba una muestra de treinta segundos en el reproductor que de verdad vayas a usar, y ahí y no donde te resulte cómodo.
- ¿Puedo poner el original arriba en pantalla y la traducción abajo?
- Desde un archivo SRT no, porque SubRip no tiene posicionamiento de ninguna clase. El formato que admitía el programa original se limitaba a negrita, cursiva, subrayado y color, heredados de las etiquetas HTML, y nada de ello trata la colocación; el contenedor Matroska confirma lo mismo desde el otro lado, guardando un subtítulo SRT como texto más una marca más una duración y dejando vacíos los datos privados del códec, porque no hay ajustes generales que registrar. La orden {\an8} que a veces se ve en archivos ripeados pertenece a otro formato y solo funciona en reproductores que quieran respetarla. Lo que sí controlas es el orden de las líneas dentro de un mismo subtítulo, lo que implica poner las dos lenguas en el mismo subtítulo y aceptar la colocación que el reproductor elija para el bloque entero. Si la colocación importa de verdad, usa WebVTT: su línea de tiempos admite una lista de ajustes con alineación, línea y posición, y define bloques REGION para zonas de desplazamiento; colocación real y especificada, no una convención.
- ¿Cuándo es el modo «añadir» la elección correcta, y qué trampa esconde?
- Es la elección correcta para un trabajo: una película que llega como dos archivos de vídeo con un archivo de subtítulos cada uno. La herramienta busca el mayor tiempo de fin del primer archivo, le suma el espacio que introduzcas en segundos y añade ese total a cada marca del segundo, de modo que la segunda parte arranca limpiamente tras la primera. La trampa está en que suma a las marcas existentes del segundo archivo en vez de sustituirlas. Eso es correcto cuando el segundo archivo está ajustado desde cero, que es lo habitual si las dos partes se subtitularon por separado. Es incorrecto cuando el segundo archivo se recortó de uno más largo y conserva sus posiciones originales: probado con un segundo archivo cuyo primer subtítulo estaba en 00:10:00, añadirlo tras una primera parte de 12 segundos con un espacio de 1 segundo lo situó en 00:10:13 y no en 00:00:13, dejando diez minutos de silencio en medio del resultado. El arreglo lleva treinta segundos —desplaza el segundo archivo menos su propia primera marca antes de fusionar— pero nada te avisa, así que comprueba el primer subtítulo de la segunda mitad en la salida.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
SubRip no tiene especificación. La Biblioteca del Congreso lo describe como parcialmente documentado y mal normalizado, así que lo que cuenta como archivo .srt válido lo decide el reproductor, el codificador o la plataforma que lo lee, y dos de ellos acabarán discrepando. Todo lo que se describe aquí se comprobó contra la salida real de la herramienta, no contra una norma, porque este formato no tiene ninguna. WebVTT es distinto —tiene una especificación publicada por el W3C— pero sigue siendo un Candidate Recommendation Draft y no una recomendación terminada. Guarda el archivo original, prueba el convertido en el reproductor o el gestor de subida que de verdad vayas a usar antes de tirar nada, y trata cualquier afirmación sobre lo que hacen «todos los reproductores», incluidas las de esta página, como algo que verificar en el tuyo.
Fuentes
- Library of Congress — Sustainability of Digital Formats, FDD000569, SubRip Subtitle format (SRT): lists no specification document, records the format as only partly documented and not well standardised, and describes the supported formatting as a limited set derived from HTML tags — bold, italic, underline and colour — with nothing addressing placement
- Matroska — Subtitles technical page: an SRT cue's start time becomes the block timestamp and its span becomes the BlockDuration, the text is converted to UTF-8 as S_TEXT/UTF8, and "because there are no general settings for SRT, the CodecPrivate is left blank" — the container carries no styling, positioning or overlap policy
- W3C — WebVTT: The Web Video Text Tracks Format, Candidate Recommendation Draft of 20 May 2026 — the counter-example: a cue timings line may be followed by a cue settings list, and WebVTT region definition blocks declare named areas, so placement is specified rather than left to the player
- Ecma International — ECMA-262, ECMAScript Language Specification, Array.prototype.sort: the sort is required to be stable, which is why cues sharing a start time keep the order in which the two files were read and the first file's line comes first in every tie
¿Has detectado un error en este artículo?