Как я могу автоматически вырезать всю тишину (0dB) из mp3 без повторного кодирования?

Как я читал 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 для создания того же файла...

8
задан Vitaly Zdanevich
08.03.2023 16:45 Количество просмотров материала 3403
Распечатать страницу

1 ответ

на это отвечает сообщение переполнения стека С помощью ffmpeg с silencedetect снять аудио молчания.

первое замечание состоит в том, что silencedetect обнаруживает только тишину, а не удаляет ее. Вместо этого следует использовать фильтр silenceremove.

чтобы определить, имеет ли ваша версия ffmpeg этот фильтр запуска:

ffmpeg -hide_banner -filters | grep silenceremove

результат должен выглядеть так:

silenceremove A->A Remove silence

команда удалить Silent деталями может выглядеть like:

ffmpeg -i input.mp3 -af silenceremove=1:0:-50dB output.mp3

где параметр silenceremove объясняется как removing:

  • в начале (указывается первым аргументом 1)
  • с минимальной длиной ноль (указывается вторым аргументом 0)
  • молчание классифицируется как что-либо ниже -50 децибел (обозначается -50dB)

ссылки: FFMPEG тишина удалить фильтр.

для нахождения правильного значения тишину, нормализовать громкость аудио 0dB, описано в ответ.

0
отвечен harrymc 2023-03-10 00:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх