Cómo hacer subtítulos bilingües: dos idiomas en un solo archivo SRT o VTT
Crea un archivo SRT o VTT bilingüe que la gente pueda leer: combina por tiempo, ajusta dos idiomas en un mismo subtítulo, elige cuál va arriba y usa un verificador gratuito.

Para hacer subtítulos bilingües, necesitas un archivo de subtítulos con tiempos, una traducción que conserve esos mismos tiempos y un subtítulo por cada momento que contenga ambos idiomas: primero las líneas originales y luego las traducidas, bajo una misma marca de tiempo. Cualquier traductor que genere un archivo dual lo hace por ti, y una herramienta de fusión lo hace si ya tienes dos archivos. El formato SRT simple no necesita ninguna sintaxis especial para esto.
Crear el archivo es la parte fácil. Lo difícil es que los tiempos se escribieron para un solo idioma. Un subtítulo que cabía en dos líneas de inglés ahora tiene que contener cuatro líneas, en los mismos pocos segundos, sobre la misma imagen. Por eso esta guía dedica la mayor parte del tiempo a lo que hay que corregir después de la fusión.
Creamos un archivo de prueba de 12 subtítulos, generamos versiones en español, chino y árabe, y escribimos un verificador gratuito. Los archivos provienen del propio código de escritura de subtítulos de BookTranslator, ejecutado localmente. Escribimos las traducciones a mano en lugar de llamar a un modelo, así que estas pruebas muestran qué le pasa al archivo, no lo buena que es una traducción. El README tiene los detalles. El verificador necesita Python 3 y nada más.
Respuesta rápida: así se ve un subtítulo bilingüe
2
00:00:03,400 --> 00:00:06,600
There's another one at six,
but the station closes at midnight.
Hay otro a las seis,
pero la estación cierra a medianoche.
Eso es SRT válido. Cada subtítulo conserva su número y su marca de tiempo, y cada línea de texto debajo de la marca de tiempo aparece en pantalla al mismo tiempo. WebVTT funciona de la misma manera.
Elige la configuración primero
| Quieres | Usa | Por qué |
|---|---|---|
| Ver en casi cualquier reproductor o enviar un solo archivo a alguien | Un SRT fusionado | Es un archivo de subtítulos normal, sin necesidad de funciones especiales del reproductor |
| Ver en tu propio ordenador con control sobre cada idioma | Dos archivos separados en un reproductor compatible con dos pistas | Cada idioma conserva sus propios tiempos y se puede mover o desactivar |
| Mostrar los idiomas en diferentes tamaños en una página web | Un VTT con una clase para cada idioma | WebVTT permite estilos; SRT no tiene una forma estándar de hacerlo |
| Publicar un vídeo que se vea igual en todas partes | Subtítulos incrustados | El texto pasa a formar parte de la imagen y los espectadores no pueden desactivarlo |
Para dos pistas, mpv tiene una opción --secondary-sid. Su manual indica que la segunda pista se dibuja en la parte superior de la pantalla de forma predeterminada, lo que mantiene los idiomas separados. No probamos mpv nosotros mismos.
Para incrustar los subtítulos, el filtro de subtítulos de FFmpeg necesita una compilación con libass. La versión 9.0.1 de FFmpeg que instalamos para esta prueba no la tenía, así que ejecuta ffmpeg -filters | grep subtitles antes de planificar en torno a ello. No probamos la incrustación.
Paso 1: Consigue dos idiomas en un solo archivo
Si tienes un archivo, tradúcelo con una herramienta que genere un archivo dual. BookTranslator lo hace para cada trabajo de SRT y VTT: obtienes un archivo traducido y un archivo bilingüe con las mismas marcas de tiempo, y puedes empezar en el traductor de subtítulos. Si primero necesitas elegir una herramienta, consulta nuestra comparativa de software de subtítulos.
Si tienes dos archivos, emparéjalos por tiempo, no por número de subtítulo. Aquí es donde falla la fusión, porque dos pistas del mismo vídeo rara vez dividen sus líneas de la misma manera. Nuestra segunda pista en español divide dos subtítulos largos por la mitad y omite el efecto de sonido, el año y la música.
python3 check_bilingual_subs.py merge sample-source.srt sample-es-own-timing.srt -o merged.srt
Emparejar por número de subtítulo (la opción --index del script) falló en 10 de los 12 subtítulos, empezando por el subtítulo 2, donde desapareció la mitad del español. Para el subtítulo 3, la traducción pertenecía a una línea diferente:
3
00:00:06,800 --> 00:00:08,000
So where do we wait?
pero la estación cierra a medianoche.
Emparejar por tiempo dio la traducción correcta en menos de 9 subtítulos, dejó intactos los 3 subtítulos sin español e informó de la única línea en español que no coincidía con nada, para que puedas colocarla a mano. El script asigna un subtítulo de la segunda pista al subtítulo de la primera pista con el que más se solapa, siempre que cubra al menos la mitad de su longitud. Herramientas como submerger también fusionan archivos; no las probamos. Sea lo que sea que uses, revisa los subtítulos después del primer corte.
Paso 2: Revisa el archivo
python3 check_bilingual_subs.py check sample-source.srt sample-es-bilingual.srt --max-target-cps 17
Compara el archivo bilingüe con el original y supone que las líneas originales van primero, así que ejecútalo antes de intercambiar el orden. Te avisa si las líneas superiores no coinciden con el original. Esto es lo que encontró en el archivo en español:
| Subtítulo | Segundos | Líneas | Caracteres/seg del original | Caracteres/seg del español | Problema |
|---|---|---|---|---|---|
| 2 | 3.2 | 4 | 19.4 | 17.8 | Cuatro líneas, español demasiado rápido |
| 5 | 2.7 | 2 | 6.7 | 7.0 | ' en el texto |
| 7 | 1.0 | 2 | 4.0 | 4.0 | Mismo texto dos veces |
| 8 | 1.8 | 2 | 1.7 | 1.7 | Mismo texto dos veces |
| 9 | 1.2 | 4 | 20.8 | 22.5 | Cuatro líneas, ambos idiomas demasiado rápidos |
| 10 | 3.6 | 2 | 18.3 | 19.4 | Ambas líneas superan los 42 caracteres, español demasiado rápido |
Los subtítulos 6 y 12 también volvieron con cuatro líneas. Los otros cuatro subtítulos estaban bien.
Los límites de velocidad y longitud de línea provienen de Netflix, porque sus cifras son públicas y específicas, y varían según el idioma. Su guía para inglés permite 42 caracteres por línea, dos líneas y hasta 20 caracteres por segundo para programas para adultos. Su guía para español latinoamericano permite 17 caracteres por segundo para subtítulos traducidos, y su guía para chino simplificado permite 16 caracteres por línea y 9 por segundo. Por lo tanto, usa --max-target-line 16 --max-target-cps 9 para chino. Esas guías cubren un idioma a la vez, con dos líneas como máximo. No conocemos ningún estándar equivalente para dos idiomas en un mismo subtítulo, así que el valor predeterminado del verificador de tres líneas en pantalla, y todo lo de la siguiente sección, es nuestro criterio.
El verificador también imprime un número combinado, que alcanzó 43,3 caracteres por segundo en el subtítulo 9. No intentes corregir ese número. Nadie lee cada carácter de ambos idiomas con total atención. Trátalo como una indicación de los subtítulos que vale la pena revisar.
Paso 3: Corrige los subtítulos de cuatro líneas
Esto es lo que cuestan cuatro líneas. En el visor de subtítulos integrado de Chromium a 1280x720, el subtítulo en inglés de dos líneas ocupaba el 10,6 % de la altura del fotograma, y el mismo subtítulo con el español añadido ocupaba el 21,9 %.


Revisa los subtítulos marcados en este orden:
- Mantén el idioma del audio palabra por palabra. Si las personas escuchan el original y lo siguen en texto, un original acortado ya no coincide con lo que oyen.
- Reduce el otro idioma a una línea. Nuestro subtítulo 2 pasa de 17,8 caracteres por segundo a 13,1 cuando el español se convierte en
A las seis hay otro; cierran a medianoche.Eso son tres líneas en pantalla en lugar de cuatro, y conserva ambos datos. - Añade tiempo solo si hay un hueco. Comprueba el inicio del siguiente subtítulo antes de mover una hora de fin. El subtítulo 2 tiene 0,2 segundos de margen, lo que no merece la pena.
- Luego deja el resto en paz. El subtítulo 9 es
You knew?/Since March.en 1,2 segundos. Infringe los límites de velocidad y de líneas, pero lo dejaríamos: el hueco de 0,2 segundos después es demasiado pequeño para ayudar, y es probable que un espectador pueda captar dos respuestas cortas de un vistazo. No todas las marcas son un error.
Para líneas largas individuales como el subtítulo 10, divide cada idioma en dos líneas solo si el subtítulo tiene tiempo para ello. De lo contrario, acorta la traducción.
Si controlas la visualización, también puedes hacer que un idioma sea más fácil de distinguir. Ejecuta to-vtt para dar a cada idioma su propia clase. El archivo resultante se renderizó en Chromium con el inglés al 80 % del tamaño y en gris claro. Esto apenas ahorra espacio (21,1 % de la altura del fotograma en lugar de 21,9 %), así que no sustituye a recortar una línea. No probamos si ayuda a las personas a leer.

Esto utiliza clases de subtítulos y el selector ::cue() de WebVTT. Está pensado para navegadores. Otros reproductores pueden ignorar los estilos o el archivo VTT.
Paso 4: Decide qué idioma va arriba
Hay algunas investigaciones sobre esto. En un estudio de seguimiento ocular de 2026 con 42 hablantes nativos de español que tenían el inglés como segunda lengua, los espectadores pasaron más tiempo en la línea superior, independientemente del idioma en que estuviera, y pasaron más tiempo en la línea que coincidía con el audio. Las puntuaciones de comprensión fueron más altas con el español, su primera lengua, arriba. Un estudio anterior con 112 estudiantes chinos de inglés encontró que los subtítulos bilingües ayudaban a la comprensión tanto como los subtítulos solo en su primera lengua, y ambos superaban a los subtítulos en inglés o a la ausencia de subtítulos.
Se trata de estudios únicos de grupos específicos de espectadores, así que tómalos como punto de partida:
- Seguir una película o una conferencia por su contenido: pon arriba el idioma que lees mejor.
- Practicar un idioma que estás aprendiendo: pon ese idioma arriba y acepta que puede que entiendas algo menos. La comprensión es lo que midió el estudio de 2026, no el aprendizaje, así que esto es nuestro criterio.
- Revisar una traducción: el orden importa poco, así que déjalo.
El archivo bilingüe de BookTranslator siempre pone el original arriba. Para cambiarlo:
python3 check_bilingual_subs.py flip sample-source.srt sample-es-bilingual.srt -o translation-on-top.srt
Qué sale mal y cómo solucionarlo
Estos resultados provienen de ejecutar el código de subtítulos de BookTranslator en nuestros archivos de prueba, y el verificador marca los dos primeros.
- El texto que no necesita traducción aparece dos veces.
1984y♪ ♪se omiten por no tener palabras que traducir, así que el archivo bilingüe imprime cada uno dos veces. Elimina una línea a mano. 'puede aparecer en el texto. A partir de noviembre de 2026, un subtítulo con etiquetas de formato y un apóstrofo puede volver con el apóstrofo escapado. Nuestra línea original se convirtió en<i>Don't answer that.</i>en el archivo bilingüe, y en una prueba VTT separada una traducción al francés se convirtió en<i>Je n'attendrai pas.</i>también en el archivo traducido. Chromium lo decodificó en VTT y mostró un apóstrofo normal. Pero cuando convertimos el SRT con FFmpeg, el'permaneció en el texto de salida, así que supón que algunos reproductores lo mostrarán literalmente. Reemplaza'por'antes de usar el archivo. Hemos informado de esto a nuestros ingenieros.- Se eliminan los ajustes de subtítulos VTT. Los ajustes de posición como
line:0 align:start position:10%y los bloquesNOTEdesaparecieron de nuestra salida de prueba VTT, y las etiquetas de hablante aparecieron en ambas líneas. Si tu VTT depende de la ubicación, vuelve a añadirla después de traducir. - El texto de derecha a izquierda se marca línea por línea. Las líneas en árabe volvieron envueltas en marcas de dirección Unicode. Revisamos solo un subtítulo, en una copia VTT del archivo en Chromium, y se mostraba de derecha a izquierda. Las líneas que mezclan árabe con números, como nuestro subtítulo 10, son el caso más difícil y no las revisamos, así que pruébalo en tu reproductor habitual. SRT no tiene otra forma de establecer la dirección. Nuestra guía para texto de derecha a izquierda cubre los problemas más amplios de los libros.
Si tu fuente es ASS o SSA, la salida bilingüe de BookTranslator añade la línea traducida como un segundo evento con el mismo estilo y la misma sincronización, lo cual es una estructura diferente. Nuestra guía de subtítulos ASS explica cómo se componen esos archivos. Si los caracteres acentuados se ven mal en cualquiera de los dos idiomas, el problema suele ser la codificación del archivo, que cubre nuestra guía de codificación de subtítulos.
Antes de compartir el archivo
- Ejecuta el verificador y revisa cada subtítulo marcado.
- Busca
',&y"y reemplázalos. - Elimina las líneas duplicadas en efectos de sonido, números y música.
- Mira los minutos más concurridos en el reproductor que usarán tus espectadores, en el tamaño de pantalla que usarán.
- Comprueba que las líneas inferiores no cubran el texto en pantalla del video.
- Lee la traducción en contexto. Nuestro flujo de trabajo de subtítulos con IA cubre cómo revisarla.
¿Tienes un SRT o VTT listo? Súbelo al traductor de subtítulos y consulta el precio antes de pagar. Cuando termine, descarga el archivo bilingüe junto con el traducido. Luego ejecuta el verificador, ya que el número de líneas en un trabajo real depende de cómo el modelo divide cada subtítulo traducido.
Publicaciones relacionadas





