ffmpeg - записывает громкость звука, равную воспроизводимому видео

447
ADH

Я использую следующую команду для записи видео на рабочем столе со звуком на звуковой карте. Но громкость записи звука намного ниже, чем должна быть. Как получить звук для записи на том же уровне, на котором он воспроизводился при записи видео и звука?

ffmpeg -f gdigrab -framerate ntsc -video_size 1920x1080 -i desktop -f dshow -i audio="Microphone (Realtek High Definition Audio)" -vcodec libx264 -pix_fmt yuv420p -preset ultrafast D:\output.mp4 

Я попытался увеличить громкость после создания видео, используя следующую команду. Но это звучит неправильно, теперь я слышу что-то вроде «вау-вау».

ffmpeg -i F:\input.mp4 -vcodec copy -af "volume=30dB" F:\output.mp4 
0
30 дБ звучит слишком высоко. Сделайте запись без фильтра громкости. После записи запустите `ffmpeg -i output -af volumedetect -vn -f null -`, чтобы увидеть средний объем. Затем увеличьте его, но убедитесь, что оно не нормализовано выше 0 дБ. Gyan 5 лет назад 0

1 ответ на вопрос

1
slhck

По умолчанию это запись на том же уровне. Убедитесь в правильности выходной громкости звукового микшера Windows. Если ваша звуковая карта это позволяет, вы можете включить усиление микрофона, но не делайте его на 0 дБ. (Смотрите также этот вопрос .)

Вы также можете запустить ffmpeg-normalizeна выходе нормализацию до пика 0 дБ:

ffmpeg-normalize input.mp4 -nt peak -t 0 -c:a aac -b:a 192k -o output.mp4 

Или, что еще лучше, используйте EBU R128 для нормализации громкости (это значение по умолчанию):

ffmpeg-normalize input.mp4 -c:a aac -b:a 192k -o output.mp4 

(Отказ от ответственности: я автор этого инструмента.)