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