Можно ли изменить громкость без перекодирования с помощью ffmpeg? - PullRequest
0 голосов
/ 17 февраля 2020

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

ffmpeg -i input.wav -filter:a "volume=0.2" output.wav

Следуя документации здесь: https://trac.ffmpeg.org/wiki/AudioVolume

Однако, когда я создал новый файл, вывод был вдвое меньше размера ввода, а битрейт звуковой дорожки также был уменьшен.

Итак, мои вопросы:

  1. Предполагается ли битрейт уменьшаться с уменьшением и увеличением громкости, как это происходит?
  2. Можно ли изменить громкость без перекодирования с помощью ffmpeg?

1 Ответ

0 голосов
/ 17 февраля 2020

Хорошо, как кто-то из Reddit любезно объяснил мне, я должен иметь возможность изменять громкость без перекодирования, однако мой входной код c был pcm_f321e и настройка по умолчанию для выходного кода c для ffmpeg без каких-либо спецификаторов pcm_f161e.

Первый pcm_f321e 32-битный, поэтому он хранит больше информации, чем второй, 16-битный.

Итак, ответ таков: 1. Да, потому что в этом случае Я неосознанно перекодировал в код c с меньшим количеством информации.

На самом деле нет, это все еще перекодирование. Лучше всего использовать тот же код, который я использовал выше, с дополнительным спецификатором:
ffmpeg -i input.wav -filter:a "volume=0.2" -c:a pcm_f32le output.wav

Код c для ввода и вывода должен быть таким же, как в 32-битном или 16-битном или же мне нужно добавить спецификатор, который мне показали, как это делает тот же человек в Reddit.

Однако, это все равно перекодирует всякий раз, когда вы добавляете фильтр.

...