FFmpeg объединяет аудио и смещенные части между собой

1231
layabout

Я выяснил, как я могу объединить несколько аудио файлов со сложным фильтром, но боролся со смещением аудио в файле результатов. Скажем, я хочу добавить паузу в 1 секунду между каждым файлом сцепления. Можно ли это сделать с FFmpeg?

2

1 ответ на вопрос

4
Gyan

Создайте нулевой аудиопоток и вставьте его с обрезкой.

Допустим, у вас есть три аудиофайла, и вы хотите промежутки между ними 1 и 3 секунды соответственно, тогда вы бы использовали

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -f lavfi -i anullsrc -filter_complex \ "[3]atrim=duration=1[g1];[3]atrim=duration=3[g2]; [0][g1][1][g2][2]concat=n=5:v=0:a=1" out.mp3 

Если вам нужно обрезать входы,

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -f lavfi -i anullsrc -filter_complex \ "[0]atrim=duration=20[t0];[1]atrim=duration=120[t1];[2]atrim=duration=45[t2]; [3]atrim=duration=1[g1];[3]atrim=duration=3[g2]; [t0][g1][t1][g2][t2]concat=n=5:v=0:a=1" out.mp3 
Что если я захочу ограничить длительность входов перед concat и trim? layabout 7 лет назад 0
Смотрите новую команду. Gyan 7 лет назад 0
Спасибо за помощь! Не могли бы вы указать мне, где я могу прочитать о входных метках? Я не совсем понимаю значение всех значений в скобках. И почему n = 5? 3 входных файла и anullsrc а откуда 5-й пришел? layabout 7 лет назад 0
См. Https://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1. Gyan 7 лет назад 0
5 относится к общему количеству входных площадок. Anullsrc подается дважды. Gyan 7 лет назад 0