Я ищу возможность объединить несколько аудиофайлов в один на сервере.
Пример: audio_01.mp3 / 33sec + audio_02.mp3 / 22sec = audio_03.mp3 / 55sec
Сервер — на базе Linux, мой основной язык — PHP (на всякий случай)
Не могли бы вы указать мне правильное направление?
Заранее спасибо!
ИСПОЛЬЗОВАНИЕ FFMPEG
Это объединит два mp3-файла, и в результате метаданные будут такими же, как у первого файла:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Это связано с тем, что для ffmpeg вся часть «concat:» представляет собой один «входной файл», и его метаданные будут относиться к первому объединенному файлу. Если вы хотите использовать вместо этого метаданные из второго файла, вы должны добавить его в качестве фиктивного входного файла и сопоставить его метаданные с выходными данными:
ffmpeg -i "concat:file1.mp3|file2.mp3" -i file2.mp3 -acodec copy test.mp3 -map_metadata 0:1
Если вы хотите создать свои метаданные из двух метаданных, вам придется делать это вручную. Вы можете сбросить метаданные файла с
ffmpeg -i file1.mp3 -f ffmetadata file1.metadata
После выгрузки обоих метаданных и создания новых метаданных вы можете добавить их в выходной файл с помощью -metadata и отключить копирование метаданных, установив сопоставление -map_metadata с отрицательным номером входного файла. Это устанавливает значение имени и никаких других метаданных:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy -metadata "title=Some Song" test.mp3 -map_metadata 0:-1
Других решений пока нет …