다음을 통해 공유


비디오 스트림 구성

비디오 스트림은 오디오 스트림보다 구성에서 더 유연합니다. 이는 비디오를 구성하는 프레임의 속성이 파일마다 크게 다를 수 있기 때문입니다. 사용 중인 코덱의 코덱 형식을 검색할 때 비디오 스트림 구성 개체에 대해 다음 값을 설정해야 합니다.

설명
비트 전송률: 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 메서드를 사용합니다. 설정한 값은 코덱에 대해 지원되는 최대 복잡성보다 작거나 같아야 합니다.

모든 스트림에 공통 구성

스트림 구성

비디오 복잡성 설정