다음을 통해 공유


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

[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 미디어 오디오 코덱으로 인코딩해야 합니다. 코덱의 모든 버전이 지원되지만 특수 오디오 코덱(Windows Media Audio 9 Professional 및 Windows Media Audio 9 Voice)은 지원되지 않습니다. 원래 오디오가 Windows Media Audio 9 Lossless 코덱으로 인코딩된 경우 원래 인코딩에서 정보가 손실되지 않으므로 스마트 압축을 사용할 필요가 없습니다.

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

  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 인터페이스