Пока я читаю, silenceremove перекодирует файл.

Обычно я делаю это вручную, создавая файл вроде:

file 'file.mp3'
inpoint 0
outpoint 01:55:00.0

file 'file.mp3'
inpoint 02:03:50.0

и выполнить эту команду:

ffmpeg -f concat -safe 0 -i list.txt -c copy file.mp3

Может быть, я могу использовать silencedetect для создания того же файла ...

1 ответ1

0

Ответ на это в посте переполнения стека с использованием 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 , как описано в этом ответе.

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