Cheatsheet FFmpeg
Manipulação de áudio e vídeo por linha de comandos
FFmpeg
25
tarjetas encontradas
Categorías:
Versiones:
Conversão Básica
Convertir formato
ffmpeg -i input.avi output.mp4
ffmpeg -i input.mov output.webm
ffmpeg -i input.mkv output.mp4
Conversión simple de contenedor.
Elegir codecs
ffmpeg -i input.mp4 \
-c:v libx264 -c:a aac output.mp4
ffmpeg -i input.mp4 \
-c:v libvpx-vp9 -c:a libopus out.webm
Especificar codecs de vídeo/audio.
Calidad y bitrate
ffmpeg -i input.mp4 -crf 23 output.mp4
# CRF: 18 (óptimo) a 28 (aceptable)
ffmpeg -i input.mp4 -b:v 2M output.mp4
ffmpeg -i input.mp4 -b:a 192k output.mp4
Controlar calidad.
Info del archivo
ffmpeg -i input.mp4
ffprobe -v quiet -print_format json \
-show_format -show_streams input.mp4
# Ver duración, codecs, resolución
Inspeccionar media.
Vídeo
Cortar (trim)
ffmpeg -i input.mp4 -ss 00:01:00 \
-to 00:02:30 -c copy output.mp4
# -ss = inicio, -to = fin
# -c copy = sin re-encodear (rápido)
Extraer fragmento del vídeo.
Eliminar audio / vídeo
ffmpeg -i input.mp4 -an output.mp4
# -an = sin audio
ffmpeg -i input.mp4 -vn output.mp3
# -vn = sin vídeo (solo audio)
Extraer streams individuales.
Redimensionar
ffmpeg -i input.mp4 -vf scale=1280:720 \
output.mp4
ffmpeg -i input.mp4 -vf scale=-1:720 \
output.mp4 # mantener aspect ratio
Cambiar resolución.
Velocidad
# 2x más rápido:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" \
-af "atempo=2.0" output.mp4
# Cámara lenta (0.5x):
ffmpeg -i input.mp4 -vf "setpts=2*PTS" \
-af "atempo=0.5" output.mp4
Alterar velocidad.
Rotación y crop
ffmpeg -i input.mp4 \
-vf "transpose=1" output.mp4
# 0=90°CCW 1=90°CW 2=180°
ffmpeg -i input.mp4 \
-vf "crop=640:480:100:50" output.mp4
Rotar y recortar.
Áudio
Convertir audio
ffmpeg -i input.wav output.mp3
ffmpeg -i input.mp3 -b:a 320k out.mp3
ffmpeg -i input.flac output.aac
ffmpeg -i input.m4a output.ogg
Conversión de formatos.
Extraer audio de vídeo
ffmpeg -i video.mp4 -vn -acodec copy \
audio.aac
ffmpeg -i video.mp4 -vn -b:a 192k \
audio.mp3
Obtener pista de audio.
Ajustar volumen
ffmpeg -i input.mp3 -af "volume=1.5" \
output.mp3
ffmpeg -i input.mp3 -af "volume=-3dB" \
output.mp3
Aumentar/disminuir volumen.
Cortar audio
ffmpeg -i input.mp3 -ss 00:00:30 \
-to 00:01:00 -c copy output.mp3
ffmpeg -i input.mp3 -t 30 output.mp3
# Primeros 30 segundos
Extraer fragmento de audio.
Imagens e Frames
Thumbnail / frame
ffmpeg -i video.mp4 -ss 00:00:05 \
-vframes 1 thumb.jpg
ffmpeg -i video.mp4 -vf fps=1/60 \
thumb_%03d.jpg # 1 frame/min
Capturar frames como imagen.
Vídeo a partir de imágenes
ffmpeg -framerate 30 -i img_%03d.png \
-c:v libx264 -pix_fmt yuv420p \
output.mp4
# Imágenes: img_001.png, img_002.png...
Secuencia → vídeo.
GIF animado
ffmpeg -i video.mp4 -vf \
"fps=10,scale=480:-1:flags=lanczos" \
output.gif
# Con palette (mejor calidad):
ffmpeg -i video.mp4 -vf \
"fps=10,scale=480:-1,split[s0][s1];
[s0]palettegen[p];[s1][p]paletteuse" \
output.gif
Crear GIFs optimizados.
Redimensionar imagen
ffmpeg -i foto.png -vf scale=800:600 \
foto_small.png
ffmpeg -i foto.jpg -vf "pad=1920:1080:
(ow-iw)/2:(oh-ih)/2:black" out.jpg
Resize y padding.
Streaming e_muxing
Combinar vídeos
# lista.txt:
# file 'parte1.mp4'
# file 'parte2.mp4'
ffmpeg -f concat -safe 0 -i lista.txt \
-c copy output.mp4
Unir múltiples vídeos.
Añadir audio a vídeo
ffmpeg -i video.mp4 -i musica.mp3 \
-c:v copy -c:a aac -shortest \
output.mp4
# -shortest = terminar con el más corto
Muxear vídeo + audio.
Watermark / overlay
ffmpeg -i video.mp4 -i logo.png \
-filter_complex "overlay=10:10" \
output.mp4
# overlay=W-w-10:H-h-10 (esquina inf. der.)
Superponer imagen.
HLS streaming
ffmpeg -i input.mp4 -c:v libx264 \
-c:a aac -hls_time 10 \
-hls_list_size 0 -f hls output.m3u8
# Genera .m3u8 + segmentos .ts
Preparar para streaming HLS.
Avançado
Filtros de vídeo
ffmpeg -i input.mp4 -vf \
"eq=brightness=0.1:contrast=1.2" out.mp4
ffmpeg -i input.mp4 -vf \
"hue=s=0" output.mp4 # blanco y negro
ffmpeg -i input.mp4 -vf \
"drawtext=text='Hola':fontsize=48" out.mp4
Filtros de color y texto.
Picture-in-picture
ffmpeg -i main.mp4 -i pip.mp4 \
-filter_complex \
"[1:v]scale=320:-1[pip];
[0:v][pip]overlay=W-w-10:H-h-10" \
output.mp4
Vídeo dentro de vídeo.
Batch processing
# Bash:
for f in *.avi; do
ffmpeg -i "$f" "${f%.avi}.mp4"
done
# PowerShell:
Get-ChildItem *.avi | ForEach-Object {
ffmpeg -i $_.Name ($_.BaseName + ".mp4")
}
Procesar múltiples archivos.
Presets y hardware
ffmpeg -i input.mp4 -preset fast output.mp4
# Presets: ultrafast, fast, medium, slow
# GPU (NVIDIA):
ffmpeg -i input.mp4 -c:v h264_nvenc out.mp4
# GPU (Intel):
ffmpeg -i input.mp4 -c:v h264_qsv out.mp4
Velocidad y aceleración GPU.