Codificatore video MICROSOFT MPEG-2
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il filtro del codificatore video MICROSOFT MPEG-2 codifica MPEG-2 e MPEG-1.
Per codificare e trasmettere audio/video multiplex, usare il filtro Codificatore MPEG-2 Microsoft , che incapsula le funzioni di questo filtro e il filtro codificatore audio Microsoft MPEG-2 .
Nota
Questo filtro non è supportato nelle piattaforme basate su IA-64.
Filtra informazioni
Interfacce di filtro
IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder
Tipi di supporti pin di input
MEDIATYPE_Video, MEDIASUBTYPE_I420
MEDIATYPE_Video, MEDIASUBTYPE_IYUV
MEDIATYPE_Video, MEDIASUBTYPE_RGB24
MEDIATYPE_Video, MEDIASUBTYPE_UYVY
MEDIATYPE_Video, MEDIASUBTYPE_YUY2
MEDIATYPE_Video, MEDIASUBTYPE_YV12
Interfacce pin di input
IMemInputPin
IPin
IQualityControl
Tipi di supporti di pin di output
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO
Interfacce pin di output
IMediaSeeking
IPin
IQualityControl
Filtro CLSID
CLSID_CMPEG2EncoderVideoDS (dichiarato in wmcodecdsp.h)
File eseguibile
msmpeg2enc.dll
MERIT_DO_NOT_USE
CLSID_LegacyAmFilterCategory
Commenti
Il codificatore video MPEG-2 può produrre i tipi di output seguenti:
- Flusso elementare video
- Video in un flusso di programmi MPEG-2
- Video in un flusso di trasporto MPEG-2
Supporta i profili e i livelli MPEG-2 seguenti:
Profilo | Livelli | Commenti |
---|---|---|
Profilo semplice | Principale | |
Main Profile | Basso, Main, High, High-1440 | |
Alto profilo | Main, High, High-1440 | Nessuna scalabilità o supporto 4:2:2/4:4:4 (solo 4:2:0) |
Profilo 4:2:2 | Main, High | Nessuna scalabilità o supporto 4:2:2 (solo 4:2:0) |
Proprietà codec
Il filtro supporta le proprietà seguenti tramite ICodecAPI.
Proprietà | Predefinito | Valori supportati |
---|---|---|
AVEncCodecType | Video MPEG-2 |
CODECAPI_GUID_AVEncMPEG1Video CODECAPI_GUID_AVEncMPEG2Video |
AVEncCommonBufferInLevel | bit 12222464 | |
AVEncCommonBufferOutLevel | bit 12222464 | |
AVEncCommonBufferSize | bit 12222464 | |
AVEncCommonFormatConstraint | Non specificata |
CODECAPI_GUID_AVEncCommonFormatUnSpecified (nessun vincolo di formato) CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Video) CODECAPI_GUID_AVEncCommonFormatVCD (CD video) |
AVEncCommonMaxBitRate | 9800000 (9,8 Mbits/secondo) | |
AVEncCommonMeanBitRate | 70000000 (7,0 Mbits/secondo) | |
AVEncCommonMinBitRate | 128 | |
AVEncCommonMultipassMode | 1 | 1 |
AVEncCommonQuality | 100 | 1 — 100 |
AVEncCommonQualityVsSpeed | 75 | 0 — 100 |
AVEncCommonRateControlMode | CBR |
eAVEncCommonRateControlMode_CBR eAVEncCommonRateControlMode_PeakConstrainedVBR eAVEncCommonRateControlMode_Quality |
AVEncInputVideoSystem | Non specificata | eAVEncInputVideoSystem_Unspecified eAVEncInputVideoSystem_PAL eAVEncInputVideoSystem_NTSC |
AVEncMPVDefaultBPictureCount | 2 | 0 — 2 |
AVEncMPVFrameFieldMode | Modalità cornice | |
AVEncMPVGenerateHeaderSeqDispExt | TRUE | |
AVEncMPVGenerateHeaderSeqExt | TRUE | |
AVEncMPVGOPOpen | FALSE | |
AVEncMPVGOPSInSeq | 1 | 0 — 1 |
AVEncMPVGOPSize | 18 fotogrammi (36 campi) per NTSC; 15 fotogrammi (30 campi) in caso contrario. | 1 — 30; vedere la sezione Osservazioni |
AVEncMPVIntraDCPrecision | 9 | 8 — 10 |
AVEncMPVLevel | Alto | |
AVEncMPVProfile | Principale | |
AVEncVideoDefaultUpperFieldDominant | TRUE | |
AVEncVideoForceSourceScanType | Interlaced |
eAVEncVideoSourceScan_Interlaced eAVEncVideoSourceScan_Progressive |
AVEncVideoInputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoInputChromaSubsampling | Uguale all'origine | |
AVEncVideoInputColorNominalRange | Uguale all'origine | |
AVEncVideoInputColorPrimaries | Uguale all'origine | |
AVEncVideoInputColorTransferFunction | Uguale all'origine | |
AVEncVideoInputColorTransferMatrix | Uguale all'origine | |
AVEncVideoMaxKeyframeDistance | AVEncMPVGOPSize - 1 | 0 o AVEncMPVGOPSize - 1 |
AVEncVideoNoOfFieldsToEncode | 0 | |
AVEncVideoOutputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoOutputFrameRate | Deve essere uguale alla frequenza dei fotogrammi di input. | |
AVEncVideoOutputScanType | Uguale all'input | eAVEncVideoOutputScan_SameAsInput |
AVEncVideoPixelAspectRatio | 1:1 |
È consigliabile impostare le proprietà nell'ordine seguente:
Impostare le proprietà rimanenti in qualsiasi ordine. Vedere tuttavia la struttura GOP.
È possibile impostare le proprietà durante l'esecuzione del grafico dei filtri. Si verifica un ritardo di almeno un GOP prima che le nuove impostazioni vengano applicate.
Operazione codificatore
Quando si codifica il video MPEG-1, il codificatore imposta automaticamente il codice constrained_parameters_flag a 1 bit nell'intestazione della sequenza se vengono soddisfatti tutti i vincoli.
Se necessario, il codificatore arrotonda le dimensioni video di input in modo che le dimensioni video di output corrispondano ai requisiti MPEG. Per il video progressivo, le dimensioni di output vengono arrotondate a un multiplo di 16 in larghezza e altezza. Per il video interlacciato, la larghezza viene arrotondata a un multiplo di 16 e l'altezza viene arrotondata fino a un multiplo di 32. Questa operazione di arrotondamento usa la spaziatura interna in base alle esigenze.
Se il video è interlacciato, il codificatore esegue il rilevamento automatico della telecine (3:2). Il video di input può contenere coppie di immagini di campo, oltre ai fotogrammi interlacciati.
Il formato interno del codificatore è 4:2:0 IYUV (identico a I420). Può eseguire la conversione dei colori dai formati video YUY2, YV12, UYVY e RGB-24.
Per vincolare il bitstream a un formato di destinazione (DVD o VCD), impostare la proprietà AVEncCommonFormatConstraint . Se questa proprietà ha un valore diverso da GUID_AVEncCommonFormatUnSpecified, il codificatore limita la sintassi MPEG a quella consentita dal formato di destinazione.
Per la codifica live, impostare la proprietà AVEncCommonQualityVsSpeed su zero. In questo modo il codificatore ottimizza la velocità.
Modalità di codifica
Il codificatore supporta diverse modalità di codifica:
- Velocità in bit costante a un passaggio (CBR).
- Velocità in bit variabile basata su una sola pass (VBR), usando una dimensione costante del quantizero. In questa modalità, il codificatore tenta di soddisfare un livello di qualità di destinazione, fino a una velocità massima di bit.
- VBR con vincoli di un solo passaggio. In questa modalità, il codificatore tenta di raggiungere una velocità media di bit di destinazione entro determinati limiti interni.
Per configurare la modalità di codifica, impostare le proprietà seguenti:
Mode | Proprietà |
---|---|
CBR |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR AVEncCommonQualityVsSpeed AVEncCommonMeanBitRate |
VBR basato sulla qualità |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality AVEncCommonQuality AVEncCommonMaxBitRate Nota: In questa modalità, le proprietà AVEncCommonMeanBitRate e AVEncCommonMinBitRate non vengono utilizzate. Si presuppone che la velocità minima in bit sia zero. |
VBR con vincoli di picco |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR AVEncCommonMultipassMode = 1 AVEncCommonMinBitRate AVEncCommonMaxBitRate AVEncCommonMeanBitRate |
Nota
VBR a due passaggi non è supportato.
Proporzioni
Le proporzioni di visualizzazione e le proporzioni pixel (PAR) sono correlate dalla formula seguente:
- Proporzioni di visualizzazione = × PAR (larghezza immagine/altezza immagine)
Il codificatore usa questa formula per calcolare il valore di pel_aspect_ratio per i flussi di bit MPEG-1 o aspect_ratio_information per i bitstream MPEG-2. (Vedere rispettivamente ISO/IEC 11172 e ISO/IEC 138181-2).
Il codificatore prova le impostazioni seguenti, in ordine:
- Se l'applicazione imposta la proprietà AVEncVideoPixelAspectRatio in qualsiasi momento prima dell'esecuzione del grafico del filtro, questa proprietà viene utilizzata per la par.
- In caso contrario, se i membri dwPictAspectRatioX e dwPictAspectRatioY della struttura VIDEOINFOHEADER2 sono diversi da zero, questi membri vengono utilizzati per le proporzioni della visualizzazione e la par viene calcolata dalle proporzioni della visualizzazione.
- Se nessuno di questi valori è presente, si presuppone che la par sia 1,0 e le proporzioni di visualizzazione vengono calcolate di conseguenza.
In modalità di codifica dinamica (AVEncCommonQualityVsSpeed uguale a zero), le proporzioni dello schermo devono essere 4:3 o 16:9, con un valore predefinito di 4:3. Se le proporzioni della visualizzazione calcolate non sono 4:3 o 16:9, il codificatore usa il valore 4:3.
Struttura GOP
Per specificare il gruppo di strutture dell'immagine (GOP), impostare le proprietà seguenti in ordine:
In base a queste impostazioni, il codificatore produce una delle strutture GOP seguenti:
AVEncVideoMaxKeyframeDistance | AVEncMPVDefaultBPictureCount | Struttura GOP |
---|---|---|
0 | 0 | IIII... |
AVEncMPVGOPSize - 1 | 0 | IPPP... |
AVEncMPVGOPSize - 1 | 1 | IBPBP... |
AVEncMPVGOPSize - 1 | 2 | IBBPBBP... |
La struttura GOP predefinita è IBBPBBP... con dimensioni GOP di 15 fotogrammi.
Se l'applicazione vincola il formato di destinazione a DVD (tramite la proprietà AVEncCommonFormatConstraint ) e imposta la proprietà AVEncInputVideoSystem su NTSC o PAL, il codificatore supporta le dimensioni GOP seguenti:
Video System | Dimensioni GOP valide | Dimensioni GOP predefinite |
---|---|---|
NTSC | 1-18 | 18 (36 campi) |
elenco di accesso alla pubblicazione | 1-15 | 15 (30 campi) |
Elenchi delle modifiche delle proprietà codec
L'impostazione del valore di una proprietà codec può modificare l'intervallo valido di un'altra proprietà. Ad esempio, vincolare il formato di destinazione limita la velocità media dei bit. Ogni volta che l'applicazione imposta una proprietà, il codificatore verifica se altre proprietà ora non rientrano nell'intervallo valido. In tal caso, il codificatore reimposta tale proprietà sul nuovo valore predefinito. Per ricevere notifiche in questo caso, eseguire le operazioni seguenti:
- Chiamare ICodecAPI::RegisterForEvent con il valore CODECAPI_CHANGELISTS.
- Usare l'interfaccia IMediaEventEx per monitorare gli eventi dal grafico del filtro.
- Se l'intervallo o il valore predefinito di una proprietà viene modificato, il codificatore invia un evento EC_CODECAPI_EVENT con un elenco di proprietà modificate.
Supporto di IEncoderAPI
Per la compatibilità con le versioni precedenti, il filtro supporta le proprietà seguenti tramite l'interfaccia IEncoderAPI :
Proprietà | Descrizione |
---|---|
ENCAPIPARAM_BITRATE | Equivalente ad AVEncCommonMeanBitRate. |
ENCAPIPARAM_PEAK_BITRATE | Equivalente ad AVEncCommonMaxBitRate. |
ENCAPIPARAM_BITRATE_MODE | Equivalente ad AVEncCommonRateControlMode. |
Quando si imposta la proprietà ENCAPIPARAM_BITRATE_MODE , i valori vengono mappati come segue:
ENCAPIPARAM_BITRATE_MODE | AVEncCommonRateControlMode |
---|---|
ConstantBitRate | eAVEncCommonRateControlMode_CBR |
VariableBitRateAverage | Vedere la nota. |
VariableBitRatePeak | eAVEncCommonRateControlMode_PeakConstrainedVBR |
Nota
Attualmente, il codificatore video MPEG-2 non supporta la modalità di codifica VariableBitRateAverage . Se si imposta questo valore, per impostazione predefinita il codificatore viene impostato sulla codifica CBR (eAVEncCommonRateControlMode_CBR).
Quando si ottiene la proprietà ENCAPIPARAM_BITRATE_MODE , i valori vengono mappati nel modo seguente:
AVEncCommonRateControlMode | ENCAPIPARAM_BITRATE_MODE |
---|---|
eAVEncCommonRateControlMode_CBR | ConstantBitRate |
eAVEncCommonRateControlMode_Quality | VariableBitRatePeak |
eAVEncCommonRateControlMode_PeakConstrainedVBR | VariableBitRatePeak |
Limitazioni
Attualmente il codificatore non supporta alcuna delle funzionalità seguenti:
- Generazione di pacchetti di pacchetti di flusso elementare (PES).
- Conversione della frequenza dei fotogrammi. Il flusso di input deve avere una frequenza di fotogrammi valida per un bitstream MPEG-2.
- Estensioni a frequenza di frame per MPEG-2 (frame_rate_extension_n, frame_rate_extension_d).
- Posizioni del buffer di ingresso/uscita (VBV) per un clip.
- Inserimento di dati line-21 (informazioni sulla didascalia chiusa) nel flusso elementare video.
- Impostazione del campo di time_code a 25 bit nell'intestazione GOP per MPEG-2.
- Filtro Denoise.
- Digital rights management (DRM).
Il codificatore introduce una latenza di codifica di almeno un GOP.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate [solo app desktop] |
Server minimo supportato |
Nessuno supportato |
Intestazione |
|
Vedi anche