다음을 통해 공유


스마트 압축을 사용하여 콘텐츠를 트랜스코딩하려면

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

Windows Media Format SDK를 사용하여 한 비트 전송률에서 다른 비트 전송률로 콘텐츠를 트랜스코딩할 수 있습니다. 일반적으로 콘텐츠를 디코딩하고 원하는 비트 전송률로 다시 인코딩하기만 하면 됩니다. Windows Media Audio 9 코덱은 스마트 압축을 지원하여 평소보다 더 나은 품질을 달성하는 코드 변환을 가능하게 합니다.

스마트 압축을 풀려면 원래 오디오 스트림을 Windows Media 오디오 코덱으로 인코딩해야 합니다. 모든 버전의 코덱이 지원되지만 특수 오디오 코덱(Windows Media Audio 9 Professional 및 Windows Media Audio 9 Voice)은 지원되지 않습니다. 원래 오디오가 Windows Media Audio 9 무손실 코덱으로 인코딩된 경우 원래 인코딩에서 정보가 손실되지 않으므로 스마트 압축을 사용할 필요가 없습니다.

스마트 압축을 사용하려면 다음 단계를 수행합니다.

  1. 읽기 위해 원본 파일을 사용하여 판독기 개체를 설정합니다. 자세한 내용은 ASF 파일 읽기를 참조하세요.
  2. 파일 코드 변환에 사용할 기록기 개체를 설정합니다. 새 파일의 파일 이름을 설정합니다. 새 파일에 사용할 프로필을 선택합니다. 기록기 개체에서 선택한 프로필을 설정합니다. 자세한 내용은 ASF 파일 작성을 참조하세요.
  3. IWMReader::QueryInterface를 호출하여 판독기 개체의 IWMProfile 인터페이스에 대한 포인터를 가져옵니다.
  4. IWMProfile::GetStream을 호출하여 오디오 스트림을 트랜스코딩할 IWMStreamConfig 인터페이스를 검색합니다.
  5. IWMStreamConfig::QueryInterface를 호출하여 스트림 구성 개체에 대한 IWMMediaProps 인터페이스를 가져옵니다.
  6. IWMMediaProps::GetMediaType을 두 차례 호출하여 스트림에 대한 WM_MEDIA_TYPE 구조를 검색합니다. 첫 번째 호출에서 구조체의 크기를 가져와서 두 번째 호출에서 전달할 버퍼에 대한 메모리를 할당합니다.
  7. IWMWriter::GetInputProps를 호출하여 기록기의 입력에 대한 IWMInputMediaProps 인터페이스에 대한 포인터를 가져옵니다.
  8. IWMInputMediaProps::QueryInterface를 호출하여 입력 미디어 속성 개체에 대한 IWMPropertyVault 인터페이스를 가져옵니다.
  9. IWMPropertyVault::SetProperty 메서드를 사용하여 g_wszOriginalWaveFormat 속성을 설정합니다. 6단계에서 얻은 WAVEFORMATEX 구조를 속성 값으로 사용합니다.
  10. IWMWriter::SetInputProps를 호출하고 IWMInputMediaProps 인터페이스에 포인터를 전달 하여 입력 미디어 속성에 대한 변경 내용을 포함합니다.
  11. 원래 파일에서 샘플을 읽고 IWMWriter::WriteSample 호출을 사용하여 작성기에 전달하기 시작합니다.

고급 항목

IWMInputMediaProps 인터페이스

IWMMediaProps 인터페이스

IWMProfile 인터페이스

IWMPropertyVault 인터페이스

IWMStreamConfig 인터페이스