
У меня есть несколько длинных аудиофайлов (по 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 (спасибо, чувак). Я только подтверждаю, что это отличное решение.