
Tenho vários arquivos de áudio longos (80 minutos cada; m4a) e quero que eles sejam divididos em pedaços de 5 ou 10 minutos.
Vejo muitas perguntas sobre como dividir um arquivo de áudio em pausas prolongadas, tons, etc., mas não consigo encontrar nenhuma sobre esta operação simples. Alguém sabe uma maneira simples de fazer isso?
Claro, algo automático e linha de comando é aceitável – até mesmo preferido.
Desde já, obrigado!
Responder1
Com ffmpeg recente (baixe uma compilação estáticadaqui):
ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a
Isso usa o muxer de segmento e copia os fluxos de bits. Se o seu arquivo tiver fluxos de áudio e vídeo, você poderá desativar o fluxo de vídeo com -vn
.
Aqui está uma frase, você só precisaRubieFFmpeginstalado:
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 onde in.m4a
está. Ele copiará o fluxo de bits do áudio, portanto, a execução provavelmente levará menos de alguns segundos.
Explicar:
- 4.800 segundos é a duração do arquivo de áudio (80 minutos x 60 segundos), então nossa última divisão é 4.500 (4.800 - 300 segundos).
- Vamos de 0 a 4.500 e dividimos a cada 300 segundos (5min × 60s).
- O FFmpeg iniciará 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
, onde<x>
é o horário de início em segundos.
Responder2
Eu estava procurando uma solução para isso sozinho. A maneira mais fácil que encontrei de fazer isso é atravésMP4Box:
mp4box -split 300 infile.m4a
Onde “300” é o tempo em segundos. MP4Box gravará automaticamente arquivos de saída numerados.
(Você não precisa instalar todo o grande aplicativo GPAC. Estes são os arquivos que você pode extrair do arquivo para que ele funcione: js.dll; libeay32.dll; libgpac.dll; MP4Box.exe; ssleay32.dll)
Responder3
Já faz um tempo que essa pergunta foi feita, mas depois de brincar com Ruby e ffmpeg decidi que deveria haver uma maneira mais fácil de fazer isso no Windows, e descobri que existe.
Baixe e instale o Audacity
Crie um arquivo de texto em algum lugar onde você possa encontrá-lo e cole a seguinte string nele: (intervalos de 300 segundos, ou seja, 5 minutos, 10 minutos seriam 600 intervalos, etc...)
0 300
300 600
600 900
900 1200
1200 1500
1500 1800
1800 2100
2100 2400
2400 2700
2700 3000
3000 3300
3300 3600
3600 3900
3900 4200
4200 4500
4500 4800
4800 5100
5100 5400
5400 5700
5700 6000
6000 6300
6300 6600
6600 6900
6900 7200
7200 7500
7500 7800
7800 8100
8100 8400
8400 8700
8700 9000
9000 9300
9300 9600
9600 9900
9900 10200
10200 10500
10500 10800
10800 11100
11100 11400
11400 11700
11700 12000
12000 12300
12300 12600
12600 12900
12900 13200
13200 13500
13500 13800
13800 14100
14100 14400
14400 14700
14700 15000
Apenas certifique-se de que o número de intervalos seja maior que a duração total dos seus arquivos de áudio. Criei este que dura mais de três horas, tempo suficiente para minhas necessidades, acrescente mais para atender às suas necessidades.
Importe o arquivo de áudio para o Audacity e faça o balanceamento e quaisquer outras edições que desejar, depois clique em arquivo>rótulos>importar rótulos
Selecione seu arquivo de texto, selecione a faixa de rótulo e a faixa de áudio ao mesmo tempo e clique em arquivo>Exportar Múltiplo.
Altere o tipo de arquivo para o qual deseja exportar, ajuste as configurações e selecione a pasta de destino.
Eu sempre mudo o padrão de numeração para Numeração após prefixo do nome do arquivo e digito o nome do arquivo que desejo na caixa e o programa irá adicionar os números, clico em Exportar e viola!
Responder4
MP4Box funciona perfeitamente. É sempre legal quando você pode fazer as coisas no terminal. Maneira mais rápida.
Esta é a página de download: https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/ Você instala o programa e pode trabalhar no terminal, nada mais é necessário.
Testado, o comando dfkt disse que funciona perfeitamente: mp4box -split 59 infile.m4a
No meu caso, eu queria dividir em m4a <1min, para facilitar o uso da fala para texto do Google.
O Audacity pode funcionar bem, mas no meu caso eu sempre prefiro trabalhar com comandos do que com UI gráfica. Melhor solução para mp4box. Não estou dando informações novas, o crédito é para dfkt (obrigado cara). Estou apenas validando que é uma ótima solução.