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:
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.