Arquivo para outubro \13\UTC 2013

Recortando vídeo com FFmpeg

O FFmpeg é um software bastante completo para trabalhar com vídeo na linha de comando. Aqui coloco um breve tutorial para recortar um vídeo e remover trechos que não são desejados.

Por exemplo, em um vídeo de 30 minutos, eu quero os trechos: 0 a 10 minutos, 11 a 16 minutos e 18 minutos até o fim. Primeiro, é preciso criar os 3 segmentos, aqui chamados de “part%02d.mp4”.

ffmpeg -i video.mp4 -t 00:10:00 -c copy part01.mp4
ffmpeg -ss 00:11:00 -i video.mp4 -t 00:05:00 -c copy part02.mp4
ffmpeg -ss 00:18:00 -i video.mp4 -c copy part03.mp4

Comandos utilizados:
-i ARQUIVO_DE_INPUT
-ss TEMPO_DE_SEEK
-t DURAÇÃO_DO_SEGMENTO

O uso de -c copy faz com que não seja realizada transcodificação do vídeo, mas apenas cópia de arquivo. Entretanto, isso faz com que os cortes não sejam precisos e determinados pelos keyframes do vídeo, ficando possivelmente maiores que o pedido. Se for preciso fazer cortes com precisão, é preciso recodificar o segmento (e mover o comando “-ss” para depois do arquivo de input).

Para juntar os pedaços, crie um arquivo de texto, por exemplo “lista.txt” com o seguinte conteúdo:

file 'part01.mp4'
file 'part02.mp4'
file 'part03.mp4'

Agora é só executar:

ffmpeg -f concat -i lista.txt -c copy video_final.mp4

Funciona com qualquer formato/codec suportado pelo FFmpeg. Se o seu programa não suportar algum dos comandos, provavelmente é uma versão antiga. Utilize 1.0 ou superior.

Anúncios