Criando um arquivo em lote arrastando e soltando para dividir um MP3 usando o ffmpeg

1

Eu tenho uma pasta cheia de arquivos em lote FFMPEG que eu escrevi para fazer várias tarefas de conversão. Isso me permite arrastar e soltar vários arquivos e fazer uma conversão - por exemplo, descompactando arquivos MP3 para WAV, cortando arquivos XVID etc.

Agora quero escrever um que divide um MP3 em partes menores. Há um comando FFMPEG puro para isso

ffmpeg -f mp3 -i /path/to/file.mp3 -t 00:00:00 -ss 00:10:00 -y /path/to/save.mp3

No entanto, isso só extrai os primeiros 10 minutos. Para percorrer todo o MP3, eu teria que escrever declarações semelhantes para cada 10 minutos do comprimento do MP3. Existe uma maneira de tokenise isso em arquivos em lote?

    
por roryok 25.09.2013 / 16:06

2 respostas

1

Bem, há duas maneiras de fazer isso:

  1. Você pode fornecer o arquivo de lote com argumentos de linha de comando ffchunk.cmd *start* *end* , o que lhe dará flexibilidade na determinação dos comprimentos dos fragmentos. O arquivo em lote seria algo como isto:

    'ffmpeg -f mp3 -i /path/to/file.mp3 -t 00:%1:00 -ss 00:%2:00 -y
    /path/to/save%1-%2.mp3'
    

    , em que %1 e %2 representam o primeiro e o segundo argumentos fornecidos na linha de comando, respectivamente. Você invocaria como ffchunk 00 10 .

  2. Forneça um loop dentro do arquivo de lote para iterar o quanto você precisar:

     '@echo off
     setlocal ENABLEEXTENSIONS
     setlocal ENABLEDELAYEDEXPANSION
    
     for /L %%i in (1,1,10) do (
      set /a j=%%i-1
      set k=%%i
      if !j! lss 10 set j=!j!0
      if !k! lss 10 set k=!k!0
      ffmpeg -f mp3 -i /path/to/file.mp3 -t 00:!j!:00 -ss 00:!k!:00 -y /path/to/save!j!-!k!.mp3
     )'
    
por 25.09.2013 / 22:31
1

Você pode usar o muxer de segmento do ffmpeg. Algo como:

ffmpeg -i input.mp3 -map 0 -c copy -f segment -segment_time 600 out-%02d.mp3

... produzirá vários arquivos ao longo das linhas out-00.mp3, out-01.mp3 e assim por diante, cada um com 600 segundos de duração (exceto a parte final, que será o restante). Há problemas de precisão usando o muxer do segmento com vídeos (embora possam ser superados, consulte a documentação à qual eu me vinculei), mas nunca tive problemas ao trabalhar com arquivos de áudio.

    
por 25.09.2013 / 23:42