Você pode fazer isso usando ffmpeg
. Essa abordagem pressupõe que você saiba a duração do vídeo e deseja dividi-lo manualmente em um ponto de tempo específico. Você pode usar ffmpeg
para obter a duração assim.
Exemplo
$ ffmpeg -i me.avi |& grep Dura
Duration: 00:01:43.27, start: 0.000000, bitrate: 16330 kb/s
Portanto, digamos que queremos dividi-lo em 1: 00.00 e 43.27, poderíamos fazer os seguintes 2 comandos para fazer isso:
# e.g. from start to 1 min.
$ ./ffmpeg -i me.avi -vcodec copy -acodec copy -t 00:01:00 output1.avi
# e.g. from 1 min. to end
$ ./ffmpeg -i me.avi -vcodec copy -acodec copy -ss 00:01:00 output2.avi
Depois ficamos com os seguintes resultados:
$ ls -l me.avi output*
-rw-rw-r-- 1 saml saml 210816000 Nov 27 21:36 me.avi
-rw-rw-r-- 1 saml saml 120361978 Nov 27 21:39 output1.avi
-rw-rw-r-- 1 saml saml 90571034 Nov 27 21:40 output2.avi
E as durações são agora:
$ ./ffmpeg -i output1.avi |& grep Dura
Duration: 00:01:00.00, start: 0.000000, bitrate: 16048 kb/s
$ ./ffmpeg -i output2.avi |& grep Dura
Duration: 00:00:43.27, start: 0.000000, bitrate: 16743 kb/s