Tutorial completo de FFmpeg para editar y convertir vídeos

Última actualización: 12/12/2025
Autor: Isaac
  • FFmpeg es una herramienta de línea de comandos multiplataforma capaz de grabar, convertir y procesar audio y vídeo con soporte para una gran cantidad de códecs y formatos.
  • Permite realizar desde conversiones simples de formato hasta tareas avanzadas como recorte, reescalado, inserción de logos, generación de GIFs y creación de vídeos a partir de secuencias de imágenes.
  • Su verdadero potencial aparece al integrarlo en scripts y flujos automatizados, donde puede concatenar clips, aplicar transiciones, normalizar audio y estandarizar la producción de contenidos.
  • Con unos pocos comandos bien entendidos es posible construir un flujo de trabajo eficiente para edición y compresión de vídeos sin depender de interfaces gráficas pesadas.

tutorial de ffmpeg para archivos de video

Si trabajas con vídeo a menudo, tarde o temprano acabas topándote con FFmpeg como navaja suiza para convertir, comprimir y automatizar tareas. Da igual que vengas de editores con interfaz gráfica, de plataformas de streaming o de simples conversores online: cuando necesitas control fino, formatos raros o automatizar a lo bestia, FFmpeg entra en juego.

También es cierto que la primera vez que lo ves da un poco de respeto: montones de parámetros, comandos larguísimos y mensajes en la terminal. Pero una vez entiendes su lógica, se vuelve una herramienta comodísima para tareas repetitivas: cambiar de formato, reducir peso, recortar, añadir logos, generar GIFs o montar time-lapse a partir de fotos, entre otras muchas cosas.

Qué es FFmpeg y por qué se usa tanto en vídeo

que es ffmpeg y como se usa

FFmpeg es un conjunto de herramientas y bibliotecas de software libre pensadas para grabar, convertir, procesar y transmitir audio y vídeo. No es una aplicación con ventanitas y botones bonitos: se maneja desde la línea de comandos, lo que le da una flexibilidad brutal y lo hace ideal para automatización, servidores y scripts.

Su nombre hace referencia a Fast Forward MPEG, en alusión al grupo que definió los estándares de vídeo MPEG. Desde el año 2000, cuando Fabrice Bellard lanzó el proyecto, la comunidad lo ha ido ampliando hasta convertirlo en el motor multimedia que usan infinidad de programas y servicios sin que lo sepas (plataformas de streaming, editores, conversores, etc.).

Una de sus mayores virtudes es que soporta una cantidad enorme de códecs y contenedores (cómo elegir los mejores códecs para vídeos): MP4, MOV, MKV, AVI, WebM, FLV, Ogg, GIF animados, secuencias de imágenes, MP3, AAC, OGG, WAV, WMA y un largo etcétera. Si algo reproduce tu reproductor favorito, probablemente FFmpeg lo puede leer o generar.

Además, FFmpeg es multiplataforma. Se puede instalar sin problema en Linux, Windows, macOS y otros sistemas tipo Unix. Y aunque se use desde consola, existen varias interfaces gráficas que lo usan por debajo si prefieres ir poco a poco sin ver comandos.

Cómo instalar FFmpeg en Windows, macOS y Linux

instalar ffmpeg en windows mac y linux

Antes de ponernos a lanzar comandos, toca instalar la herramienta. El proceso cambia según el sistema operativo, pero en todos los casos se hace solo una vez y te olvidas.

Instalar FFmpeg en Windows

En Windows tienes varias opciones, pero una de las más habituales es descargar un paquete estático ya compilado. Esto te evita compilar nada ni pelearte con dependencias.

Un flujo típico sería así: vas a la web oficial de FFmpeg o a una página de builds confiables, descargas una versión “static” en formato ZIP o 7z, la descomprimes en la carpeta que quieras (por ejemplo, en un disco secundario), y verás dentro un directorio con varios subdirectorios, entre ellos bin, donde están los ejecutables ffmpeg.exe, ffplay.exe y ffprobe.exe.

Para no tener que ir siempre a esa carpeta, lo ideal es añadir la ruta al directorio bin a las variables de entorno del sistema. Desde Panel de control > Sistema > Configuración avanzada del sistema > Variables de entorno, localizas la variable Path, la editas y agregas la ruta completa a esa carpeta bin. A partir de ahí, podrás escribir ffmpeg en cualquier consola y se ejecutará.

Otra alternativa muy cómoda es usar un gestor de paquetes como Chocolatey y ejecutar en una consola de administrador: choco install ffmpeg. El propio gestor se encarga de la instalación y del PATH.

Instalar FFmpeg en macOS

En Mac, la manera más práctica es tirar de Homebrew. Si no lo tienes, lo instalas pegando el script oficial de instalación en la Terminal. Una vez operativo, basta un:

brew install ffmpeg

y en cuestión de minutos tendrás ffmpeg listo para usar desde cualquier terminal. Homebrew se encarga automáticamente de dependencias, rutas y actualizaciones futuras.

Si prefieres ir por tu cuenta, también puedes descargar binarios ya compilados para macOS, pero en la práctica, con Homebrew te ahorras bastante lío y puedes mantener FFmpeg actualizado con un simple brew upgrade ffmpeg.

Instalar FFmpeg en Linux

En la mayoría de distribuciones modernas, FFmpeg viene en los repositorios oficiales. En Debian, Ubuntu y derivadas, por ejemplo, puedes instalarlo con:

sudo apt install ffmpeg

En otras distros cambiará el gestor de paquetes, pero la idea es la misma: instalas el paquete ffmpeg y sus herramientas asociadas, como ffprobe. Si luego ejecutas which ffmpeg y obtienes algo tipo /usr/bin/ffmpeg, está todo correcto.

En escenarios más avanzados (por ejemplo, servidores que necesitan soporte específico para ciertos códecs o librerías), hay quien prefiere compilar FFmpeg desde el código fuente y añadir manualmente módulos como LAME para MP3, libogg, libvorbis o integrarlo con mplayer. En estos casos, previamente se descargan y compilan estas librerías, se ajustan permisos y rutas (LD_LIBRARY_PATH) y se crean enlaces simbólicos en /usr/lib hacia las bibliotecas de FFmpeg en /usr/local/lib.

Entender la sintaxis básica de FFmpeg

comandos basicos de ffmpeg

Una vez instalado, el siguiente paso es entender cómo se escribe un comando mínimo de FFmpeg. La estructura general suele ser:

  The way to Restore Lacking Downloads Folder on Mac

ffmpeg -i entrada.ext salida.ext

El parámetro clave es -i, que indica el archivo o flujo de entrada. Todo lo que añadas antes y después de esa opción son ajustes que afectan a cómo se procesa y genera el resultado.

Si simplemente quieres obtener información técnica de un archivo de vídeo, puedes usar:

ffmpeg -hide_banner -i video.mp4

Con esto FFmpeg muestra detalles como duración, bitrate, códecs de vídeo y audio, resolución, framerate y otros metadatos. El parámetro -hide_banner sirve para que no te muestre el enorme bloque inicial de configuración y compilación, y te centres en la información realmente útil.

Algunos parámetros globales muy útiles para orientarte son:

  • -formats: lista los formatos (contenedores) soportados.
  • -codecs: muestra todos los códecs de entrada y salida.
  • -decoders: detalla los códecs admitidos como entrada.
  • -encoders: enumera los códecs que puedes usar al exportar.

Con ese mínimo de información ya puedes empezar a convertir de un formato a otro simplemente cambiando la extensión de salida. Por ejemplo:

ffmpeg -i video_origen.mov video_destino.mp4

En este caso, FFmpeg elegirá códecs razonables según la extensión, por ejemplo H.264 para vídeo y AAC para audio en MP4, salvo que tú especifiques otra cosa.

Códecs, contenedores y parámetros clave de calidad

Para sacarle el jugo a FFmpeg es importante diferenciar entre códec y contenedor. No es lo mismo MP4 (contenedor) que H.264 o H.265 (códecs de vídeo), aunque a menudo se mezclan los términos en el día a día.

Un códec es el algoritmo que comprime y descomprime el flujo de datos de audio o vídeo (H.264, H.265/HEVC, AV1, VP9, AAC, MP3, Ogg Vorbis, etc.). El contenedor (MP4, MKV, AVI, MOV, WebM, Ogg, etc.) es el “envoltorio” que puede contener varias pistas de vídeo, audio, subtítulos y metadatos.

Algunos contenedores habituales son:

  • AVI: clásico de Windows, muy extendido pero con limitaciones modernas.
  • MOV: formato estándar de QuickTime, usado mucho en entornos Apple.
  • MP4: contenedor estándar para MPEG‑4, muy compatible en dispositivos.
  • Ogg: contenedor abierto para códecs como Vorbis o Theora.
  • MKV: formato Matroska, muy flexible y abierto, ideal para masters y archivado.

En FFmpeg puedes controlar la calidad sobre todo con parámetros como -b:v (bitrate de vídeo), -b:a (bitrate de audio) o el popular CRF en códecs como H.264 o H.265. Por ejemplo:

ffmpeg -i video.avi -b:v 2500k -b:a 192k salida.mp4

En este caso fuerzas un bitrate de vídeo de 2.500 kb/s y uno de audio de 192 kb/s. A mayor bitrate, más calidad y más peso, y viceversa. Con CRF (Constant Rate Factor) la lógica cambia un poco, porque un valor más bajo implica más calidad y un archivo más grande. En H.265, por ejemplo, un CRF en torno a 18-22 suele verse casi indistinguible del original en muchos casos.

Conversión, compresión y cambio de formato de vídeo

Uno de los usos más habituales de FFmpeg es convertir y recomprimir vídeos para que ocupen menos o cambien de formato, manteniendo una calidad razonable. Si prefieres una alternativa con interfaz gráfica, puedes ver cómo editar y convertir vídeos desde VLC.

Para una conversión básica, basta con indicar entrada y salida:

ffmpeg -i origen.avi destino.mpg

Si quieres afinar, puedes especificar el códec de vídeo y audio, el modo de calidad y el contenedor. Por ejemplo, para comprimir un vídeo usando H.265 (libx265) con muy buena calidad y sin tocar el audio:

ffmpeg -i "input.mp4" -c:v libx265 -preset veryslow -crf 18 -c:a copy "salida_comprimida.mkv"

Aquí estás usando:

  • -c:v libx265: códec de vídeo H.265 (muy eficiente).
  • -preset veryslow: codificación más lenta pero con mejor compresión.
  • -crf 18: calidad muy alta; puedes subir a 20-22 si quieres menos peso.
  • -c:a copy: copia el audio tal cual, sin recomprimirlo.

Si prefieres comprimir también el audio a AAC a 128 kb/s, podrías usar:

ffmpeg -i input.mp4 -c:v libx265 -preset veryslow -crf 18 -c:a aac -b:a 128k output.mkv

El contenedor MKV es muy estable y flexible para este tipo de trabajos. Si más adelante necesitas sí o sí un MP4, puedes remultiplexar (cambiar contenedor sin recomprimir) con:

ffmpeg -i salida.mkv -c copy salida_final.mp4

Este último paso es rápido, porque sólo cambia el “envoltorio” del archivo, sin tocar el contenido de vídeo y audio.

Operaciones básicas de edición con FFmpeg

FFmpeg también permite realizar muchas tareas clásicas de edición sin abrir un editor de vídeo pesado. No es cómodo para edición creativa a gran escala, pero para tareas concretas es inmediato.

Recortar un fragmento de tiempo

Si quieres sacar un tramo específico de un vídeo, puedes usar las opciones -ss, -t y -to. Por ejemplo:

  Métodos para crear un ID de Apple sin tarjeta de crédito

ffmpeg -i video.mp4 -ss 35 -t 30 fragmento.mp4

En este caso, empiezas en el segundo 35 y extraes 30 segundos. Otra variante sería:

ffmpeg -i video.mp4 -ss 00:00:35 -to 00:01:05 fragmento.mp4

Aquí defines momento de inicio y momento de final en formato horas:minutos:segundos. Según el orden en que pongas -ss con respecto a -i, el recorte será más rápido pero menos preciso, o al revés; para la mayoría de usos prácticos puedes dejarlo como en los ejemplos.

Cambiar resolución de vídeo

Para adaptar un vídeo a otra resolución, por ejemplo de 1920×1080 a 1280×720, puedes usar:

ffmpeg -i entrada.mov -s 1280x720 salida.mp4

El parámetro -s define el tamaño de salida. También puedes usar filtros de vídeo (-vf scale=) para tener más control sobre el reescalado o mantener proporciones concretas.

Eliminar o extraer pistas de audio

Si quieres quedarte sólo con el audio de un vídeo en MP3, por ejemplo, puedes usar:

ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio.mp3

Aquí se indica que no quieres vídeo con -vn, se ajusta la frecuencia de muestreo y canales, y se define un bitrate de audio razonable para MP3.

Si lo que quieres es eliminar el audio del vídeo y dejar sólo la imagen, podrías usar:

ffmpeg -i entrada.mp4 -an -c:v copy salida_sin_audio.mp4

La opción -an elimina el audio, mientras que -c:v copy evita recomprimir el vídeo, ahorrando tiempo y manteniendo calidad.

Insertar logos o marcas de agua

Para poner un logotipo fijo en una esquina del vídeo puedes recurrir al filtro overlay. Un ejemplo típico:

ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=10:10" salida.mp4

En este comando, overlay=10:10 indica que el logo se coloca a 10 píxeles del borde izquierdo y 10 del superior. Si quieres moverlo a la esquina inferior derecha, puedes usar expresiones basadas en el ancho y alto:

overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)

De esta forma el logotipo se adapta a cualquier resolución de vídeo sin que tengas que calcular posiciones a mano.

Trabajar con imágenes: extraer fotogramas y crear vídeos

FFmpeg no sólo sirve para vídeos clásicos; también es muy potente para convertir entre vídeos e imágenes, lo que resulta ideal para time-lapse, stop-motion o para analizar fotogramas concretos.

Extraer imágenes de un vídeo

Si quieres convertir cada fotograma en una imagen, basta con algo como (ver más opciones en cómo extraer fotogramas de vídeos y GIF):

ffmpeg -i video.mp4 image%d.jpg

Esto generará un archivo por fotograma: image1.jpg, image2.jpg, image3.jpg…. Si el vídeo es largo, acabarás con miles de imágenes, porque la mayoría de vídeos van entre 25 y 30 fps.

Para no generar una barbaridad de ficheros, puedes limitar la extracción con un filtro de fps, por ejemplo a una imagen por segundo:

ffmpeg -i video.mp4 -vf fps=1 image%d.png

Así solo se exporta una imagen por cada segundo del vídeo original, perfecto para hacer resúmenes visuales o thumbnails automáticos.

Crear un vídeo a partir de imágenes (time-lapse y presentaciones)

Si tienes una secuencia de fotos numeradas (por ejemplo, img-01.png, img-02.png, img-03.png…) puedes montar fácilmente un vídeo:

ffmpeg -framerate 5 -i img-%02d.png video.avi

En este caso, -framerate 5 define que se usarán 5 imágenes por segundo en el vídeo resultante. Si son fotos de un time-lapse, quizá te interese subir la velocidad para que el movimiento sea fluido, o bajarla si quieres un pase de diapositivas tranquilo.

FFmpeg entiende varios patrones de nombres:

  • filename-%03d.png: coincide con filename-001.png hasta filename-999.png.
  • filename-%d.png: coincide con filename-1.png, filename-2.png, etc.
  • filename-*.png: patrón más genérico, para cuando no sigues numeración estricta (en este caso necesitarás parámetros adicionales para controlar el orden).

Si además quieres forzar que el vídeo de salida sea MP4 con un determinado framerate de reproducción, puedes hacer algo así:

ffmpeg -framerate 1 -i img%03d.png -r 25 -pix_fmt yuv420p output.mp4

Aquí defines una captura de 1 imagen por segundo y un framerate de reproducción de 25 fps, con un formato de píxel compatible con la mayoría de reproductores.

Generar GIF animados y efectos sencillos

Otro clásico en FFmpeg es convertir pequeños vídeos en GIF animados para webs o redes. El proceso puede simplificarse a una sola línea o hacerse en varios pasos para ganar calidad.

Para el caso más directo:

ffmpeg -i entrada.mp4 salida.gif

Con esto ya tendrás un GIF funcional, aunque quizá no optimizado. Si quieres controlar mejor el tamaño y la calidad, una opción es reescalar el vídeo, generar frames en PNG y luego crear el GIF a partir de ellos. Por ejemplo:

ffmpeg -i input.mp4 -vf scale=640x360 -c:v h264 -crf 18 -c:a aac salida_intermedia.mp4

ffmpeg -i salida_intermedia.mp4 frame%04d.png

ffmpeg -i salida_intermedia.mp4 salida.gif

O bien usar herramientas externas especializadas en GIF para un acabado aún más fino. Este tipo de flujo te permite mantener un control total sobre resolución, calidad y peso del archivo final.

Automatizar edición de vídeo con scripts y YAML

Donde FFmpeg realmente brilla es cuando lo integras en scripts que automatizan tareas repetitivas. Si cada semana produces el mismo tipo de vídeo (cursos, entrevistas, piezas institucionales…), puedes definir un flujo estándar y dejar que un guion lo haga prácticamente todo.

  Repair: Duplicate Message Alert Notifcations on iPhone

Un enfoque muy potente consiste en describir tu proyecto en un archivo YAML (config.yml), donde detallas qué clips, imágenes, duraciones, recortes, volúmenes y transiciones quieres, y luego un script se encarga de traducir eso en comandos FFmpeg complejos.

Con este sistema puedes, por ejemplo, definir una lista de elementos (imágenes, vídeos, pistas de audio) que se procesan individualmente (recorte, cambio de volumen, reescalado, normalización) en un directorio temporal, para después concatenarlos con precisión milimétrica manteniendo audio y vídeo sincronizados.

Entre los casos de uso típicos están:

  • Montar vídeos formativos a partir de diapositivas + clips cortos.
  • Crear píldoras informativas compuestas por varios bloques estándar.
  • Generar intros y cierres institucionales para toda una serie de vídeos.

Ejemplos de scripts prácticos con FFmpeg

Sobre esta idea de automatización se pueden construir varios tipos de scripts, desde los más sencillos hasta montajes bastante elaborados, siempre apoyándose en FFmpeg como motor.

Script general para concatenar imágenes y vídeos

Un script generalista puede trabajar con una lista de elementos heterogéneos descritos en YAML (vídeos, imágenes, clips de audio), asignando a cada uno duración, recortes de inicio y final, volumen relativo, etc. El script genera versiones temporales ya ajustadas y luego construye un fichero de lista para concatenar todo mediante FFmpeg.

Esto te da un control fino sobre:

  • Resolución final y FPS del proyecto.
  • Volumen de cada segmento por separado.
  • Inicio y fin de cada clip sin abrir un editor gráfico.

Script simple: imagen de portada + vídeo principal

Un escenario todavía más habitual es el de querer mostrar una diapositiva fija a modo de portada (título, logo, datos del evento) durante unos segundos y a continuación lanzar el vídeo principal.

El script típico hace algo así:

  • Convierte la imagen de portada en un clip de vídeo de unos 5 segundos.
  • Codifica tanto la portada como el clip principal en un formato compatible para concatenación (por ejemplo, usando mpegts).
  • Concatena ambos segmentos sin recomprimir el contenido, lo que acelera el proceso y evita pérdidas de calidad.

Este tipo de soluciones suele almacenarse en rutas tipo /automatizacion/videos-asignaturas-abierto/ y se integran fácilmente en flujos de grabación de clases, conferencias o presentaciones grabadas.

Script elaborado para montajes con transiciones

En un nivel superior, puedes construir un guion que monte varios bloques con transiciones suaves de audio y vídeo. Un ejemplo típico incluye:

  1. Intro institucional con música y animación.
  2. Imagen fija con el título y datos del encuentro.
  3. Vídeo principal grabado en bruto (recortable al inicio y final).
  4. Cierre con animación y música.

Con FFmpeg puedes aplicar filtros como xfade (transición de vídeo) y acrossfade (transición de audio) para que los cambios entre bloques sean suaves. Además, puedes:

  • Recortar el vídeo principal al vuelo según tiempos indicados en YAML.
  • Ajustar volúmenes de cada segmento de forma independiente.
  • Forzar parámetros estándar como resolución 720p y audio a 44.1 kHz.

La lógica del montaje se define en un config.yml con las rutas de cada elemento, la duración de las transiciones, los puntos de corte, etc., y un script en una carpeta tipo /automatizacion/edicion-cafes/ traduce todo eso a una cadena de filtros y mapas en FFmpeg. El resultado es un vídeo final muy consistente a nivel visual y sonoro con un esfuerzo manual mínimo.

Más comandos útiles y trucos avanzados

Además de todo lo anterior, FFmpeg tiene infinidad de usos “de nicho” que, cuando los necesitas, te salvan el día. Entre otros:

  • Listar o extraer metadatos: ffmpeg -i INPUT -f ffmetadata metadata.txt.
  • Reemplazar la pista de audio de un vídeo sin tocar el vídeo: ffmpeg -i video.mp4 -i nuevo_audio.mp3 -map 0:v -map 1:a -c copy salida.mp4.
  • Generar una visualización de ondas de audio en vídeo con el filtro showwaves, útil para vídeos tipo podcast.
  • Cambiar formato de subtítulos, por ejemplo de VTT a ASS: ffmpeg -i subtitulos.vtt salida.ass. Para editar subtítulos con facilidad puedes ver usar Word como editor de subtítulos.
  • Ajustar volumen de forma rápida con -vol o filtros de audio más avanzados.

La lista completa es casi inabarcable, pero con una combinación de documentación oficial y ejemplos prácticos puedes ir construyendo tu propio repertorio de comandos frecuentes para no tener que reinventar la rueda cada vez.

FFmpeg pasa de ser ese programa “raro de consola” a convertirse en una herramienta central para convertir, comprimir, editar por lotes y automatizar la creación de vídeos, ya sea en tu equipo personal o dentro de scripts y flujos profesionales. Una vez te acostumbras a escribir unos cuantos comandos básicos, cada nuevo caso de uso es cuestión de ir sumando pequeñas piezas sobre una base que ya dominas.

subtítulos vlc
Artículo relacionado:
Cómo incrustar subtítulos en vídeos en Windows 11: guía completa y actual