2

Я использую ffmpeg для объединения двух файлов MP3 вместе,

Я использую эту команду:

ffmpeg -y -i first.mp3 -i second.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3

Это работает, но есть небольшая проблема, наложение вместе!

Я хочу, чтобы первая песня воспроизводилась, а когда она закончилась, запускается второй файл (в выходном файле)

Но теперь они начинаются одновременно.

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

Плюс, я попробовал команду concat но не сработал, я просто могу использовать что-то вроде того, что я отправил.

2 ответа2

2

Чтобы пропустить перекодирование, используйте демультиплексор concat:

Создать текстовый файл

file '/path/to/first.mp3'
file '/path/to/second.mp3'

а потом

ffmpeg -f concat -i list.txt -c copy out.mp3

Если перекодирование в порядке,

ffmpeg -i first.mp3 -i second.mp3 -filter_complex [0:a][1:a]concat=n=2:v=0:a=1 out.mp3
0

Обычно,

cat first.mp3 second.mp3 > out.mp3

должен просто работать. Вы не сказали, что идет не так, когда вы пытаетесь это сделать.

Кроме того, вы можете использовать mp3wrap:

mp3wrap out.mp3 first.mp3 second.mp3 third.mp3 ...

Он не перекодирует MP3, как это делает ffmpeg , он сохраняет теги ID3, и вы можете позже снова разделить файлы с помощью mp3split .

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

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