Ответ на это в посте переполнения стека с использованием FFMPEG с silencedetect для удаления аудио тишины.
Первое замечание заключается в том, что молчание определяет только молчание, а не удаляет его.
Вы должны использовать вместо фильтра SilenceEmove.
Чтобы определить, есть ли в вашей версии ffmpeg этот фильтр, выполните:
ffmpeg -hide_banner -filters | grep silenceremove
Вывод должен выглядеть так:
silenceremove A->A Remove silence
Команда для удаления тихих частей может выглядеть так:
ffmpeg -i input.mp3 -af silenceremove=1:0:-50dB output.mp3
Где параметр silenceremove объясняется как удаление:
- в начале (указано первым аргументом
1
)
- с минимальной нулевой длиной (указывается вторым аргументом
0
)
- тишина классифицируется как что-либо ниже -50 децибел (обозначено
-50dB
)
Справка: FFMPEG Silent Remove Filter.
Чтобы найти правильное значение для тишины, сначала нормализуйте громкость входного звука до 0dB
, как описано в этом ответе.