Com o ffmpeg recente (faça o download de uma versão estática aqui ):
ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a
Isso usa o muxer do segmento e copia os fluxos de bits. Se o seu arquivo tiver fluxos de áudio e vídeo, você poderá desabilitar o fluxo de vídeo com -vn
.
Aqui está um one-liner, você só precisa de Ruby e FFmpeg instalado:
ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'
Basta executar isso na mesma pasta em que in.m4a
é. Ele copia o fluxo de bits de áudio, portanto, a execução provavelmente levará menos de alguns segundos.
Para explicar:
- 4800 segundos é o tamanho do arquivo de áudio (80 minutos × 60 segundos), então nossa última divisão é em 4500 (4800 - 300 segundos).
- Vamos de 0 a 4500 e dividimos a cada 300 segundos (5min × 60s).
- O FFmpeg será iniciado no horário especificado por
-ss
- E ele será copiado pelo tempo especificado por
-t
- Ele gravará vários arquivos de saída chamados
out-<x>.mp4
, em que<x>
é a hora de início em segundos.