Cortando vídeo com ffmpeg
Você pode cortar vídeos com precisão com o FFmpeg. Desde a versão 2.5 é muito fácil. Isso, por exemplo, cortaria 10 segundos, começando em 0 minutos, 3 segundos e 123 milissegundos.
ffmpeg -ss 00:00:03.123 -i input.mp4 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4
A posição e a hora podem estar em segundos ou em hh:mm:ss[.xxx]
form.
Observe que, nesses exemplos, o vídeo e o áudio serão recodificados usando x264 e < href="https://trac.ffmpeg.org/wiki/Encode/AAC"> codificadores aac .
Você também pode usar -to
em vez de -t
para especificar o ponto final em vez da duração. Nesse caso, no entanto, -to
é equivalente a -t
, pois colocando o -ss
na frente de -i
, o ffmpeg primeiro procurará esse ponto e, em seguida, iniciará a saída.
Veja também a entrada na wiki Buscando .
Corte preciso para as versões ffmpeg
anteriores
Se você tem uma versão mais antiga do ffmpeg, então, para uma busca precisa, é necessário colocar o -ss
após -i
, o que torna o processo de codificação um pouco mais lento, porque o vídeo inteiro precisa ser decodificado primeiro:
ffmpeg -i input.mp4 -ss 00:00:03.123 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4
Aqui, -to
e -t
se comportam de maneira diferente. -t 10
criaria um clipe longo de dez segundos, enquanto -to 10
criaria um clipe com sete segundos de duração.
Copiar fluxo vs. recodificar
Você pode tentar copiar o fluxo de áudio com -c:a copy
também. Copiar o fluxo de vídeo pode ser feito com -c:v copy
. Pode, no entanto, não funcionar corretamente porque você só pode cortar quadros-chave de vídeo, que não ocorrem com tanta frequência. Em qualquer caso, pode levar a um corte impreciso se você copiar o fluxo de vídeo.