За допомогою ffmpeg ви можете використовувати фільтр aevalsrc для створення тиші, а потім у другій команді використовуйте протокол concat, щоб поєднати їх без втрат:
ffmpeg -filter_complex aevalsrc=0 -t 10 10SecSilence.mp3
ffmpeg -i "concat:input.mp3|10SecSilence.mp3" -c copy output.mp3
Ви можете контролювати довжину тиші, змінюючи -t 10
час, який ви хочете в секунди. Звичайно, вам потрібно створити тишу лише один раз, тоді ви можете зберегти файл і використовувати його для вкладки кожного з потрібних файлів. Можливо, ви також хочете шукати конмат-демуксер - він трохи більш трудомісткий, але вам може бути легше потрапити в сценарій оболонки.
Якщо ви хочете зробити це в одній команді, ви можете використовувати фільтр concat - це зажадає від вас перекодування звуку (оскільки фільтри не сумісні -codec copy
), тому варіант вище, мабуть, найкращий для вас. Але це може бути корисно для всіх, хто працює з необмеженою PCM, прагнучи додати мовчання до кінця, перш ніж кодувати аудіо:
ffmpeg -i input.mp3 \
-filter_complex 'aevalsrc=0::d=10[silence];[0:a][silence]concat=n=2:v=0:a=1[out]' \
-map [out] -c:a libmp3lame -q:a 2 output.mp3
Контролюйте довжину тиші, змінюючи потрібний d=10
час (у секундах). Якщо ви використовуєте цей метод, вам може бути корисний цей посібник з кодування MP3 FFmpeg .