다음을 통해 공유


Microsoft MPEG-2 비디오 인코더

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

Microsoft MPEG-2 비디오 인코더 필터는 MPEG-2 및 MPEG-1 비디오를 인코딩합니다.

오디오/비디오 스트림을 인코딩하고 멀티플렉싱하려면 이 필터와 Microsoft MPEG-2 오디오 인코더 필터의 함수를 캡슐화하는 Microsoft MPEG-2 인코더 필터를 사용합니다.

참고

이 필터는 IA-64 기반 플랫폼에서 지원되지 않습니다.

 

필터 정보

필터 인터페이스

IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder

입력 핀 미디어 형식

MEDIATYPE_Video, MEDIASUBTYPE_I420
MEDIATYPE_Video, MEDIASUBTYPE_IYUV
MEDIATYPE_Video, MEDIASUBTYPE_RGB24
MEDIATYPE_Video, MEDIASUBTYPE_UYVY
MEDIATYPE_Video, MEDIASUBTYPE_YUY2
MEDIATYPE_Video, MEDIASUBTYPE_YV12

입력 핀 인터페이스

IMemInputPin
Ipin
IQualityControl

출력 핀 미디어 형식

MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO

출력 핀 인터페이스

IMediaSeeking
Ipin
IQualityControl

CLSID 필터링

CLSID_CMPEG2EncoderVideoDS (wmcodecdsp.h에서 선언됨)

실행 파일

msmpeg2enc.dll

장점

MERIT_DO_NOT_USE

필터 범주

CLSID_LegacyAmFilterCategory

 

설명

MPEG-2 비디오 인코더는 다음과 같은 종류의 출력을 생성할 수 있습니다.

  • 비디오 기본 스트림
  • MPEG-2 프로그램 스트림의 비디오
  • MPEG-2 전송 스트림의 비디오

다음 MPEG-2 프로필 및 수준을 지원합니다.

프로필 수준 설명
단순 프로필
기본 프로필 Low, Main, High, High-1440
높은 프로필 Main, High, High-1440 확장성 없음 또는 4:2:2/4:4:4 지원 없음(4:2:0만)
4:2:2 프로필 Main, High 확장성 없음 또는 4:2:2 지원 없음(4:2:0만)

 

코덱 속성

필터는 ICodecAPI를 통해 다음 속성을 지원합니다.

속성 기본값 지원 되는 값
AVEncCodecType MPEG-2 비디오 CODECAPI_GUID_AVEncMPEG1Video
CODECAPI_GUID_AVEncMPEG2Video
AVEncCommonBufferInLevel 12222464 비트
AVEncCommonBufferOutLevel 12222464 비트
AVEncCommonBufferSize 12222464 비트
AVEncCommonFormatConstraint Unspecified CODECAPI_GUID_AVEncCommonFormatUnSpecified (형식 제약 조건 없음)
CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-비디오)
CODECAPI_GUID_AVEncCommonFormatVCD (비디오 CD)
AVEncCommonMaxBitRate 9800000(9.8Mbits/초)
AVEncCommonMeanBitRate 7000000(7.0Mbits/초)
AVEncCommonMinBitRate 128
AVEncCommonMultipassMode 1 1
AVEncCommonQuality 100 1 — 100
AVEncCommonQualityVsSpeed 75 0 — 100
AVEncCommonRateControlMode Cbr eAVEncCommonRateControlMode_CBR
eAVEncCommonRateControlMode_PeakConstrainedVBR
eAVEncCommonRateControlMode_Quality
AVEncInputVideoSystem Unspecified eAVEncInputVideoSystem_Unspecified
eAVEncInputVideoSystem_PAL
eAVEncInputVideoSystem_NTSC
AVEncMPVDefaultBPictureCount 2 0 — 2
AVEncMPVFrameFieldMode 프레임 모드
AVEncMPVGenerateHeaderSeqDispExt TRUE
AVEncMPVGenerateHeaderSeqExt TRUE
AVEncMPVGOPOpen FALSE
AVEncMPVGOPSInSeq 1 0 — 1
AVEncMPVGOPSize NTSC용 18프레임(36개 필드) 그렇지 않으면 15프레임(30개 필드)입니다. 1 — 30; 설명 참조
AVEncMPVIntraDCPrecision 9 8 — 10
AVEncMPVLevel 높음
AVEncMPVProfile
AVEncVideoDefaultUpperFieldDominant TRUE
AVEncVideoForceSourceScanType Interlaced eAVEncVideoSourceScan_Interlaced
eAVEncVideoSourceScan_Progressive
AVEncVideoInputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoInputChromaSubsampling 원본과 동일
AVEncVideoInputColorNominalRange 원본과 동일
AVEncVideoInputColorPrimaries 원본과 동일
AVEncVideoInputColorTransferFunction 원본과 동일
AVEncVideoInputColorTransferMatrix 원본과 동일
AVEncVideoMaxKeyframeDistance AVEncMPVGOPSize - 1 0 또는 AVEncMPVGOPSize - 1
AVEncVideoNoOfFieldsToEncode 0
AVEncVideoOutputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoOutputFrameRate 입력 프레임 속도와 동일해야 합니다.
AVEncVideoOutputScanType 입력과 같음 eAVEncVideoOutputScan_SameAsInput
AVEncVideoPixelAspectRatio 1:1

 

속성을 다음 순서로 설정하는 것이 좋습니다.

  1. AVEncCommonFormatConstraint
  2. AVEncCodecType
  3. AVEncMPVProfile
  4. AVEncMPVLevel
  5. AVEncInputVideoSystem

나머지 속성을 순서대로 설정합니다. (그러나 GOP 구조를 참조하세요.)

필터 그래프가 실행되는 동안 속성을 설정할 수 있습니다. 새 설정이 적용되기 전에 하나 이상의 GOP가 지연됩니다.

인코더 작업

MPEG-1 비디오를 인코딩할 때 인코더는 모든 제약 조건이 충족되면 시퀀스 헤더에 1비트 constrained_parameters_flag 코드를 자동으로 설정합니다.

필요한 경우 인코더는 출력 비디오 차원이 MPEG 요구 사항과 일치할 수 있도록 입력 비디오 차원을 반올림합니다. 프로그레시브 비디오의 경우 출력 차원이 너비와 높이 모두에서 16의 배수로 반올림됩니다. 인터레이스 비디오의 경우 너비가 16의 배수로 반올림되고 높이가 32의 배수로 반올림됩니다. 이 반올림 작업은 필요에 따라 패딩을 사용합니다.

비디오가 인터레이스되는 경우 인코더는 자동 텔레신(3:2 풀다운) 검색을 수행합니다. 입력 비디오에는 인터레이스된 프레임 외에도 필드 그림 쌍이 포함될 수 있습니다.

인코더의 내부 형식은 4:2:0 IYUV(I420과 동일)입니다. YUY2, YV12, UYVY 및 RGB-24 비디오 형식에서 색 변환을 수행할 수 있습니다.

비트스트림을 대상 형식(DVD 또는 VCD)으로 제한하려면 AVEncCommonFormatConstraint 속성을 설정합니다. 이 속성에 GUID_AVEncCommonFormatUnSpecified 이외의 값이 있는 경우 인코더는 MPEG 구문을 대상 형식에서 허용하는 값으로 제한합니다.

라이브 인코딩의 경우 AVEncCommonQualityVsSpeed 속성을 0으로 설정합니다. 이로 인해 인코더가 속도를 최적화합니다.

인코딩 모드

인코더는 다음과 같은 여러 인코딩 모드를 지원합니다.

  • CBR(원패스 상수 비트 전송률).
  • 상수 수량자 단계 크기를 사용하는 원패스 품질 기반 VBR(가변 비트 속도)입니다. 이 모드에서 인코더는 최대 비트 속도까지 대상 품질 수준을 충족하려고 시도합니다.
  • 원패스 피크 제한 VBR. 이 모드에서 인코더는 특정 내부 제한 내에서 대상 평균 비트 속도를 달성하려고 시도합니다.

인코딩 모드를 구성하려면 다음 속성을 설정합니다.

Mode 속성
Cbr AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR
AVEncCommonQualityVsSpeed
AVEncCommonMeanBitRate
품질 기반 VBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
AVEncCommonQuality
AVEncCommonMaxBitRate
참고: 이 모드에서는 AVEncCommonMeanBitRateAVEncCommonMinBitRate 속성이 사용되지 않습니다. 최소 비트 속도는 0으로 간주됩니다.
최대 제한 VBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR
AVEncCommonMultipassMode = 1
AVEncCommonMinBitRate
AVEncCommonMaxBitRate
AVEncCommonMeanBitRate

 

참고

2단계 VBR은 지원되지 않습니다.

 

가로 세로 비율

표시 가로 세로 비율 및 PAR(픽셀 가로 세로 비율)은 다음 수식과 관련이 있습니다.

가로 세로 비율 = PAR ×(그림 너비/그림 높이)

인코더는 이 수식을 사용하여 MPEG-1 비트스트림의 pel_aspect_ratio 값을 계산하거나 MPEG-2 비트스트림의 aspect_ratio_information 계산합니다. (ISO/IEC 11172 및 ISO/IEC 138181-2를 각각 참조하세요.)

인코더는 순서대로 다음 설정을 시도합니다.

  1. 애플리케이션이 필터 그래프가 실행되기 전에 언제든지 AVEncVideoPixelAspectRatio 속성을 설정하는 경우 이 속성은 PAR에 사용됩니다.
  2. 그렇지 않으면 VIDEOINFOHEADER2 구조체의 dwPictAspectRatioXdwPictAspectRatioY 멤버가 0이 아닌 경우 이러한 멤버는 표시 가로 세로 비율에 사용되며 PAR은 표시 가로 세로 비율에서 계산됩니다.
  3. 이러한 값이 없는 경우 PAR은 1.0으로 간주되며 그에 따라 표시 가로 세로 비율이 계산됩니다.

라이브 인코딩 모드(AVEncCommonQualityVsSpeed 가 0과 같음)에서는 표시 가로 세로 비율이 4:3 또는 16:9여야 하며 기본값은 4:3이어야 합니다. 계산된 디스플레이 가로 세로 비율이 4:3 또는 16:9가 아닌 경우 인코더는 값 4:3을 사용합니다.

GOP 구조체

그림 그룹(GOP) 구조를 지정하려면 다음 속성을 순서대로 설정합니다.

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

이러한 설정에 따라 인코더는 다음 GOP 구조 중 하나를 생성합니다.

AVEncVideoMaxKeyframeDistance AVEncMPVDefaultBPictureCount GOP 구조체
0 0 IIII...
AVEncMPVGOPSize - 1 0 IPPP...
AVEncMPVGOPSize - 1 1 IBPBP...
AVEncMPVGOPSize - 1 2 IBBPBBP...

 

기본 GOP 구조는 IBBPBBP... GOP 크기가 15프레인 경우

애플리케이션이 대상 형식을 DVD로 제한하고( AVEncCommonFormatConstraint 속성을 통해) AVEncInputVideoSystem 속성을 NTSC 또는 PAL로 설정하는 경우 인코더는 다음 GOP 크기를 지원합니다.

비디오 시스템 유효한 GOP 크기 기본 GOP 크기
Ntsc 1-18 18개(36개 필드)
PAL 1-15 15개(필드 30개)

 

코덱 속성 변경 목록

한 코덱 속성의 값을 설정하면 다른 속성의 유효한 범위가 변경됩니다. 예를 들어 대상 형식을 제한하면 평균 비트 속도가 제한됩니다. 애플리케이션이 속성을 설정하면 인코더는 이제 다른 속성이 유효한 범위를 벗어나는지 확인합니다. 이 경우 인코더는 해당 속성을 새 기본값으로 다시 설정합니다. 이 경우 알림을 받으려면 다음을 수행합니다.

  1. 값 CODECAPI_CHANGELISTSICodecAPI::RegisterForEvent를 호출합니다.
  2. IMediaEventEx 인터페이스를 사용하여 필터 그래프의 이벤트를 모니터링합니다.
  3. 속성의 범위 또는 기본값이 변경되면 인코더는 변경된 속성 목록이 포함된 EC_CODECAPI_EVENT 이벤트를 보냅니다.

IEncoderAPI 지원

이전 버전과의 호환성을 위해 필터는 IEncoderAPI 인터페이스를 통해 다음 속성을 지원합니다.

속성 설명
ENCAPIPARAM_BITRATE AVEncCommonMeanBitRate에 해당합니다.
ENCAPIPARAM_PEAK_BITRATE AVEncCommonMaxBitRate에 해당합니다.
ENCAPIPARAM_BITRATE_MODE AVEncCommonRateControlMode에 해당합니다.

 

ENCAPIPARAM_BITRATE_MODE 속성을 설정할 때 값은 다음과 같이 매핑됩니다.

ENCAPIPARAM_BITRATE_MODE AVEncCommonRateControlMode
ConstantBitRate eAVEncCommonRateControlMode_CBR
VariableBitRateAverage 참고를 참조하십시오.
VariableBitRatePeak eAVEncCommonRateControlMode_PeakConstrainedVBR

 

참고

현재 MPEG-2 비디오 인코더는 VariableBitRateAverage 인코딩 모드를 지원하지 않습니다. 이 값을 설정하면 인코더가 기본적으로 CBR 인코딩(eAVEncCommonRateControlMode_CBR)으로 설정됩니다.

 

ENCAPIPARAM_BITRATE_MODE 속성을 가져올 때 값은 다음과 같이 매핑됩니다.

AVEncCommonRateControlMode ENCAPIPARAM_BITRATE_MODE
eAVEncCommonRateControlMode_CBR ConstantBitRate
eAVEncCommonRateControlMode_Quality VariableBitRatePeak
eAVEncCommonRateControlMode_PeakConstrainedVBR VariableBitRatePeak

 

제한 사항

현재 인코더는 다음 기능을 지원하지 않습니다.

  • 패킷화된 PES(기본 스트림) 패킷 생성
  • 프레임 속도 변환. 입력 스트림에는 MPEG-2 비트스트림에 유효한 프레임 속도가 있어야 합니다.
  • MPEG-2(frame_rate_extension_n, frame_rate_extension_d)에 대한 프레임 속도 확장입니다.
  • 클립의 VBV(진입/종료 버퍼) 위치입니다.
  • 비디오 기본 스트림에 줄 21 데이터(선택 자막 정보)를 삽입합니다.
  • MPEG-2에 대한 GOP 헤더에서 25비트 time_code 필드 설정
  • Denoise 필터.
  • DRM(디지털 권한 관리).

인코더는 하나 이상의 GOP 인코딩 대기 시간을 도입합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate [데스크톱 앱만 해당]
지원되는 최소 서버
지원되는 버전 없음
헤더
Wmcodecdsp.h

추가 정보

DirectShow 필터

MPEG-2 Demultiplexer 미디어 형식