Codificador de vídeo MPEG-2 de Microsoft
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El filtro Codificador de vídeo MPEG-2 de Microsoft codifica el vídeo MPEG-2 y MPEG-1.
Para codificar y multiplex secuencias de audio/vídeo, use el filtro Codificador MPEG-2 de Microsoft , que encapsula las funciones de este filtro y del filtro Codificador de audio MPEG-2 de Microsoft .
Nota:
Este filtro no se admite en plataformas basadas en IA-64.
Información de filtro
Interfaces de filtro
IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder
Tipos de medios de anclaje de entrada
MEDIATYPE_Video, MEDIASUBTYPE_I420
MEDIATYPE_Video, MEDIASUBTYPE_IYUV
MEDIATYPE_Video, MEDIASUBTYPE_RGB24
MEDIATYPE_Video, MEDIASUBTYPE_UYVY
MEDIATYPE_Video, MEDIASUBTYPE_YUY2
MEDIATYPE_Video, MEDIASUBTYPE_YV12
Interfaces de patilla de entrada
IMemInputPin
Ipin
IQualityControl
Tipos de medios de anclaje de salida
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO
Interfaces de pin de salida
IMediaSeeking
Ipin
IQualityControl
Filtrar CLSID
CLSID_CMPEG2EncoderVideoDS (declarado en wmcodecdsp.h)
Ejecutable
msmpeg2enc.dll
MERIT_DO_NOT_USE
CLSID_LegacyAmFilterCategory
Comentarios
Mpeg-2 Video Encoder puede producir los siguientes tipos de salida:
- Secuencia elemental de vídeo
- Vídeo en una secuencia de programa MPEG-2
- Vídeo en una secuencia de transporte MPEG-2
Admite los siguientes perfiles y niveles MPEG-2:
Perfil | Niveles | Comentarios |
---|---|---|
Perfil simple | Método Main | |
Perfil Main | Bajo, Principal, Alto, Alto-1440 | |
Perfil alto | Main, High, High-1440 | Sin escalabilidad ni compatibilidad con 4:2:2/4:4:4 (solo 4:2:0) |
4:2:2 Perfil | Main, High | Sin escalabilidad ni compatibilidad con 4:2:2 (solo 4:2:0) |
Propiedades de códec
El filtro admite las siguientes propiedades a través de ICodecAPI.
Propiedad | Valor predeterminado | Valores admitidos |
---|---|---|
AVEncCodecType | Vídeo MPEG-2 |
CODECAPI_GUID_AVEncMPEG1Video CODECAPI_GUID_AVEncMPEG2Video |
AVEncCommonBufferInLevel | bits de 12222464 | |
AVEncCommonBufferOutLevel | bits de 12222464 | |
AVEncCommonBufferSize | bits de 12222464 | |
AVEncCommonFormatConstraint | Sin especificar |
CODECAPI_GUID_AVEncCommonFormatUnSpecified (sin restricción de formato) CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Video) CODECAPI_GUID_AVEncCommonFormatVCD (CD de vídeo) |
AVEncCommonMaxBitRate | 9800000 (9,8 Mbits/segundo) | |
AVEncCommonMeanBitRate | 7000000 (7,0 Mbits/segundo) | |
AVEncCommonMinBitRate | 128 | |
AVEncCommonMultipassMode | 1 | 1 |
AVEncCommonQuality | 100 | 1 — 100 |
AVEncCommonQualityVsSpeed | 75 | 0 — 100 |
AVEncCommonRateControlMode | CBR |
eAVEncCommonRateControlMode_CBR eAVEncCommonRateControlMode_PeakConstrainedVBR eAVEncCommonRateControlMode_Quality |
AVEncInputVideoSystem | Sin especificar | eAVEncInputVideoSystem_Unspecified eAVEncInputVideoSystem_PAL eAVEncInputVideoSystem_NTSC |
AVEncMPVDefaultBPictureCount | 2 | 0 — 2 |
AVEncMPVFrameFieldMode | Modo marco | |
AVEncMPVGenerateHeaderSeqDispExt | TRUE | |
AVEncMPVGenerateHeaderSeqExt | TRUE | |
AVEncMPVGOPOpen | FALSE | |
AVEncMPVGOPSInSeq | 1 | 0 — 1 |
AVEncMPVGOPSize | 18 fotogramas (36 campos) para NTSC; De lo contrario, 15 fotogramas (30 campos). | 1 — 30; ver comentarios |
AVEncMPVIntraDCPrecision | 9 | 8 — 10 |
AVEncMPVLevel | Alto | |
AVEncMPVProfile | Método Main | |
AVEncVideoDefaultUpperFieldDominant | TRUE | |
AVEncVideoForceSourceScanType | Interlaced |
eAVEncVideoSourceScan_Interlaced eAVEncVideoSourceScan_Progressive |
AVEncVideoInputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoInputChromaSubsampling | Igual que el origen | |
AVEncVideoInputColorNominalRange | Igual que el origen | |
AVEncVideoInputColorPrimaries | Igual que el origen | |
AVEncVideoInputColorTransferFunction | Igual que el origen | |
AVEncVideoInputColorTransferMatrix | Igual que el origen | |
AVEncVideoMaxKeyframeDistance | AVEncMPVGOPSize : 1 | 0 o AVEncMPVGOPSize - 1 |
AVEncVideoNoOfFieldsToEncode | 0 | |
AVEncVideoOutputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoOutputFrameRate | Debe ser igual que la velocidad de fotogramas de entrada. | |
AVEncVideoOutputScanType | Igual que la entrada | eAVEncVideoOutputScan_SameAsInput |
AVEncVideoPixelAspectRatio | 1:1 |
Se recomienda establecer propiedades en el orden siguiente:
Establezca las propiedades restantes en cualquier orden. (Sin embargo, consulte Estructura GOP).
Es posible establecer propiedades mientras se ejecuta el grafo de filtro. Hay un retraso de al menos un GOP antes de que la nueva configuración surta efecto.
Operación de codificador
Al codificar vídeo MPEG-1, el codificador establece automáticamente el código de constrained_parameters_flag de 1 bits en el encabezado de secuencia si se cumplen todas las restricciones.
Si es necesario, el codificador redondea las dimensiones de vídeo de entrada para que las dimensiones de vídeo de salida coincidan con los requisitos MPEG. En el caso del vídeo progresivo, las dimensiones de salida se redondean hasta un múltiplo de 16 en ancho y alto. En el caso del vídeo entrelazado, el ancho se redondea hasta un múltiplo de 16 y el alto se redondea hasta un múltiplo de 32. Esta operación de redondeo usa relleno según sea necesario.
Si el vídeo está entrelazado, el codificador realiza la detección automática de telecines (3:2 de extracción). El vídeo de entrada puede contener pares de imágenes de campo, además de fotogramas entrelazados.
El formato interno del codificador es 4:2:0 IYUV (idéntico a I420). Puede realizar la conversión de color desde formatos de vídeo YUY2, YV12, UYVY y RGB-24.
Para restringir la secuencia de bits a un formato de destino (DVD o VCD), establezca la propiedad AVEncCommonFormatConstraint . Si esta propiedad tiene un valor distinto de GUID_AVEncCommonFormatUnSpecified, el codificador limita la sintaxis MPEG a la permitida por el formato de destino.
Para la codificación en directo, establezca la propiedad AVEncCommonQualityVsSpeed en cero. Esto hace que el codificador optimice la velocidad.
Modos de codificación
El codificador admite varios modos de codificación:
- Velocidad de bits constante de un paso (CBR).
- Velocidad de bits variable basada en calidad de un paso (VBR), con un tamaño de paso de cuantificador constante. En este modo, el codificador intenta satisfacer un nivel de calidad de destino, hasta una velocidad de bits máxima.
- VBR con restricción máxima de un paso. En este modo, el codificador intenta lograr una velocidad de bits media de destino dentro de determinados límites internos.
Para configurar el modo de codificación, establezca las siguientes propiedades:
Mode | Propiedades |
---|---|
CBR |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR AVEncCommonQualityVsSpeed AVEncCommonMeanBitRate |
VBR basado en calidad |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality AVEncCommonQuality AVEncCommonMaxBitRate Nota: En este modo, no se usan las propiedades AVEncCommonMeanBitRate y AVEncCommonMinBitRate . Se supone que la velocidad de bits mínima es cero. |
VBR con restricción máxima |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR AVEncCommonMultipassMode = 1 AVEncCommonMinBitRate AVEncCommonMaxBitRate AVEncCommonMeanBitRate |
Nota:
No se admite VBR de dos pasos.
Relación de aspecto
La relación de aspecto de la pantalla y la relación de aspecto de píxeles (PAR) están relacionadas con la fórmula siguiente:
- Relación de aspecto de pantalla = PAR × (ancho de imagen/ alto de imagen)
El codificador usa esta fórmula para calcular el valor de pel_aspect_ratio para secuencias de bits MPEG-1 o aspect_ratio_information para secuencias de bits MPEG-2. (Véase ISO/IEC 11172 e ISO/IEC 138181-2, respectivamente).
El codificador intenta la siguiente configuración, en orden:
- Si la aplicación establece la propiedad AVEncVideoPixelAspectRatio en cualquier momento antes de que se ejecute el grafo de filtro, esta propiedad se usa para el PAR.
- De lo contrario, si los miembros dwPictAspectRatioX y dwPictAspectRatioY de la estructura VIDEOINFOHEADER2 no son cero, estos miembros se usan para la relación de aspecto de la pantalla y el PAR se calcula a partir de la relación de aspecto de la pantalla.
- Si ninguno de estos valores está presente, se supone que par es 1,0 y la relación de aspecto de presentación se calcula en consecuencia.
En el modo de codificación en directo (AVEncCommonQualityVsSpeed igual a cero), la relación de aspecto de la pantalla debe ser 4:3 o 16:9, con un valor predeterminado de 4:3. Si la relación de aspecto de visualización calculada no es 4:3 o 16:9, el codificador usa el valor 4:3.
Estructura GOP
Para especificar el grupo de estructura de imagen (GOP), establezca las siguientes propiedades en orden:
En función de esta configuración, el codificador genera una de las siguientes estructuras GOP:
AVEncVideoMaxKeyframeDistance | AVEncMPVDefaultBPictureCount | Estructura GOP |
---|---|---|
0 | 0 | IIII... |
AVEncMPVGOPSize - 1 | 0 | IPPP... |
AVEncMPVGOPSize - 1 | 1 | IBPBP... |
AVEncMPVGOPSize - 1 | 2 | IBBPBBP... |
La estructura GOP predeterminada es IBBPBBP... con un tamaño GOP de 15 fotogramas.
Si la aplicación restringe el formato de destino a DVD (a través de la propiedad AVEncCommonFormatConstraint ) y establece la propiedad AVEncInputVideoSystem en NTSC o PAL, el codificador admite los siguientes tamaños GOP:
Sistema de vídeo | Tamaños gop válidos | Tamaño predeterminado de GOP |
---|---|---|
NTSC | 1-18 | 18 (36 campos) |
PAL | 1-15 | 15 (30 campos) |
Listas de cambios de propiedades de códec
Establecer el valor de una propiedad de códec puede cambiar el intervalo válido de otra propiedad. (Por ejemplo, restringir el formato de destino restringe la velocidad de bits promedio). Cada vez que la aplicación establece una propiedad, el codificador comprueba si alguna otra propiedad se encuentra fuera de su intervalo válido. Si es así, el codificador restablece esa propiedad a su nuevo valor predeterminado. Para recibir notificaciones cuando esto ocurra, haga lo siguiente:
- Llame a ICodecAPI::RegisterForEvent con el valor CODECAPI_CHANGELISTS.
- Use la interfaz IMediaEventEx para supervisar los eventos del gráfico de filtros.
- Si cambia el intervalo o el valor predeterminado de una propiedad, el codificador envía un evento EC_CODECAPI_EVENT con una lista de propiedades modificadas.
Compatibilidad con IEncoderAPI
Por motivos de compatibilidad con versiones anteriores, el filtro admite las siguientes propiedades a través de la interfaz IEncoderAPI :
Propiedad | Descripción |
---|---|
ENCAPIPARAM_BITRATE | Equivalente a AVEncCommonMeanBitRate. |
ENCAPIPARAM_PEAK_BITRATE | Equivalente a AVEncCommonMaxBitRate. |
ENCAPIPARAM_BITRATE_MODE | Equivalente a AVEncCommonRateControlMode. |
Al establecer la propiedad ENCAPIPARAM_BITRATE_MODE , los valores se asignan de la siguiente manera:
ENCAPIPARAM_BITRATE_MODE | AVEncCommonRateControlMode |
---|---|
ConstantBitRate | eAVEncCommonRateControlMode_CBR |
VariableBitRateAverage | Vea la Nota. |
VariableBitRatePeak | eAVEncCommonRateControlMode_PeakConstrainedVBR |
Nota:
Actualmente, el codificador de vídeo MPEG-2 no admite el modo de codificación VariableBitRateAverage . Si establece este valor, el codificador tiene como valor predeterminado codificación CBR (eAVEncCommonRateControlMode_CBR).
Al obtener la propiedad ENCAPIPARAM_BITRATE_MODE , los valores se asignan de la siguiente manera:
AVEncCommonRateControlMode | ENCAPIPARAM_BITRATE_MODE |
---|---|
eAVEncCommonRateControlMode_CBR | ConstantBitRate |
eAVEncCommonRateControlMode_Quality | VariableBitRatePeak |
eAVEncCommonRateControlMode_PeakConstrainedVBR | VariableBitRatePeak |
Limitaciones
Actualmente, el codificador no admite ninguna de las siguientes características:
- Generación de paquetes de flujo elemental (PES) en paquetes.
- Conversión de velocidad de fotogramas. La secuencia de entrada debe tener una velocidad de fotogramas válida para una secuencia de bits MPEG-2.
- Extensiones de velocidad de fotogramas para MPEG-2 (frame_rate_extension_n, frame_rate_extension_d).
- Posiciones de búfer de entrada y salida (VBV) para un clip.
- Inserción de datos de línea 21 (información de subtítulos) en la secuencia elemental de vídeo.
- Establecer el campo de time_code de 25 bits en el encabezado GOP para MPEG-2.
- Desnoise filter.
- Administración de derechos digitales (DRM).
El codificador presenta una latencia de codificación de al menos un GOP.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
No se admite ninguno |
Encabezado |
|
Consulte también