Dividir vídeo em vários episódios com ffmpeg

4

Eu preciso cortar um vídeo em várias partes com ffmpeg .

Quando eu corto apenas um episódio

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4

ou

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4

meu vídeo é cortado instantaneamente.

Mas quando eu faço marcações em cadeia onde gostaria de cortar

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4 -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4

ainda funciona, mas demora consideravelmente mais tempo (cerca de 10 segundos) e vejo o mesmo resultado de quando converto algo.

Há algo errado com meu ffmpeg-command ou é melhor executar ffmpeg-commands um por um?

    
por Alex Smolov 12.06.2013 / 02:21

1 resposta

4

O ffmpeg provavelmente está recodificando out2.mp4 porque você não incluiu suas opções de cópia para sua segunda saída:

ffmpeg -i 001.mp4 -codec copy -t 00:00:25.5 out1.mp4 -codec copy -ss 00:00:25.5 -t 00:00:33.75 out2.mp4
  • -strict -2 não é necessário neste caso. Se você estiver recodificando e nenhum outro codificador AAC estiver disponível, o ffmpeg usará -codec:a aac , que exige -strict -2 (ou o alias -strict experimental que eu prefiro).

  • -codec copy copiará todos os fluxos de cada tipo, se presentes. Para MP4, isso geralmente significa apenas áudio e vídeo, mas outros contêineres podem ter legendas ou até mesmo um fluxo de dados.

  • Você não precisa usar -ss se o valor for 0.

por 12.06.2013 / 05:55

Tags