콘텐츠를 스마트 재압축을 사용하여 트랜스코딩하려면
[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 코덱으로 인코딩된 경우 원래 인코딩에서 정보가 손실되지 않으므로 스마트 압축을 사용할 필요가 없습니다.
스마트 압축을 사용하려면 다음 단계를 수행합니다.
- 읽기를 위해 원본 파일을 사용하여 판독기 개체를 설정합니다. 자세한 내용은 ASF 파일 읽기 참조하세요.
- 파일 코드 변환에 사용할 기록기 개체를 설정합니다. 새 파일의 파일 이름을 설정합니다. 새 파일에 사용할 프로필을 선택합니다. 작성기 개체에서 선택한 프로필을 설정합니다. 자세한 내용을 보려면 ASF 파일 쓰기를 참조하세요.
- IWMReader::QueryInterface호출하여 판독기 개체의 IWMProfile 인터페이스에 대한 포인터를 가져옵니다.
- IWMProfile::GetStream호출하여 코드 변환할 오디오 스트림에 대한 IWMStreamConfig 인터페이스를 검색합니다.
- IWMStreamConfig::QueryInterface호출하여 스트림 구성 개체에 대한 IWMMediaProps 인터페이스를 가져옵니다.
- IWMMediaProps::GetMediaType두 번의 호출을 수행하여 스트림에 대한 WM_MEDIA_TYPE 구조를 검색합니다. 첫 번째 호출에서 구조체의 크기를 가져와서 두 번째 호출을 전달할 버퍼에 대한 메모리를 할당합니다.
- 기록기의 입력을 위해 IWMWriter::GetInputProps를 호출하여 IWMInputMediaProps 인터페이스에 대한 포인터를 얻습니다.
- IWMInputMediaProps::QueryInterface호출하여 입력 미디어 속성 개체에 대한 IWMPropertyVault 인터페이스를 가져옵니다.
- IWMPropertyVault::SetProperty 메서드를 사용하여 g_wszOriginalWaveFormat 속성을 설정합니다. 6단계에서 가져온 WAVEFORMATEX 구조를 속성 값으로 사용합니다.
- IWMWriter::SetInputProps 호출하고 IWMInputMediaProps 인터페이스에 포인터를 전달하여 입력 미디어 속성에 대한 변경 내용을 포함합니다.
- 원래 파일에서 샘플을 읽고 IWMWriter::WriteSample호출하여 작성기에 전달합니다.
관련 항목