← Blog

Cómo unir y concatenar videos con FFmpeg (Guía 2026)

Guía completa para unir y concatenar múltiples archivos de video usando FFmpeg. Cubre los métodos concat demuxer, filter y protocol, además de una alternativa gratuita con un solo clic.

5 min read

¿Tienes varios clips de video que necesitas unir en un solo archivo? FFmpeg ofrece varias formas de concatenar videos, pero el método correcto depende de si tus clips comparten el mismo formato, códec y resolución.

Esta guía cubre los tres enfoques con comandos exactos. Y para quienes prefieren no depurar incompatibilidades de códecs en una terminal, hay una alternativa gratuita de arrastrar y soltar al final.


Requisitos previos: Instalar FFmpeg

FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows: Descarga desde ffmpeg.org, extrae y añade bin al PATH.


Método 1: Concat Demuxer (Mismo formato — Más rápido)

Este es el método más rápido y sencillo. Funciona cuando todos los videos tienen el mismo códec, resolución y frecuencia de fotogramas.

Paso 1: Crear una lista de archivos

Crea un archivo de texto llamado files.txt:

file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'

Paso 2: Ejecutar el comando concat

ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
  • -f concat — usar el concat demuxer
  • -safe 0 — permitir rutas absolutas/relativas
  • -c copy — sin recodificación (instantáneo)

Generar la lista de archivos automáticamente

Linux/macOS:

for f in *.mp4; do echo "file '$f'" >> files.txt; done
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4

Windows (PowerShell):

Get-ChildItem *.mp4 | ForEach-Object { "file '$($_.Name)'" } | Out-File -Encoding ascii files.txt
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4

Método 2: Concat Filter (Formatos diferentes — Más flexible)

Cuando los clips tienen diferentes códecs, resoluciones o frecuencias de fotogramas, necesitas el concat filter. Este recodifica todo para que coincida.

Dos videos:

ffmpeg -i clip1.mp4 -i clip2.mov \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Tres videos:

ffmpeg -i clip1.mp4 -i clip2.mov -i clip3.avi \
  -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4
  • n=3 — número de segmentos de entrada
  • v=1 — una salida de flujo de video
  • a=1 — una salida de flujo de audio

Normalizar la resolución antes de concatenar

Si los clips tienen diferentes resoluciones, escálalos primero:

ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex \
    "[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2[v0]; \
     [1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2[v1]; \
     [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Método 3: Concat Protocol (Solo MPEG-TS)

Para flujos de transporte MPEG, puedes usar el protocolo concat directamente:

# Primero convertir a MPEG-TS
ffmpeg -i clip1.mp4 -c copy -bsf:v h264_mp4toannexb clip1.ts
ffmpeg -i clip2.mp4 -c copy -bsf:v h264_mp4toannexb clip2.ts

# Luego concatenar
ffmpeg -i "concat:clip1.ts|clip2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Este método generalmente ya no se recomienda — el concat demuxer (Método 1) es más sencillo y confiable.


Escenarios especiales

Combinar pistas de video y audio

Combina un archivo de video con un archivo de audio separado:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -shortest output.mp4
  • -shortest — detener cuando termine el flujo más corto

Reemplazar el audio de un video

ffmpeg -i video.mp4 -i new_audio.mp3 -c:v copy -c:a aac -map 0:v -map 1:a output.mp4

Concatenar videos con diferentes frecuencias de fotogramas

Forzar todas las entradas a 30fps antes de concatenar:

ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex \
    "[0:v]fps=30[v0];[1:v]fps=30[v1]; \
     [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Videos sin audio

Si algunos clips no tienen pistas de audio, añade audio en silencio:

ffmpeg -i clip_no_audio.mp4 -f lavfi -i anullsrc=r=44100:cl=stereo \
  -c:v copy -c:a aac -shortest clip_with_silence.mp4

Luego concatena normalmente.


Errores comunes y soluciones

“Discarding non-monotonous DTS”

Las marcas de tiempo están desalineadas entre clips. Recodifica:

ffmpeg -f concat -safe 0 -i files.txt -c:v libx264 -c:a aac output.mp4

“Stream 0 codec does not match”

Tus clips tienen diferentes códecs. Usa el concat filter (Método 2) en lugar del concat demuxer.

“Discarding 1 additional packets” / problemas de sincronización

Añade -fflags +genpts para regenerar las marcas de tiempo:

ffmpeg -fflags +genpts -f concat -safe 0 -i files.txt -c copy output.mp4

La salida tiene fotogramas negros entre clips

Esto ocurre cuando los clips tienen diferentes formatos de píxel. Fuerza un formato común:

ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex "[0:v]format=yuv420p[v0];[1:v]format=yuv420p[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Evita la terminal: Usa WaveSpeed Desktop

Fusionar videos con FFmpeg implica elegir entre tres métodos diferentes, crear listas de archivos, gestionar incompatibilidades de códecs, depurar problemas de marcas de tiempo y escribir cadenas filter_complex que parecen pesadillas de expresiones regulares.

WaveSpeed Desktop incluye un Media Merger integrado que simplifica todo:

  • Arrastra y suelta tus clips de video
  • Reordénalos según sea necesario
  • Haz clic en fusionar — un archivo, listo

¿Diferentes formatos? ¿Diferentes resoluciones? La aplicación lo gestiona automáticamente.

WaveSpeed Desktop Media Merger

Descarga WaveSpeed Desktop de forma gratuita: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


Preguntas frecuentes

¿Qué método concat debo usar? Si todos los clips tienen el mismo códec y resolución, usa el Método 1 (demuxer) — es instantáneo. Si los clips difieren en algo, usa el Método 2 (filter).

¿Puedo añadir transiciones entre clips? FFmpeg admite transiciones de fundido cruzado básicas con el filtro xfade, pero es complejo. Para transiciones, un editor visual suele ser más sencillo.

¿Fusionar videos reduce la calidad? No con -c copy (Método 1). Con el concat filter (Método 2), se produce recodificación y es posible una pequeña pérdida de calidad. Usa un CRF bajo (18–20) para minimizarla.

¿Hay un límite en cuántos videos puedo fusionar? No hay límite fijo en FFmpeg. En la práctica, la memoria y el tiempo de procesamiento escalan con el número de entradas.