Eu usaria o segmento muxer de ffmpeg
(role um pouco para baixo link para alguns exemplos). Basicamente:
ffmpeg -i input.mp4 -c copy -f segment -segment_times 1500 output%02d.mp4
Isso produzirá dois arquivos, 'output01.mp4' e 'output02.mp4'. Se você usasse output%03d.mp4
, você obteria 'output001.mp4' e 'output002.mp4'.
-segment_times
chama uma lista separada por vírgula de pontos de divisão, medida em segundos. Como você só quer dividir uma vez, aos 25 minutos, basta usar 1500 (= 25 * 60). Note que -segment_time
(sem o 's') é uma opção completamente separada - você usaria isso se quisesse dividir o arquivo a cada cinco segundos (por exemplo), sem colocar uma lista grande de cada tempo específico. / p>
Você pode achar que precisa usar -reset_timestamps 1
para os arquivos serem reproduzidos corretamente:
ffmpeg -i input.mp4 -c copy -f segment -segment_times 1500 -reset_timestamps 1 output%02d.mp4
Existem muito mais opções na página de documentação. Isso deve ser bem rápido e sem perdas (assim você obterá vídeo idêntico sem artefatos de vídeo extras). No entanto, ele não será 100% preciso, pois o ffmpeg precisa ser dividido em um frame-chave , que não pode ser garantido sem recodificação.
Se precisar de divisão precisa, a documentação recomenda recodificar e usar as opções -force_key_frames
e -segment_time_delta
para garantir que haverá I-frames nos horários que o multiplicador de segmento tentará dividir (consulte também o libx264 e guias de codificação AAC no ffmpeg wiki ):
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset veryfast -c:a libfdk_aac -vbr 3 \
-force_key_frames 1500 -f segment -segment_times 1500 -segment_time_delta 0.05 output%02d.mp4
A versão do ffmpeg na maioria dos repositórios do Linux será bastante antiga, e no caso do Debian e do Ubuntu et al a situação é ainda pior: eles não fornecem o ffmpeg, mas sim o fork, avconv, da equipe libav (veja também a resposta de LordNeckbeard aqui ). O AVconv é uma ferramenta perfeita por si só, mas não posso garantir que a sintaxe do ffmpeg funcionará com ele 100% do tempo, especialmente com coisas 'avançadas' como essa.
Eu recomendaria pegar uma versão estática da página de downloads do ffmpeg ou compilando você mesmo . O principal benefício de compilá-lo é que você pode obter acesso ao libfdk_aac
, o melhor codificador de áudio AAC que o ffmpeg pode usar - que não pode ser legalmente distribuído em um binário ffmpeg compilado devido a conflitos de licença (o fdk_aac usa uma licença copyleft personalizada , que não é totalmente compatível com a GPL do ffmpeg).