Ejemplos prácticos de comandos FFmpeg para convertir formatos en Linux

Última actualización:
Autor:

ffmpeg

FFmpeg es considerado uno de los pilares más robustos y versátiles en el mundo del procesamiento multimedia en Linux, siendo imprescindible para quienes buscan flexibilidad y control absoluto desde la terminal. A pesar de la existencia de programas gráficos, la consola te ofrece precisión, velocidad y la posibilidad de automatizar todo tipo de tareas audiovisuales. Con FFmpeg puedes convertir formatos, adaptar archivos para dispositivos, extraer pistas, recortar fragmentos, modificar calidad, gestionar subtítulos y mucho más, manejando tanto audio como vídeo y hasta imágenes, todo con unos pocos comandos bien estructurados.

En este extenso artículo, hemos recopilado y reescrito en detalle la información más completa y avanzada de los mejores artículos que posicionan en Google para convertir formatos y manipular archivos con FFmpeg en Linux. Aquí no solo vas a encontrar los comandos básicos, sino los trucos, parámetros y ejemplos prácticos que abordan desde la instalación, conversión masiva de archivos, edición de metadatos, optimización de calidad, hasta la solución de problemas habituales y casos avanzados como la automatización, el trabajo con subtítulos, la compatibilidad con televisores o la sincronización de audio y vídeo.

¿Qué es FFmpeg y por qué usarlo en Linux?

FFmpeg es un conjunto de programas y bibliotecas desarrollados para la gestión, conversión, transmisión y análisis de archivos multimedia. Nacido bajo el paraguas del software libre, destaca por su compatibilidad con una cantidad inmensa de códecs y contenedores. Aunque existe para Windows y Mac, su integración en el mundo Linux es legendaria: muchas aplicaciones gráficas emplean FFmpeg como motor interno, y en servidores o scripts, no tiene rival.

La principal ventaja de FFmpeg es el poder de la terminal: puedes manipular grandes volúmenes de datos, automatizar flujos de trabajo y personalizar cada aspecto técnico del archivo multimedia. Su flexibilidad lo hace útil tanto para usuarios novatos, que solo buscan cambiar de formato, como para expertos que necesitan ajustar parámetros específicos para cada archivo o realizar postprocesos avanzados.

Instalación de FFmpeg en Linux

La instalación de FFmpeg es sencilla en la mayoría de distribuciones Linux. Normalmente, se encuentra en los repositorios oficiales:

  • Debian, Ubuntu y derivados: sudo apt install ffmpeg
  • Arch, Manjaro: sudo pacman -S ffmpeg
  • Fedora, CentOS, openSUSE: sudo dnf install ffmpeg

Comprueba que FFmpeg está correctamente instalado ejecutando ffmpeg -version o which ffmpeg. Si aparece la ruta, puedes empezar a trabajar.

Conceptos clave: códecs, formatos y contenedores

ffmpeg

Antes de sumergirte en los comandos, conviene asimilar algunos conceptos:

  • Códec: Algoritmo que comprime y descomprime audio o vídeo. Ejemplos: h264, xvid, mp3, aac.
  • Formato o contenedor: Fichero que agrupa pistas de vídeo, audio, subtítulos y metadatos. Ejemplos: mp4, mkv, avi, mov, webm.
  • Parámetros: Opciones específicas para ajustar bitrate, resolución, fps, canales de audio, etc.

FFmpeg admite multitud de combinaciones, pero el resultado depende de compatibilidades entre códecs y contenedores. No todos los formatos admiten todos los tipos de pista, ni todas las configuraciones resultan igual de compatibles en todos los dispositivos.

Sintaxis básica de FFmpeg y estructura de los comandos

La estructura general de cualquier comando de FFmpeg es:

ffmpeg -i archivo_entrada archivo_salida

Algunos puntos importantes:

  • Las opciones se aplican al archivo de entrada o salida que viene a continuación. El orden cuenta.
  • Puedes tener varios archivos de entrada y de salida, manipulando cada uno con índices.
  • Si no se especifica el archivo de salida, FFmpeg solo mostrará la información en la consola, no generará un nuevo fichero.
  • Las opciones globales (por ejemplo, nivel de verbosidad) van al principio.

Por ejemplo, para convertir un fichero AVI a MP4:

ffmpeg -i video.avi video.mp4

Y si quieres establecer un parámetro específico, como la tasa de bits de vídeo a 2500 kb/s y la de audio a 192 kb/s:

  Easy methods to Get a Free US Telephone Quantity From Any Nation

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

Comandos esenciales para conversión de formatos

Cambiar el formato de un vídeo o audio

  • De MP4 a AVI:
    ffmpeg -i entrada.mp4 salida.avi
  • De MKV a MP4:
    ffmpeg -i original.mkv convertida.mp4
  • De AVI a MPG (MPEG):
    ffmpeg -i video.avi video.mpg
  • De FLV a MPEG:
    ffmpeg -i video.flv video.mpeg
  • De MOV a MP4:
    ffmpeg -i archivo.mov resultado.mp4

El formato de salida se define solo cambiando la extensión, pero si quieres forzar un códec o ciertas características, añade los parámetros necesarios:

ffmpeg -i entrada.mov -c:v libx264 -c:a aac salida.mp4

Convertir audio entre formatos

  • De WAV a MP3:
    ffmpeg -i cancion.wav nueva.mp3
  • De WMA a MP3:
    ffmpeg -i audio.wma -f mp3 -ab 192 audio.mp3
  • De FLAC a OGG:
    ffmpeg -i original.flac destino.ogg

También puedes cambiar parámetros como el codec, la tasa de bits, los canales o el muestreo:

ffmpeg -i sonido.flac -acodec libmp3lame -ab 128k -ar 44100 nuevo.mp3

Ejemplo práctico: convertir varios archivos

Para convertir por lotes archivos de una carpeta, usa un bucle en bash:


for archivo in *.avi; do
ffmpeg -i "$archivo" "${archivo%.avi}.mp4"
done

Así transformarás todos los AVI de la carpeta en archivos MP4.

Control de calidad y ajuste de parámetros clave

Bitrate de vídeo y audio

  • Vídeo: -b:v 3000k (3000 kbps)
  • Audio: -b:a 192k (192 kbps)

Puedes ajustar la calidad dependiendo del uso. Por ejemplo, para dispositivos móviles puedes reducir la resolución y el bitrate:

ffmpeg -i entrada.mkv -vf scale=1280:720 -b:v 1500k salida.mp4

Y para audios más ligeros:

ffmpeg -i cancion.wav -b:a 96k cancion_compacta.mp3

Cambiar la resolución y la relación de aspecto

  • Para forzar una resolución de salida concreta:
    ffmpeg -i entrada.mp4 -s 1280x720 salida_720p.mp4
  • Para alterar la relación de aspecto:
    ffmpeg -i entrada.mp4 -aspect 16:9 salida_16_9.mp4

En ocasiones, ciertos dispositivos requieren formatos específicos de píxel, como televisores LG que necesitan -pix_fmt yuv420p: más sobre compatibilidad con píxeles.

Modificar la tasa de cuadros por segundo (FPS)

Para cambiar o forzar un número de FPS:

ffmpeg -i original.mp4 -r 30 salida_30fps.mp4

Recuerda que transformar la resolución o el framerate no mejora la calidad original, aunque puede ser necesario para compatibilidad.

Extracción de información y análisis de archivos

Antes de convertir, es fundamental conocer las características del fichero:

ffmpeg -i archivo.ext

Esto mostrará por consola el códec, duración, calidad, canales y metadatos.

Si quieres que la salida sea más limpia, añade -hide_banner: más sobre análisis y metadatos.

ffmpeg -hide_banner -i archivo.ext

Para análisis exhaustivo y personalizable, utiliza ffprobe: más sobre ffprobe y análisis avanzado.

ffprobe -i archivo.ext -print_format json -show_format -show_streams

Así obtienes toda la información estructurada en JSON.

Edición y manipulación avanzada de archivos multimedia

Editar metadatos

  • Exportar metadatos de un archivo MP3:
    ffmpeg -i cancion.mp3 -f ffmetadata metadata.txt
  • Modificar e importar metadatos:
    ffmpeg -i original.mp3 -metadata artist='Nuevo Artista' -acodec copy salida.mp3

Puedes editar información como artista, álbum, género, año, pista, etc. Ideal para organizar tu música o adaptarla a reproductores exigentes (por ejemplo, de Apple).

Extraer pistas de audio o eliminar el audio/video

  • Extraer solo audio sin recodificar:
    ffmpeg -i original.avi -vn -acodec copy solo_audio.mp3
  • Extraer audio convertido a otro formato (por ejemplo, de un vídeo):
    ffmpeg -i video.mp4 -q:a 0 -map a solo_audio.mp3
  • Eliminar todas las pistas de audio de un vídeo:
    ffmpeg -i original.avi -map 0 -map -0:a -c copy sin_audio.avi
  • Eliminar todos los streams de audio excepto algunos concretos:
    ffmpeg -i original.avi -map 0 -map -0:a:3 -map -0:a:6 -c copy con_dos_streams.avi
  • Extraer solo una pista de audio específica:
    ffmpeg -i original.avi -map 0:a:2 -c copy solo_pista2.avi

Extraer imágenes o crear vídeos a partir de imágenes

  • Extraer todos los fotogramas como imágenes:
    ffmpeg -i video.mp4 imagen%d.jpg
  • Extraer un frame cada segundo:
    ffmpeg -i video.mp4 -vf fps=1 imagen%d.jpg
  • Extraer solo los keyframes:
    ffmpeg -i video.avi -vf "select=eq(pict_type\,I)" -vsync vfr imagen%d.jpg
  • Crear un vídeo a partir de una secuencia de imágenes:
    ffmpeg -i imagen%d.jpg video.avi
  • Crear un vídeo con una framerate personalizada:
    ffmpeg -framerate 1 -i img%03d.png -r 25 -pix_fmt yuv420p salida.mp4

Convertir vídeo a GIF animado

FFmpeg te permite transformar un fragmento de vídeo en un GIF animado, útil para memes y redes:

  Cómo quitar TalkBack en Huawei paso a paso: guía completa y fácil

ffmpeg -i original.mp4 -vf "scale=320:-1" animado.gif

Para mayor calidad, primero extrae los frames y usa una herramienta como gifski:

ffmpeg -i original.mp4 frame%04d.png
gifski -o salida.gif frame*.png

Transformar entre resoluciones 4K, FullHD, HD…

  • De 4K a FullHD (cambiando contenedor):
    ffmpeg -i 4k.mkv -vf scale=1920:1080 -q:a 0 -q:v 0 1080p.avi
  • De FullHD a HD:
    ffmpeg -i fullhd.mkv -vf scale=1280:720 -b:v 2000k hd.mp4
  • De FullHD a 4K:
    ffmpeg -i 1080p.mkv -vf scale=3840:-1 4k.mkv

Edición de fragmentos: cortar, unir, recortar y combinar archivos

Cortar un fragmento de vídeo o audio

Para extraer un trozo concreto de un archivo:

ffmpeg -ss 00:00:30 -t 00:00:15 -i original.mp4 -c copy fragmento.mp4

Esto corta desde el segundo 30, con una duración de 15 segundos. Si quieres definir el final en vez de la duración, usa -to:

ffmpeg -ss 00:00:35 -to 00:01:05 -i original.mp4 -c copy fragmento.mp4

También puedes cortar desde el principio hasta un punto:

ffmpeg -t 00:01:36 -i original.mp4 -c copy recortado.mp4

Unir múltiples vídeos en uno solo

El método más fiable es a través de listas de archivos y el filtro concat: más sobre unión de archivos con FFmpeg

  1. Crea un archivo de texto (por ejemplo, lista.txt) con los nombres de los vídeos:
file 'parte1.mp4'
file 'parte2.mp4'
  1. Ejecuta:

ffmpeg -f concat -safe 0 -i lista.txt -c copy resultado.mp4

Este método es rápido y sin recomprimir, pero los vídeos deben tener codecs idénticos.

Combinar audio y vídeo de diferentes archivos

Puedes fusionar un archivo de audio con uno de vídeo:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental final.mp4

Para sustituir la pista de audio de un vídeo:

ffmpeg -i video.mp4 -i nuevo_audio.mp3 -map 0:v -map 1:a -c copy video_con_nuevo_audio.mp4

Automatización: conversión por lotes y scripting

Uno de los puntos fuertes de FFmpeg es automatizar procesos mediante scripts de bash. Puedes cambiar el formato de cientos de archivos con unas pocas líneas:


IFS=$'\n'
for i in *.webm; do ffmpeg -i "$i" "${i/%.webm/.mp3}"; done; unset IFS

Con bucles similares puedes convertir .flv a .ogg, o cualquier otra combinación. Recuerda que en nombres con espacios, el uso de IFS es fundamental.

Corrección de problemas y compatibilidad

Reparar archivos problemáticos

Algunos vídeos pueden funcionar mal en dispositivos como Smart TVs. Soluciona generando en FFmpeg una copia sin recodificar:

ffmpeg -i video_orig.avi -c:v copy -c:a copy reparado.avi

Si hay problemas con la resolución, puedes forzar -vf "setdar=16:9,setsar=1:1" para establecer la relación de aspecto adecuada. Más información sobre compatibilidad con diferentes formatos y dispositivos está en herramientas para convertir discos virtuales.

Optimizar para compatibilidad máxima

Si necesitas que un archivo MKV funcione en casi todos los televisores, usa:

ffmpeg -i original.mkv -c:a libmp3lame -pix_fmt yuv420p compatible.mkv

En ocasiones, los codecs de sonido pueden dar problemas, así que elige MP3 o AAC para máxima compatibilidad.

Otras tareas y operaciones avanzadas

Extraer y agregar subtítulos

  • Convertir subtítulos de .vtt a .ass:
    ffmpeg -i subtitulos.vtt salida.ass
  • Agregar subtítulos a un vídeo:
    ffmpeg -i video.mp4 -i subtitulos.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast salida.mkv

Eliminar subtítulos y otros streams

ffmpeg -i entrada.mkv -map 0:v -map 0:a -c copy solo_video_audio.mkv

Agregar marcas de agua o logos

Puedes añadir una imagen (PNG con transparencia, por ejemplo) en cualquier esquina:

  The way to Repair Corrupt Consumer Profile In Home windows 10

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

Para colocar el logo en la esquina inferior derecha:

ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" salida.mp4

Ajustar volumen o limpiar audio

  • Aumentar volumen multiplicando x3.5:
    ffmpeg -i entrada.mkv -filter:a "volume=3.5" -c:v copy -acodec mp3 salida.mkv
  • Eliminar ruido de fondo (requiere sox):
    Extrae primero el fragmento de ruido
    ffmpeg -i entrada.mp3 -ss 00:00:00 -t 1 ruido.mp3
    Después:
    sox entrada.mp3 limpio.mp3 noisered noise.prof 0.21

Sincronizar audio y vídeo

Si detectas desincronización, retrasa el audio o el vídeo con -itsoffset o -af adelay:

ffmpeg -itsoffset 1.7 -i video.mkv -i video.mkv -map 0:0 -map 1:1 -acodec copy -vcodec copy sincronizado.mkv

En casos más sencillos para retrasar el audio 1.7 segundos:

ffmpeg -i video1.webm -af "adelay=1700|1700" -vcodec copy video_sincronizado.webm

Concatenar vídeos con diferentes codecs o formatos

Cuando los archivos no tienen igual códec y parámetros, lo ideal es recodificarlos antes o usar concat con transcodificación. También puedes consultar .

ffmpeg -f concat -i lista.txt -c:v libx264 -c:a aac -strict experimental salida.mp4

Rotar vídeos

Para girar un vídeo 90 grados a la derecha:

ffmpeg -i original.mov -vf "transpose=1" -c:a copy rotado.mov

Para 180 grados:

ffmpeg -i original.mov -vf "transpose=2,transpose=2" -c:a copy rotado.mov

Hacer loop (repetir) un vídeo

ffmpeg -stream_loop 2 -i original.mp4 -c copy loop.mp4

El número indica las repeticiones; usa -1 para infinito.

Estabilizar vídeos temblorosos

Para vídeos inestables:

  1. Detecta el movimiento:
    ffmpeg -i tembloroso.avi -vf vidstabdetect=stepsize=6:shakiness=3:accuracy=9:result=vectors.trf -f null -
  2. Corrige el vídeo:
    ffmpeg -i tembloroso.avi -vf vidstabtransform=input=vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 -vcodec libx264 -preset slow -tune film -crf 18 -acodec copy corregido.avi

Velocidad de reproducción

Para acelerar o ralentizar un vídeo:

  • Acelerar x2:
    ffmpeg -i video.mpg -vf "setpts=0.5*PTS" rapido.mpg
  • Ralentizar x4:
    ffmpeg -i video.mpg -vf "setpts=4.0*PTS" lento.mpg

Grabar vídeo del escritorio o emisión en streaming

  • Grabar escritorio (FullHD) y audio:
    ffmpeg -f alsa -i default -f x11grab -s 1920x1080 -r 30 -i :0.0 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts tcp://IP_DESTINO:4444
  • Grabar desde cámara web:
    ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast salida.webm

Automatizar edición en masa y tareas repetitivas

Combina FFmpeg en scripts con bash, python o cualquier lenguaje que maneje procesos para convertir, renombrar y procesar cientos de archivos a la vez. Ejemplo de corte automático usando un archivo con lista de tareas y un script que recorra todo el directorio y ejecute los comandos adecuados para cada archivo según necesidades.

Cambiar múltiples archivos de formato automáticamente

Utiliza bucles o scripts personalizados. Por ejemplo, para convertir todos los .wav de un CD en MP3 y guardarlos en una carpeta:


cd /ruta/al/cd
mkdir ~/MP3s
IFS=$'\n'
for i in *.wav; do ffmpeg -i "$i" ~/MP3s/"${i/%.wav/.mp3}"; done; unset IFS

Caso avanzado: convertir contenidos de DVD, BluRay o ISOs

  1. Monta la imagen ISO en tu sistema.
  2. Identifica los fragmentos de vídeo (normalmente .VOB para DVD, .m2ts para BluRay).
  3. Concatena los archivos grandes para obtener la película completa:
    cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > pelicula.vob
  4. Comprueba los streams:
    ffmpeg -probesize 4G -analyzeduration 4G -i pelicula.vob
  5. Selecciona solo los streams necesarios (vídeo y audio en castellano, por ejemplo):
    ffmpeg -i pelicula.vob -q:a 0 -q:v 0 -map 0:1 -map 0:2 pelicula_es.mkv

Todo el proceso es adaptable a necesidades, y puedes incluir subtítulos o pistas alternativas mediante los parámetros adecuados de -map.

Deja un comentario