Tutorial de FFmpeg

FFmpeg es una suite de procesadores audiovisuales libres.

La suite te permitira convertir y operar entre multiples formatos de audio y sonido digital desde la terminal de tu sistema.

Se trata de un programa es muy completo, pero consta de muchos sufijos.

Algunos de los mas utilizados son los siguientes procedimientos:

Video

Extraer un recorte del video

Recortar un video desde la marca de tiempo inicial mm:ss hasta la marca de tiempo final mmf:ssf:

ffmpeg -ss mm:ss -to mmf:ssf -i video.mp4 -codec copy recorte.mp4

Por ejemplo, para extraer desde el minuto 1:02 al minuto 4:32 se usa:

ffmpeg -ss 01:00 -i "video.mp4" -to 04:32 -c copy recorte.mp4
Remuxear el video del contenedor matroska MKV a MP4 sin recodificar los streams de audio ni video
ffmpeg -i matroska.mkv -codec copy video.mp4
Convertir video AVI a MP4

Para convertir un video AVI a MP4 con codec de audio AAC a 128 kbps y codec de video h264 CRF 23

ffmpeg -i video.avi -codec:audio aac -b:audio 128k -codec:video libx264 -crf 23 video.mp4
Convertir video MP4 a VP9

Para mayor calidad, se recomienda utilizar un valor CRF entre 15-35.

ffmpeg -i video.mp4 -codec:video libvpx-vp9 -crf 30 -b:video 0 -codec:audio libopus video.vp9
Extraer un fotograma de un video desde la marca de tiempo mm:ss y guardarla como una imagen de resolucion 128x128 pixels
ffmpeg -ss mm:ss -i video.mp4 -frames 1 -s 128x128 -f image2 fotograma.png
Convertir fotogramas de un fichero de video o GIF en imagenes numeradas
ffmpeg -i video.mp4 -vn fotograma_%d.png
ffmpeg -i animacion.gif -vn fotograma_%d.png
Combinar fotogramas numerados en un video o GIG

Para combinar imagenes numeradas (cuadro_1.jpg, cuadro_2.jpg, etc) en un archivo de video MPG o GIF:

ffmpeg -i cuadro%d.jpg -f image2 video.mpg
ffmpeg -i cuadro%d.jpg -f image2 animacion.gif
Extraer un subtitulo.srt desde un contenedor de video matroska.mkv
ffmpeg -i matroska.mkv -c copy -map 0:s:0 subtitulo.srt

Audio

Ogg

Ogg es un formato libre de sonido digital con compresion por perdida.

Convertir de .wav a .ogg

Convierte todos los ficheros .wav en un directorio y sus subdirectorios, y convertirlos a .ogg:

find . -type f -iname "*.wav" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -y "${FILE%.wav}.ogg";' _ '{}' \;
Convertir de .webm a .ogg

Extraer el audio de todos los ficheros .webm en un directorio y sus subdirectorios, y convertirlos a .ogg:

find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -y "${FILE%.webm}.ogg";' _ '{}' \;
Convertir .opus a .ogg

Convertir todos los ficheros de audio .opus en un directorio y sus subdirectorios, en .ogg:

find . -type f -iname "*.opus" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -y "${FILE%.opus}.ogg";' _ '{}'

MP3

MP3 es un formato de sonido por perdida muy extendido, pero es privativo.

Extraer el sonido de un video y guardarlo como MP3
ffmpeg -i video.mp4 -vn sonido.mp3
Convertir APE a MP3

Esto convertira fichero.ape a un archivo MP3 con una resolucion de 320 Kbps (calidad alta para un MP3).

ffmpeg -i 'fichero.ape' -acodec libmp3lame -b 320k -id3v2_version 3 fichero.mp3

FLAC

El codec FLAC de FFmpeg soporta resoluciones de muestreo de 16 y 24 bits (la ultima ampliada a 32 bits).

Conviertir WAV a FLAC

Para convertir un fichero de audio WAV de calidad CD (16-bit, 44.1 kHz, estereo) a FLAC:

ffmpeg -i fichero.wav -af aformat=s16:44100 fichero.flac
Convertir WAV de 24 bits

COmo los WAV de 24 bits se extrapolan a 32 bits, convendra utilizar un filtro intermedio tipo peine. Por ejemplo, esto codifica a 24 bits a 176 kHz (almacenandolo en 32 bits):

ffmpeg -i fichero.wav -af aformat=s32:176000 fichero.flac