FFmpeg를 사용하여 간단한 피크 정규화가 가능합니까?

FFmpeg를 사용하여 간단한 피크 정규화가 가능합니까?

나는 비디오 테이프의 무손실 비디오 캡처를 가지고 있는데, 그 중 일부는 불행하게도 캠코더에 내장 스피커 이외의 볼륨 슬라이더가 부족하고 Dazzle DVC100 USB 비디오 캡처 장치의 볼륨 설정 부족으로 인해 출력 볼륨이 제한되었습니다. VirtualDub2가 감지하고 녹음하는데도 불구하고 Windows 오디오 믹서 또는 녹음 장치 패널에서 실현할 수 없음).

처음에는 오디오를 표준화하기 위해 이것을 사용했습니다.

-af loudnorm=I=-16:LRA=11:TP=-1.5

그러나, 그 내용을 더 읽어보면FFmpeg 문서그리고오디오 정규화에 관한 Wikipedia 기사, 나는 "음량 정규화"가 "피크 정규화"와 다르다는 것을 알고 있습니다. ffmpeg의 loudnorm함수 이름이 바로 그렇게 지정되었으므로 내가 하고 있는 작업이 정확히 내가 원하는 작업인지 확인해야 합니다.

클리핑 없이 볼륨을 최대한 높이고 싶습니다.그리고다이내믹 레인지를 잃지 않고 전체 녹음의 볼륨 레벨을 평균화하지 않습니다. ffmpeg에서 이것이 가능합니까? 나는 꽤 많이 검색했는데 loudnorm정규화와 관련된 다른 모든 것을 익사시킬 정도로 인기가 있는 것 같습니다.

답변1

먼저 VolumeDetect 필터를 실행하여 최고 볼륨을 식별할 수 있습니다. 그런 다음 두 번째 패스에서 볼륨 필터를 실행하여 균일한 게인을 추가합니다.

패스 1

ffmpeg -i input -af volumedetect -vn -f null -

산출:

[Parsed_volumedetect_0 @ 0000022356a12940] n_samples: 495350
[Parsed_volumedetect_0 @ 0000022356a12940] mean_volume: -28.9 dB
[Parsed_volumedetect_0 @ 0000022356a12940] max_volume: -4.2 dB
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_4db: 26
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_5db: 107
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_6db: 182
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_7db: 153
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_8db: 158

최대 볼륨이 최대 볼륨입니다.

패스 2

ffmpeg -i input -af volume=+4.2dB -c:v copy output

관련 정보