다음을 통해 공유


동적 범위 컨트롤을 사용하려면

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

오디오 콘텐츠의 동적 범위는 기본적으로 가장 낮은 볼륨과 최대 볼륨의 차이입니다. 콘텐츠의 동적 범위가 너무 높으면 사용자가 재생 중에 볼륨을 반복적으로 조정할 수 있습니다. 예를 들어 영화에는 동적 범위가 높은 경우가 자주 있습니다. 조용한 장면 중에 대화 상자를 이해할 수 있도록 볼륨을 조정하는 경우가 많으며, 음악이나 음향 효과가 있는 영화의 다른 부분은 원하는 것보다 더 큽니다.

Windows Media Audio 9 Professional 및 Windows Media Audio 9 무손실 코덱은 동적 범위 컨트롤이라는 기능을 지원합니다. 인코딩 시 코덱은 콘텐츠의 최대 및 평균 진폭 값을 계산하고, 기록기 개체는 인코딩이 완료되면 스트림의 메타데이터에 이러한 값을 저장합니다. 필요에 따라 애플리케이션은 "대상" 값을 플레이어 애플리케이션과 디코더가 파일을 재생할 때 힌트로 사용할 수 있는 메타데이터로 작성할 수도 있습니다. 재생 시 애플리케이션은 오디오 스트림에 적용할 동적 범위 컨트롤의 수준을 지정할 수 있습니다.

Windows 미디어 플레이어 동적 범위 컨트롤을 자동 모드 기능으로 구현합니다.

동적 범위 컨트롤을 사용해야 하는 경우

동적 범위 컨트롤은 콘텐츠의 소리를 변경할 수 있습니다. 따라서 동적 범위 컨트롤을 자동으로 사용하도록 애플리케이션을 구성해서는 안 됩니다. 대신 필요에 따라 동적 범위 컨트롤을 켜거나 끌 수 있는 기능을 사용자에게 제공합니다.

동적 범위 컨트롤 사용

재생 시 출력 설정 g_wszDynamicRangeControl 사용하여 동적 범위 컨트롤이 활성화됩니다. IWMReaderAdvanced2::SetOutputSetting을 사용하여 설정을 구성합니다. 값 0(기본값)은 동적 범위를 변경해서는 안 됨을 나타냅니다. 값이 1 또는 2이면 코덱이 동적 범위 제어를 수행하도록 신호를 보냅니다. 여기서 1은 보통 수준의 동적 범위 압축이고 2는 높은 수준의 동적 범위 압축입니다.

인코딩 시간 또는 재생 시간에 WM/WMADRCPeakTarget 및 WM/WMADRCAverageTarget 특성을 각각 설정하여 피크 및 평균 수준에 대한 코덱 대상 PCM 값을 제공할 수 있습니다. 이러한 값은 메타데이터 특성으로 저장되며 IWMHeaderInfo3 인터페이스의 메서드를 사용하여 액세스해야 합니다. 전문 또는 무손실 코덱을 사용하여 오디오 스트림을 인코딩하면 WM/WMADRCPeakReferenceWM/WMADRCAverageReference 특성이 원래 콘텐츠의 최고 및 평균 수준으로 자동으로 설정됩니다. 대상 값은 기본적으로 참조와 동일한 값으로 설정됩니다.

재생 시 디코더는 선택한 수준의 동적 범위 컨트롤과 대상 값(지정된 경우)을 기준으로 동적 범위를 계산합니다. 가능한 범위는 다음 표에 나와 있습니다.

설정 배달된 오디오 범위
g_wszDynamicRangeControl = 0(모든 대상 값) 원본 콘텐츠와 동일한 범위입니다.
g_wszDynamicRangeControl = 1(대상 값이 참조 값과 같음) 평균 수준이 유지되고 피크가 평균 +12dB로 제한됩니다.
g_wszDynamicRangeControl = 2(대상 값이 참조 값과 같음) 평균 수준이 유지되고 피크가 평균 +6dB로 제한됩니다.
g_wszDynamicRangeControl = 1(지정된 대상 값) 대상 평균 값으로 설정된 평균 수준 및 대상 피크 값으로 제한되는 최대값입니다.
g_wszDynamicRangeControl = 2(지정된 대상 값) 평균 수준은 대상 평균 값으로 설정되고 대상 평균 및 대상 피크 값의 중앙값으로 제한된 피크입니다.

 

동적 범위 컨트롤은 디코딩의 기능이며 파일 자체에 메타데이터로만 존재합니다. 이러한 설정은 디코더에 사용하도록 특별히 지시하지 않는 한 파일에 저장된 콘텐츠에 영향을 주지 않습니다. Windows Media Format SDK는 인코딩 시 오디오 데이터의 동적 범위를 수정하는 방법을 제공하지 않습니다.

고급 항목