Volver al blog

Cómo Añadir Subtítulos a MKV y MP4 sin Recodificar

Añadir subtítulos a MKV y MP4 sin recodificar con MKVToolNix y FFmpeg: varios idiomas en un archivo, indicadores predeterminado y forzado, y por qué no se ven.

3 de octubre de 2026
Sablate Team

Para añadir subtítulos a un MKV sin recodificar, los incluyes mediante muxing como una pista aparte: MKVToolNix lo hace desde una interfaz gráfica, FFmpeg lo hace con un solo comando, y los dos copian el vídeo intacto en más o menos lo que tarda en copiarse el archivo. El MP4 también puede llevar pistas de subtítulos, pero solo como texto plano.

A continuación: las dos herramientas paso a paso, varios idiomas en un mismo archivo con sus etiquetas de idioma correctas, cómo afectan al espectador los indicadores predeterminado y forzado, y los motivos habituales por los que una pista añadida mediante muxing nunca aparece.

Por qué añadir subtítulos a un MKV no requiere recodificar

Un archivo de vídeo es un contenedor que reúne flujos separados, y añadir subtítulos solo añade un flujo más. La imagen y el sonido se comprimieron una sola vez, cuando se hizo el vídeo. El muxing —abreviatura de multiplexación— intercala un flujo adicional en el contenedor sin decodificar nada de lo que ya hay, así que el resultado es el mismo vídeo, bit a bit, con una pista de subtítulos al lado.

Incrustar subtítulos es la operación contraria. El texto hay que dibujarlo en cada fotograma, así que cada fotograma se decodifica, se pinta y se comprime de nuevo. Eso cuesta tiempo y algo de calidad, y sigue siendo la decisión correcta cuando una plataforma ignora las pistas de subtítulos; la guía para incrustar subtítulos cubre esa vía. Si todavía no tienes claro cuál de las dos necesitas, hardsub vs softsub es la versión corta de esa decisión.

Matroska (.mkv) se diseñó para la vía softsub. Admite cualquier número de pistas de vídeo, audio y subtítulos, además de archivos adjuntos como fuentes, y cada pista lleva sus propios metadatos:

  • Idioma — un código como eng o spa, que los reproductores usan para etiquetar las pistas y elegir una automáticamente.
  • Nombre — texto libre que se muestra en el menú del reproductor, como «English» o «English (SDH)».
  • Indicador predeterminado (default) — la pista que el reproductor activa cuando el espectador no ha elegido ninguna.
  • Indicador forzado (forced) — una pista que se muestra aunque el espectador tenga los subtítulos desactivados, pensada para los diálogos en otro idioma.

Acertar con esos cuatro es la mayor parte del trabajo. El muxing en sí es la parte fácil.

¿Se puede añadir una pista de subtítulos a un MP4?

Sí, pero el MP4 solo lleva los subtítulos como mov_text, un formato de texto plano con tiempos. FFmpeg convierte un SRT a ese formato al incluirlo, y las fuentes, los colores y el posicionamiento no sobreviven. Eso convierte el contenedor en una decisión de verdad y no en una cuestión de preferencia:

MKVMP4
Formatos de subtítulos que guardaSRT, ASS, PGS y otrosSolo mov_text
Estilo (fuentes, colores, posición)Se conserva en las pistas ASSSe descarta
Archivos de fuente adjuntos al vídeoSíNo
Varios idiomas en un mismo archivoSíSí, como texto plano
Se abre en los reproductores integrados de AppleNo de forma fiableSí
Se abre en VLC y mpvSíSí
Hace falta recodificar para añadir una pistaNoNo

La fila que suele decidirlo es la de Apple. QuickTime no abre MKV en absoluto y las apps propias del iPhone lo gestionan de forma poco fiable, mientras que ambos muestran bien las pistas mov_text, así que un archivo pensado para dispositivos de Apple debería ser MP4 aunque sus subtítulos sean de texto plano. VLC, mpv, Plex y Kodi reproducen MKV con el estilo y las fuentes adjuntas intactos. Los navegadores son el tercer caso: sus reproductores de vídeo suelen ignorar las pistas de subtítulos del propio archivo y esperan un archivo WebVTT aparte, y por eso la comparativa de formatos trata el VTT como el formato de la web.

Las tres formas de añadir pistas de subtítulos

  1. MKVToolNix — gratis, con interfaz gráfica, para Windows, macOS y Linux. La mejor herramienta cuando los archivos de subtítulos ya existen.
  2. FFmpeg — gratis, un solo comando, y la única de las tres que escribe MP4. La mejor herramienta para scripts y trabajos por lotes.
  3. Sablate — para cuando los subtítulos todavía no existen: transcribe, traduce por capas y exporta un único MKV con una pista por idioma.

Subtitle Edit también puede hacer el muxing, desde el menú Video → Add/remove embedded subtitles, y para ello usa FFmpeg por debajo.

Método 1: añadir subtítulos a un MKV con MKVToolNix

MKVToolNix es el conjunto de herramientas de referencia para los archivos Matroska, y su interfaz gráfica reduce todo el trabajo a cuatro pasos:

  1. Instálalo desde mkvtoolnix.download. La versión 102.0 salió el 14 de septiembre de 2026; la de macOS necesita macOS 13 Ventura o posterior.
  2. Abre MKVToolNix GUI, quédate en la pestaña Multiplexer y arrastra el vídeo y todos los archivos de subtítulos al área Source files. Cada archivo de subtítulos aparece como una pista independiente.
  3. Haz clic en cada pista de subtítulos y rellena los campos Language y Track name. Activa el indicador Default track en la única pista que deba reproducirse primero y desactívalo en las demás. Deja desactivado Forced display salvo que la pista cubra solo diálogos en otro idioma.
  4. Indica el nombre del archivo de destino en la parte inferior y pulsa el botón Start multiplexing.

No se codifica nada, así que incluso una película de dos horas termina en más o menos lo que tarda en copiarse el archivo. El mismo trabajo desde la línea de comandos, que es como lo procesarías por lotes:

mkvmerge -o film.subtitled.mkv film.mp4 \
  --language 0:eng --track-name 0:English --default-track-flag 0:yes en.srt \
  --language 0:spa --track-name 0:Spanish --default-track-flag 0:no es.srt

Las opciones se aplican al archivo que va detrás de ellas, y 0 es el ID de pista dentro de cada SRT, que solo contiene una pista. Si los caracteres acentuados salen ilegibles, el SRT no está en UTF-8: pon --sub-charset 0:windows-1252 (o la codificación real del archivo) delante de ese archivo, o vuelve a guardarlo antes en UTF-8.

Para cambiar los indicadores más adelante sin repetir el muxing, mkvpropedit edita directamente el archivo existente:

mkvpropedit film.subtitled.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1

track:s1 es la primera pista de subtítulos. Como modifica la cabecera del archivo en lugar de escribir uno nuevo, es casi instantáneo incluso en una película grande.

Método 2: añadir pistas de subtítulos con FFmpeg (MKV y MP4)

FFmpeg hace el mismo muxing con un solo comando, y es la herramienta que hay que usar cuando la salida tiene que ser MP4. Para un MKV con pistas en inglés y en español:

ffmpeg -i film.mp4 -i en.srt -i es.srt \
  -map 0:v -map 0:a -map 1 -map 2 -c copy \
  -metadata:s:s:0 language=eng -metadata:s:s:0 title=English \
  -metadata:s:s:1 language=spa -metadata:s:s:1 title=Spanish \
  -disposition:s:0 default -disposition:s:1 0 \
  film.subtitled.mkv

Léelo de izquierda a derecha: tres entradas; -map toma el vídeo y el audio de la película y después cada archivo de subtítulos en orden; -c copy copia cada flujo en lugar de codificarlo; -metadata:s:s:0 etiqueta el primer flujo de subtítulos de la salida; y las dos opciones -disposition marcan el inglés como predeterminado y quitan el indicador al español.

La lista explícita de -map importa. Un -map 0 a secas también traería cualquier pista de subtítulos que el origen ya tenga, y la pista mov_text de un MP4 no se puede copiar a un MKV, así que el comando se detiene con un error antes de escribir nada.

Para MP4, convierte los subtítulos a mov_text y copia todo lo demás:

ffmpeg -i film.mp4 -i en.srt -i es.srt \
  -map 0:v -map 0:a -map 1 -map 2 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language=eng -metadata:s:s:1 language=spa \
  film.subtitled.mp4

El vídeo y el audio siguen intactos; solo el texto de los subtítulos se reescribe al formato del MP4. Si tu entrada es un archivo .ass con estilo, este es el paso en el que el estilo desaparece.

Los subtítulos ASS con estilo van en MKV, con la fuente adjunta para que el reproductor los dibuje con la tipografía que elegiste y no con la que use como sustituta:

ffmpeg -i film.mp4 -i en.ass \
  -map 0:v -map 0:a -map 1 -c copy \
  -attach Montserrat-ExtraBold.ttf -metadata:s:t:0 mimetype=application/x-truetype-font \
  -metadata:s:s:0 language=eng \
  film.subtitled.mkv

La documentación de FFmpeg es explícita en que los adjuntos de Matroska necesitan esa etiqueta mimetype. mpv y VLC cargan las fuentes adjuntas cuando renderizan ASS, así que el estilo viaja con el archivo. Qué tipografía adjuntar es otra cuestión: la guía de fuentes para subtítulos explica qué se lee bien y qué escrituras no pueden dibujar las fuentes para subtítulos más populares.

Método 3: crear los subtítulos y el MKV de una sola vez

MKVToolNix y FFmpeg dan por hecho que los archivos de subtítulos ya existen. A menudo no es así: tienes una grabación, necesitas inglés más tres traducciones, y el muxing son los últimos segundos de un trabajo mucho más largo. Ese es el caso para el que está pensado Sablate, y todo el proceso se queda en una sola aplicación:

  1. Transcribe el vídeo en tu propio equipo con Whisper.
  2. Corrige la transcripción en el editor.
  3. Añade cada idioma como una capa de traducción sobre los mismos tiempos.
  4. Exporta Video with switchable subtitles (.mkv).

Lo que acaba en el archivo es lo que el Método 2 construye a mano. El vídeo y el audio se copian tal cual, así que la exportación tarda más o menos lo que tarda en copiarse el archivo. Cada capa de idioma se convierte en su propia pista ASS con tu estilo de subtítulos, con la fuente sustituida por una que pueda dibujar la escritura de ese idioma. Cada pista recibe una etiqueta de idioma y un nombre legible, la primera pista se marca como predeterminada y, cuando el estilo usa una de las tipografías para subtítulos que incluye Sablate, ese archivo de fuente se adjunta para que el estilo sobreviva en otro equipo.

Tres límites, dichos sin rodeos. La exportación a MKV forma parte de Pro, un único pago de $29 que figura en la página de precios. Sablate no escribe pistas de subtítulos en MP4, porque mov_text descartaría el estilo: exporta los archivos .srt y ejecuta el comando de FFmpeg para MP4 que aparece arriba si necesitas una. Y la exportación sustituye las pistas de subtítulos que el archivo de origen ya tuviera en lugar de conservarlas, así que, si esas pistas te importan, vuelve a añadirlas con MKVToolNix.

Para la parte de transcripción y traducción, el flujo de trabajo multilingüe la repasa paso a paso.

¿Qué método deberías usar?

Elige según lo que ya tengas —archivos de subtítulos o solo el vídeo— y según dónde tenga que reproducirse el archivo:

MKVToolNixFFmpegSablate
PrecioGratisGratis$29 de pago único (Pro)
PlataformasWindows, Mac, LinuxWindows, Mac, LinuxWindows y Mac
InterfazInterfaz gráfica y línea de comandosLínea de comandosInterfaz gráfica
Hace el muxing de los archivos de subtítulos que ya tienesSíSíParcial, mediante importación a un trabajo
Crea los subtítulos a partir de la vozNoNoSí
Escribe MP4 con pistas de subtítulosNoSíNo
Etiquetas de idioma e indicador predeterminadoSíSíSí, se definen automáticamente
Indicador forzadoSíSíNo
Adjunta fuentesSíSíSí, las tipografías para subtítulos incluidas
Cambia los indicadores sin repetir el muxingSí, con mkvpropeditNoNo

«Ya tengo los archivos de subtítulos». MKVToolNix. Es gratis, muestra cada pista y cada indicador antes de escribir nada, y el trabajo lleva dos minutos.

«Tengo una temporada entera de episodios que procesar». mkvmerge o FFmpeg en un bucle. Los dos comandos de arriba se ejecutan sin supervisión en cuanto los nombres de archivo siguen un patrón.

«Tiene que reproducirse en un iPhone o en QuickTime». MP4 con FFmpeg, y aceptar subtítulos de texto plano.

«Mis subtítulos son ASS con estilo». MKV con la fuente adjunta. El MP4 elimina el estilo en la conversión.

«Solo tengo el vídeo». Sablate, si quieres la transcripción, la traducción y el MKV multipista en un solo sitio. Subtitle Edit es la vía gratuita si no te importa montar los pasos por tu cuenta.

«Va a YouTube». Ningún contenedor. Plataformas como YouTube reciben el .srt o el .vtt como una subida aparte.

¿Por qué no se ven los subtítulos de mi MKV?

La pista casi siempre está ahí; algo decide no mostrarla. Primero comprueba qué contiene realmente el archivo:

ffprobe -v error -select_streams s -show_entries stream=index,codec_name:stream_tags=language,title:stream_disposition=default,forced -of compact=p=0 film.subtitled.mkv

Cada pista de subtítulos imprime una línea con su códec, su idioma, su nombre y sus indicadores predeterminado y forzado. Si las pistas aparecen, repasa esta lista de arriba abajo:

  1. Ninguna pista está marcada como predeterminada. El reproductor no tiene nada que activar por sí solo. Activa el indicador con mkvpropedit, como en el Método 1.
  2. La preferencia del propio reproductor se impone. VLC, Plex y muchos televisores guardan un idioma de subtítulos preferido o un ajuste de subtítulos desactivados que anula los indicadores del archivo. Revisa primero el reproductor y después el archivo.
  3. Una pista completa está marcada como forzada. Quien tenía los subtítulos desactivados los ve igualmente, de principio a fin. El indicador forzado solo debe usarse en pistas parciales.
  4. Se ignora la pista del MP4. Muchos reproductores se saltan mov_text sin avisar. Si el archivo no tiene que ser MP4, vuelve a hacer el muxing en MKV.
  5. Los acentos llegan como basura. El SRT de origen se guardó en una codificación antigua. Vuelve a guardarlo en UTF-8 y repite el muxing, o indica la codificación con --sub-charset en mkvmerge o con -sub_charenc delante de la entrada de subtítulos en FFmpeg.
  6. El texto con estilo se ve en una fuente genérica. La pista ASS hace referencia a una fuente que el equipo donde se reproduce no tiene. Adjunta el archivo de fuente, como en el último comando de FFmpeg.

El muxing es la parte barata de la entrega de subtítulos: un minuto en MKVToolNix, una línea en FFmpeg y nada recodificado. La parte cara es tener buenos archivos de subtítulos en cada idioma desde el principio. Si ya los tienes, las herramientas gratuitas de arriba son todo lo que necesitas. Si solo tienes la grabación, descarga Sablate para Windows o Mac, transcríbela y tradúcela, y deja que la exportación escriba por ti las pistas, las etiquetas y los indicadores.