Skip to main content

Corte, Join e Loop com FFmpeg

Cortar um vídeo, juntar sequências, criar um loop perfeito, tudo sem abrir o Premiere.

Cortando vídeo

Terminal window
# Do segundo 10 ao 40 (sem re-encodar)
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:40 -c copy output.mp4
# A partir de 1min30s por 20 segundos
ffmpeg -i input.mp4 -ss 00:01:30 -t 20 -c copy output.mp4
# Duração de 30 segundos a partir de 1 minuto:
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy output.mp4

-c copy = sem re-encodar (rápido, mas corte pode não ser frame-exato). Para corte frame-exato, remova -c copy.

Busca rápida (menos precisa mas mais eficiente):

Terminal window
ffmpeg -ss 00:01:30 -i input.mp4 -t 20 -c copy output.mp4

Juntando vídeos

Terminal window
# Crie arquivo de lista
echo "file 'video1.mp4'" > lista.txt
echo "file 'video2.mp4'" >> lista.txt
echo "file 'video3.mp4'" >> lista.txt
# Concatena (mesmo codec, sem re-encode)
ffmpeg -f concat -safe 0 -i lista.txt -c copy output.mp4

Para formatos diferentes (re-encode necessário):

Terminal window
ffmpeg -i video1.mp4 -i video2.mov \
-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4

Criando loops

Terminal window
# Loop 3 vezes
ffmpeg -stream_loop 3 -i input.mp4 -c copy looped.mp4
# Loop por 60 segundos
ffmpeg -stream_loop -1 -i input.mp4 -c copy -t 60 loop_60s.mp4
# Loop 5 vezes (stream_loop conta as repetições, não o total)
ffmpeg -stream_loop 4 -i input.mp4 -c copy output.mp4

Revertendo vídeo

Terminal window
ffmpeg -i input.mp4 -vf reverse -af areverse reversed.mp4

Extraindo frames

Terminal window
# Todos os frames como PNG
ffmpeg -i input.mp4 frame_%04d.png
# 1 frame por segundo
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.jpg
# Frame específico (no segundo 5)
ffmpeg -ss 00:00:05 -i input.mp4 -frames:v 1 frame_5s.png

Removendo áudio

Terminal window
# Remove áudio completamente
ffmpeg -i input.mp4 -an output_mudo.mp4
# Extrai áudio como WAV
ffmpeg -i input.mp4 -vn -c:a pcm_s16le audio.wav

Adicionando timecode para revisão

Terminal window
ffmpeg -i render.mov \
-vf "drawtext=text='%{pts\\:hms}':fontsize=24:fontcolor=white:x=20:y=20:box=1:boxcolor=black@0.5" \
-c:v libx264 -crf 20 \
render_com_timecode.mp4