Edición de vídeos

Unir videos rápidamente con ffmpeg – Concatenar varios vídeos en uno

En este tutorial te voy a enseñar a concatenar vídeos sin ningún editor de vídeos ni procesamientos largos, totalmente gratis y con herramientas open source.

Lo que haremos será usar ffmpeg para unir varios vídeos en uno solo, es decir, pegar varios vídeos.

Antes que nada quiero aclarar que yo he probado el método que une los vídeos siempre y cuando los mismos tengan el mismo formato, resolución y detalles (la duración no importa) aunque igual existe la manera de combinar varios de formatos distintos.

Instalando ffmpeg

Ya tengo un tutorial indicando cómo instalar ffmpeg, te recomiendo ir a verlo y volver aquí cuando esté agregado a la PATH.

Para probar si lo has hecho bien, abre una terminal y ejecuta:

ffmpeg

Y te debe aparecer algo como:

ffmpeg version n5.0-4-g911d7f167c-20220328 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11.2.0 (crosstool-NG 1.24.0.533_681aaef)
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --disable-avisynth --enable-libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --disable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --disable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264 --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220328
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

Si te aparece que el comando no se reconoce, es porque no lo has instalado o no lo has agregado a la PATH. En ese caso recomiendo leer de nuevo el tutorial.

Creando lista de vídeos

La herramienta ffmpeg va a necesitar un archivo en donde esté la lista de vídeos, y los va a unir en el orden que aparezcan en el archivo.

Esa lista la podemos crear manualmente o con cualquier script, yo lo he hecho manualmente ya que no es algo que vaya a necesitar a menudo. La misma es la siguiente:

file 1.mp4
file 2.mp4
file 3.mp4

Fíjate que debes colocar literalmente file, luego un espacio y la ubicación del vídeo. Puedes colocar la ubicación entre comillas si es necesario, y también puedes colocar rutas absolutas.

Yo tengo 3 vídeos que se llaman 1, 2 y 3 con extensión mp4. Entonces así es como lo he indicado.

Nota: yo he colocado la lista en el mismo lugar que los vídeos por simplicidad.

Unir varios vídeos rápidamente

Ahora que tenemos la lista y los vídeos, vamos a unirlos. Para ello abre una terminal o CMD, navega hasta la carpeta en donde está la lista y ejecuta:

ffmpeg -f concat -i lista.txt -c copy salida.mp4

En donde lista.txt es el archivo con la ubicación de los vídeos que vas a combinar en uno solo. Y salida.mp4 es el vídeo resultante, es decir, la combinación de los que aparecen en la lista.

Yo lo he ejecutado con algunas repeticiones de partidas del juego Super Smash Bros Ultimate (tienen distinta duración pero el formato, códecs, framerate y resolución son iguales).

La terminal dijo:

Unir varios vídeos en uno usando ffmpeg sin editor de vídeos

Como puedes ver, todo funcionó a la perfección. La captura la tomé después de ejecutar el comando, por eso la salida está ahí.

Y básicamente fue como copiar y pegar todos los vídeos para unirlos en uno, pero sin procesarlos o recodificarlos; por ello el proceso es muy rápido.

El resultado lo puedes ver aquí:

Si el formato no es el mismo… y más detalles

No te preocupes, si los vídeos no usan el mismo formato o son distintos de alguna manera, siempre hay alternativas.

Yo he sacado todo esto de https://stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg y de https://trac.ffmpeg.org/wiki/Concatenate, ahí puedes encontrar más información para unir vídeos de distinto formato.

Recuerda que ffmpeg sirve también para convertir los vídeos de YouTube a mp3 y para descargar canciones automáticamente.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.