비디오 스트림 구성
비디오 스트림은 오디오 스트림보다 구성에서 더 유연합니다. 이는 비디오를 구성하는 프레임의 속성이 파일마다 크게 다를 수 있기 때문입니다. 사용 중인 코덱의 코덱 형식을 검색할 때 비디오 스트림 구성 개체에 대해 다음 값을 설정해야 합니다.
값 | 설명 |
---|---|
비트 전송률: | IWMStreamConfig::SetBitrate를 호출하여 원하는 값으로 설정합니다. 비디오 코덱은 사양에 맞게 미디어를 압축하려고 합니다. 값이 너무 낮으면 압축된 비디오의 성능이 매우 저하됩니다. |
버퍼 창 | IWMStreamConfig::SetBufferWindow를 호출하여 원하는 값으로 설정합니다. 비디오 코덱은 사양에 맞게 미디어를 압축하려고 합니다. 값이 너무 낮으면 압축된 비디오의 성능이 매우 저하됩니다. |
WMVIDEOINFOHEADER.rcSource | 왼쪽 위 모서리는 0,0으로 설정해야 합니다. 오른쪽 아래 모서리는 프레임 크기로 설정해야 합니다. 예를 들어 640x480 스트림에서 이러한 설정은 0,0,640,480입니다. |
WMVIDEOINFOHEADER.rcTarget | rcSource와 일치해야 합니다. |
WMVIDEOINFOHEADER.dwBitRate | 스트림의 비트 속도 집합과 일치해야 합니다. |
WMVIDEOINFOHEADER. AvgTimePerFrame | 프레임당 대략적 시간으로 설정합니다. |
BITMAPINFOHEADER.biWidth | 원하는 프레임 크기의 너비(픽셀)로 설정합니다. |
BITMAPINFOHEADER.biHeight | 원하는 프레임 크기의 높이(픽셀)로 설정합니다. |
비디오 콘텐츠는 너비와 높이 모두에 대해 4의 배수인 크기로 인코딩되지 않는 한 제대로 재생되지 않습니다. RGB의 압축되지 않은 비디오는 예외입니다. 이 비디오는 모든 크기일 수 있습니다. 4의 배수가 아닌 크기를 설정하려고 하면 기록기에서 다음 오류 중 하나가 반환됩니다.
- NS_E_INVALID_INPUT_FORMAT
- NS_E_INVALID_OUTPUT_FORMAT
- NS_E_INVALIDPROFILE
가변 비트 전송률 인코딩을 사용하는 경우 다른 조정을 수행해야 할 수 있습니다. 자세한 내용은 VBR 스트림 구성을 참조하세요.
일부 Windows Media 비디오 코덱은 여러 복잡성 수준을 지원합니다. 복잡성 수준은 비디오 스트림을 인코딩할 때 코덱이 사용할 알고리즘을 결정합니다. 높은 복잡성 수준을 사용하려면 인코딩 및 디코딩에 더 많은 처리 능력이 필요합니다.
복잡성 설정을 지원하는 각 코덱은 IWMCodecInfo3::GetCodecProp 메서드를 사용하여 검색할 수 있는 다음 설정을 표시합니다.
설정 | Description |
---|---|
g_wszComplexityMax | 코덱에서 지원하는 최대 품질 수준입니다. |
g_wszComplexityOffline | 오프라인 재생을 위해 제안된 품질 수준입니다. |
g_wszComplexityLive | 스트리밍 재생에 대해 제안된 품질 수준입니다. |
프로필에서 비디오 스트림의 복잡성을 설정하려면 속성 g_wszComplexity 사용하여 IWMPropertyVault::SetProperty 메서드를 사용합니다. 설정한 값은 코덱에 대해 지원되는 최대 복잡성보다 작거나 같아야 합니다.
관련 항목