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.