DevTools

Cheatsheet FFmpeg

Manipulação de áudio e vídeo por linha de comandos

Voltar às linguagens
FFmpeg
25 cards encontrados
Categorias:
Versões:

Conversão Básica


4 cards
Converter formato
ffmpeg -i input.avi output.mp4
ffmpeg -i input.mov output.webm
ffmpeg -i input.mkv output.mp4

Conversão simples de container.

Escolher 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/áudio.

Qualidade e bitrate
ffmpeg -i input.mp4 -crf 23 output.mp4
# CRF: 18 (ótimo) a 28 (aceitável)

ffmpeg -i input.mp4 -b:v 2M output.mp4
ffmpeg -i input.mp4 -b:a 192k output.mp4

Controlar qualidade.

Info do ficheiro
ffmpeg -i input.mp4
ffprobe -v quiet -print_format json \
  -show_format -show_streams input.mp4

# Ver duração, codecs, resolução

Inspecionar media.

Vídeo


5 cards
Cortar (trim)
ffmpeg -i input.mp4 -ss 00:01:00 \
  -to 00:02:30 -c copy output.mp4

# -ss = início, -to = fim
# -c copy = sem re-encodar (rápido)

Extrair trecho do vídeo.

Remover áudio / vídeo
ffmpeg -i input.mp4 -an output.mp4
# -an = sem áudio

ffmpeg -i input.mp4 -vn output.mp3
# -vn = sem vídeo (só áudio)

Extrair streams individuais.

Redimensionar
ffmpeg -i input.mp4 -vf scale=1280:720 \
  output.mp4

ffmpeg -i input.mp4 -vf scale=-1:720 \
  output.mp4  # manter aspect ratio

Mudar resolução.

Velocidade
# 2x mais 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 velocidade.

Rotação e 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

Rodar e recortar.

Áudio


4 cards
Converter áudio
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

Conversão de formatos.

Extrair áudio de vídeo
ffmpeg -i video.mp4 -vn -acodec copy \
  audio.aac

ffmpeg -i video.mp4 -vn -b:a 192k \
  audio.mp3

Obter faixa de áudio.

Ajustar volume
ffmpeg -i input.mp3 -af "volume=1.5" \
  output.mp3

ffmpeg -i input.mp3 -af "volume=-3dB" \
  output.mp3

Aumentar/diminuir volume.

Cortar áudio
ffmpeg -i input.mp3 -ss 00:00:30 \
  -to 00:01:00 -c copy output.mp3

ffmpeg -i input.mp3 -t 30 output.mp3
# Primeiros 30 segundos

Extrair trecho de áudio.

Imagens e Frames


4 cards
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 imagem.

Vídeo a partir de imagens
ffmpeg -framerate 30 -i img_%03d.png \
  -c:v libx264 -pix_fmt yuv420p \
  output.mp4

# Imagens: img_001.png, img_002.png...

Sequência → vídeo.

GIF animado
ffmpeg -i video.mp4 -vf \
  "fps=10,scale=480:-1:flags=lanczos" \
  output.gif

# Com palette (melhor qualidade):
ffmpeg -i video.mp4 -vf \
  "fps=10,scale=480:-1,split[s0][s1];
  [s0]palettegen[p];[s1][p]paletteuse" \
  output.gif

Criar GIFs otimizados.

Redimensionar imagem
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 e padding.

Streaming e_muxing


4 cards
Combinar vídeos
# lista.txt:
# file 'parte1.mp4'
# file 'parte2.mp4'

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

Juntar múltiplos vídeos.

Adicionar áudio a vídeo
ffmpeg -i video.mp4 -i musica.mp3 \
  -c:v copy -c:a aac -shortest \
  output.mp4

# -shortest = terminar com o mais curto

Muxar vídeo + áudio.

Watermark / overlay
ffmpeg -i video.mp4 -i logo.png \
  -filter_complex "overlay=10:10" \
  output.mp4

# overlay=W-w-10:H-h-10 (canto inf. dir.)

Sobrepor imagem.

HLS streaming
ffmpeg -i input.mp4 -c:v libx264 \
  -c:a aac -hls_time 10 \
  -hls_list_size 0 -f hls output.m3u8

# Gera .m3u8 + segmentos .ts

Preparar para streaming HLS.

Avançado


4 cards
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  # preto e branco

ffmpeg -i input.mp4 -vf \
  "drawtext=text='Olá':fontsize=48" out.mp4

Filtros de cor e 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")
}

Processar múltiplos ficheiros.

Presets e 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

Velocidade e aceleração GPU.