스마트 압축을 사용하여 콘텐츠를 트랜스코딩하려면
[이 페이지와 연결된 기능인 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 무손실 코덱으로 인코딩된 경우 원래 인코딩에서 정보가 손실되지 않으므로 스마트 압축을 사용할 필요가 없습니다.
스마트 압축을 사용하려면 다음 단계를 수행합니다.
- 읽기 위해 원본 파일을 사용하여 판독기 개체를 설정합니다. 자세한 내용은 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 호출을 사용하여 작성기에 전달하기 시작합니다.
관련 항목