Разделение аудиофайла на фрагменты заданной длины

Разделение аудиофайла на фрагменты заданной длины

У меня есть несколько длинных аудиофайлов (по 80 минут каждый; m4a), и я хочу разделить их на 5- или 10-минутные фрагменты.

Я вижу много вопросов о разделении аудиофайла на длительные паузы, тональности и т. д., но не могу найти ни одного относительно этой простой операции. Кто-нибудь знает простой способ сделать это?

Конечно, подойдет что-то автоматическое, и командная строка тоже подойдет — даже предпочтительнее.

Заранее спасибо!

решение1

С последним ffmpeg (скачать статическую сборкуотсюда):

ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a

Это использует сегментный мультиплексор и копирует битовые потоки. Если ваш файл содержит аудио- и видеопотоки, вы можете отключить видеопоток с помощью -vn.


Вот однострочник, вам просто нужноРубиниFFmpegустановлен:

ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'

Просто выполните это в той же папке, где in.m4aнаходится. Это скопирует аудиопоток, поэтому выполнение этого, вероятно, займет меньше нескольких секунд.

Объяснить:

  • Длина аудиофайла составляет 4800 секунд (80 минут × 60 секунд), поэтому наше последнее разделение составляет 4500 секунд (4800 - 300 секунд).
  • Мы идем от 0 до 4500 и делим каждые 300 секунд (5 мин × 60 с).
  • FFmpeg запустится в указанное время-ss
  • И он будет копировать в течение времени, указанного-t
  • Он запишет несколько выходных файлов с именами out-<x>.mp4, где <x>— время начала в секундах.

решение2

Я сам искал решение для этого. Самый простой способ, который я нашел, это черезMP4Box:

mp4box -split 300 infile.m4a

Где «300» — это время в секундах. MP4Box автоматически запишет пронумерованные выходные файлы.

(Вам не нужно устанавливать все большое приложение GPAC. Вот файлы, которые вы можете извлечь из архива, чтобы оно заработало: js.dll; libeay32.dll; libgpac.dll; MP4Box.exe; ssleay32.dll)

решение3

Прошло уже некоторое время с тех пор, как я задавал этот вопрос, но, поэкспериментировав с Ruby и ffmpeg, я решил, что должен быть более простой способ сделать это в Windows, и я его нашел.

Загрузите и установите Audacity

Создайте текстовый файл в любом месте, где вы сможете его найти, и вставьте в него следующую строку: (300-секундные интервалы, т. е. 5 минут, 10 минут будут равны 600 интервалам и т. д.)

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  

Просто убедитесь, что количество интервалов больше общей продолжительности ваших аудиофайлов. Я создал один, который длится более трех часов, этого вполне достаточно для моих нужд. Добавьте к нему больше, если вам это нужно.

Импортируйте аудиофайл в Audacity и выполните балансировку и любые другие необходимые изменения, затем нажмите Файл>Метки>Импортировать метки.

Выберите текстовый файл, затем одновременно выберите дорожку этикетки и звуковую дорожку и нажмите Файл>Экспортировать несколько.

Измените тип файла, в который вы хотите экспортировать данные, и настройте параметры, затем выберите папку назначения.

Я всегда меняю шаблон нумерации на «Нумерация после префикса имени файла» и ввожу в поле нужное мне имя файла, а программа добавляет номера, нажимаю «Экспорт» и вуаля!

решение4

MP4Box работает отлично. Всегда здорово, когда можно что-то сделать из терминала. Более быстрый способ.

Это страница загрузки: https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/ Устанавливаете программу, дальше можете работать из терминала, больше ничего не нужно.

Проверено, команда dfkt работает отлично: mp4box -split 59 infile.m4a

В моем случае я хотел разбить на m4a <1 мин для удобства использования Google Speech-To-Text.

Audacity может работать нормально, но в моем случае я всегда предпочитаю работать с командами, а не с графическим интерфейсом. Лучшее решение для mp4box. Я не даю новую информацию, заслуга принадлежит dfkt (спасибо, чувак). Я только подтверждаю, что это отличное решение.

Связанный контент