상호 배제

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

모든 ASF 파일에는 각각 디지털 미디어 데이터를 포함하는 하나 이상의 스트림이 포함되어 있습니다. 정상적인 상황에서 각 스트림은 단일 출력과 연결됩니다. 재생 시 판독기 개체는 각 출력에 대한 샘플을 제공합니다. 따라서 기본적으로 ASF 파일의 모든 스트림은 재생 시 판독기에서 전달됩니다.

모든 스트림이 클라이언트에 전달되는 것을 원하지 않는 상황이 있습니다. 예를 들어 5개의 오디오 스트림이 있는 비디오 파일을 만드는 경우 5개 언어 각각에 대해 하나씩 한 번에 하나만 배달하려고 합니다. 상호 제외는 모두 동일한 출력과 동일한 여러 상호 배타적 스트림을 지정할 수 있는 Windows Media Format SDK의 기능입니다.

상호 제외는 파일을 만드는 데 사용되는 프로필에 정의됩니다. 상호 제외 개체를 사용하여 프로필에서 상호 제외를 구성합니다. 상호 제외 개체에 스트림을 한 번에 하나씩 추가하고, 형식을 설정하고, 프로필에 개체를 포함합니다.

Windows Media Format SDK는 다음 네 가지 유형의 상호 제외를 인식합니다.

  • 비트 전송률:
  • 언어
  • 프레젠테이션
  • Unknown

비트 전송률별 상호 제외

비트 속도 상호 제외는 상호 제외의 특수한 유형이며 더 일반적으로 MBR(다중 비트 속도) 상호 제외라고 합니다. MBR 상호 제외에는 모두 동일한 입력에서 발생하지만 서로 다른 비트 속도로 인코딩되는 여러 스트림이 포함됩니다. MBR을 사용하여 파일을 재생할 때 판독기는 사용 가능한 대역폭에 따라 사용할 최상의 스트림을 결정합니다.

Windows Media Format SDK는 오디오 및 비디오 스트림에 대한 MBR을 지원합니다. 또한 SDK는 여러 비디오 크기 MBR이라는 특수 형식의 MBR 비디오도 지원합니다. 개별 스트림의 프레임 크기가 다를 수 있다는 점을 제외하면 일반적인 MBR 비디오와 같습니다. 예를 들어 기본 320 x 240 비디오 크기의 일부 스트림과 비트 속도가 더 높고 비디오 크기가 640 x 480인 일부 스트림이 있을 수 있습니다.

언어별 상호 제외

언어 기반 상호 제외는 여러 언어로 녹음된 콘텐츠(일반적으로 오디오)와 함께 사용하도록 설계되었습니다. 언어 기반 상호 제외에는 고유한 입력에서 시작된 여러 스트림이 포함됩니다. 각 입력은 동일한 콘텐츠이지만 다른 언어로 표시됩니다.

언어별 상호 제외가 작동하려면 읽기 애플리케이션에 적절한 언어를 선택하는 논리가 포함되어야 합니다. ASF 파일을 재생하는 애플리케이션을 작성하고 언어 기반 상호 제외가 있는 파일을 지원하려는 경우 재생을 시작하기 전에 적절한 스트림을 선택해야 합니다.

프레젠테이션별 상호 제외

프레젠테이션 기반 상호 제외는 서로 다른 가로 세로 비율로 인코딩된 동일한 콘텐츠를 포함하는 비디오 스트림을 지원하기 위해 제공됩니다. 일반적으로 이는 레터박스 버전(가로 세로 비율 16:9)으로 비디오를 제공할 때 사용되며 TV 화면(가로 세로 비율 4:3)에 서식이 지정됩니다.

재생을 위한 프레젠테이션 선택은 사용자가 가장 자주 결정합니다. ASF 파일을 재생하는 애플리케이션을 작성하고 프레젠테이션 기반 상호 제외가 있는 파일을 지원하려는 경우 사용자에게 표시할 프레젠테이션 유형을 선택할 수 있는 옵션을 제공해야 합니다.

알 수 없는 상호 제외

원하는 조건에 따라 상호 제외를 만들 수 있습니다. 알 수 없는 형식을 사용하여 모든 사용자 지정 상호 제외 형식을 만들어야 합니다.

고급 상호 제외 기능

상호 제외를 사용하여 서로 배타적인 그룹에 스트림을 할당할 수도 있습니다. 예를 들어 오디오 스트림을 여러 언어로 사용하고 각각에 다른 비디오 스트림을 할당할 수 있습니다. 상호 제외를 사용하여 각 오디오 스트림을 해당 비디오 스트림으로 그룹화하고 모든 그룹을 상호 배타적으로 만듭니다.

판독기는 모든 상호 제외에 대해 스트림을 자동으로 선택합니다. MBR 및 언어 기반 상호 제외를 제외한 모든 유형의 상호 제외에 대해 판독기는 항상 프로필의 상호 제외 개체에 추가된 첫 번째 스트림인 기본 스트림을 선택합니다. MBR의 경우 판독기는 재생 시 사용 가능한 대역폭에 가장 적합한 스트림을 선택합니다. 기본 스트림을 사용하지 않으려면 파일 읽기를 시작하기 전에 스트림 선택을 수동으로 설정할 수 있습니다.

수동 스트림 선택은 전체 파일에 적용됩니다. 동일한 파일에서 서로 다른 형식을 상호 제외하는 경우 문제가 발생할 수 있습니다. 예를 들어 파일에는 비트 속도 기반 상호 제외 및 사용자 지정 상호 제외가 모두 포함될 수 있습니다. 사용자 지정 상호 제외에서 기본값이 아닌 스트림을 선택하려면 수동 스트림 선택을 사용해야 합니다. 그러나 수동 스트림 선택을 사용하는 경우 판독기는 여러 비트 전송률 스트림을 자동으로 선택하지 않습니다. 단일 파일에서 여러 유형의 상호 제외를 지원하려는 경우 애플리케이션에서 이러한 사태를 계획해야 합니다. 일반적으로 이는 일반적으로 자동 유형의 상호 제외에 대한 고유한 스트림 선택 루틴을 만드는 것을 의미합니다.

ASF 파일 기능

상호 제외 사용