1

У меня есть папка, заполненная пакетными файлами FFMPEG, которые я написал для выполнения различных задач преобразования. Это позволяет мне перетаскивать кучу файлов и выполнять преобразование - например, распаковывать MP3 в WAV-файлы, обрезать XVID-файлы и т.д.

Теперь я хочу написать тот, который разбивает MP3 на более мелкие куски. Для этого есть аккуратная команда FFMPEG

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

Однако это извлекает только первые 10 минут. Чтобы пройти весь MP3, я должен был бы написать подобные заявления для каждых 10 минут длины MP3. Есть ли способ токенизировать это в пакетных файлах?

2 ответа2

1

Ну, есть два способа сделать это:

  1. Вы можете предоставить пакетный файл с аргументами командной строки ffchunk.cmd *start* *end* который даст вам гибкость в определении длины чанка. Пакетный файл будет выглядеть примерно так:

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

    где %1 и %2 представляют первый и второй аргументы, заданные в командной строке, соответственно. Вы бы назвали его как ffchunk 00 10 .

  2. Обеспечьте цикл внутри командного файла, чтобы выполнять итерацию столько, сколько вам нужно:

     `@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
     )`
    
1

Вы можете использовать сегментный мультиплексор ffmpeg. Что-то вроде:

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

... создаст несколько файлов по строкам out-00.mp3, out-01.mp3 и т. д. каждые 600 секунд (за исключением последней части, которая будет оставшейся частью). Существуют проблемы с точностью при использовании сегмента muxer с видео (хотя их можно преодолеть, см. Документацию, на которую я ссылался), но у меня никогда не было проблем при работе с аудиофайлами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .