Хорошо, как кто-то из 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.
Однако, это все равно перекодирует всякий раз, когда вы добавляете фильтр.