Слияние многих аудиофайлов с определенными позициями

У меня есть несколько аудиофайлов, которые представляют сеанс. Поэтому в одной папке у меня может быть:

2016-06-22-15-59-59-000.mka 2016-06-22-16-59-59-001.mka 2016-06-22-17-59-59-002.mka 

Имя файла – это дата и время создания этого файла. Например, первый файл был создан 22 июня в 15:59. Второй – 16:59.

Продолжительность звука может меняться, фиксированной длительности нет. Например, пользователь может подключиться к сеансу в течение 5 секунд или в течение 10 минут. Итак, первая продолжительность будет 00:05, а вторая 10:00.

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

Например, Алиса, Боб и Джон хотят что-то обсудить. Алиса звонит на номер 555-111-22-33, и Боб называет тот же номер через минуту. Они разговаривают вместе в течение 5 минут. И через 30 минут Боб и Джон одновременно назовут тот же номер. И затем Алиса присоединяется через минуту.

Таким образом, в этом случае у нас есть несколько аудиопотоков. Эти потоки обычно перекрываются, но не всегда. Например, когда Алиса ждет Боба в самом начале, мы уже записываем ее, и в этом сеансе нет никого, поэтому этот аудиопоток не перекрывается с другими.

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

Я смотрю на ffmpeg doc и не могу найти параметры, которые я могу использовать для создания перекрывающихся потоков, и указать точное время начала потока.

Вы, ребята, знаете, что было бы лучшим способом сделать это? Может быть, мне нужны лучшие инструменты, чем просто ffmpeg, может быть, мне просто нужно использовать библиотеки и язык программирования для создания моей собственной программы? благодаря

One Solution collect form web for “Слияние многих аудиофайлов с определенными позициями”

Давайте назначим относительное время начала первого звука при t=0 . Итак, если первая запись звука началась в 16:59:23 а третья запись началась в 17:14:13 , то относительное время начала третьего – 14:50 .

Имея это в виду, основная структура команд

 ffmpeg -i first.mka -i second.mka -i third.mka -i fourth.mka -filter_complex "[1]adelay=184000|184000[b]; [2]adelay=360000|360000[c]; [3]adelay=962000|962000[d]; [0][b][c][d]amix=4" merged.mka 

То, что делает команда, это задержка относительного начала каждого аудиофайла, кроме первого, чтобы соответствовать их относительным временам начала реального времени. Затем все задержанные аудиопотоки смешиваются вместе. Фильтр amix вставляет тишину там, где это необходимо.

adelay требует значения в миллисекундах, поэтому 3 минуты, 4 секунды – 184 секунды – 184000 мс. Значение должно быть предоставлено для каждого канала аудиопотока, поэтому, если вы имеете дело с [1]adelay=184000[b] , то [1]adelay=184000[b] является синтаксисом.

  • Избегайте ffmpeg, чтобы потерять ключевые флеш-файлы
  • Фильтр выбора ffmpeg генерирует нежелательные черные рамки
  • Как извлечь субтитры из видео с помощью ffmpeg?
  • Concat подразделы видео с использованием ffmpeg
  • Ошибки FFMPEG: «max_analyze_duration» «переполнение буфера» «слишком большой пакет» Что делать?
  • Как разделять и присоединяться без перекодирования видеофайлов AVC / MPEG-TS в Windows с помощью ffmpeg?
  • FFmpeg объединяет аудио и смежные части между собой
  • Автоматически разделять большие .mov видеофайлы на более мелкие файлы на черных кадрах (смена сцены)?
  • Как сделать ffmpeg более тихим / менее подробным?
  • Ffmpeg соединяет два файла mp4 с ffmpeg в командной строке
  • Преобразование AVI в MP4 с сохранением того же качества
  • Давайте будем гением компьютера.