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

Merito

MERIT_DO_NOT_USE

Categoria filtro

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:

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

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:

  1. Se l'applicazione imposta la proprietà AVEncVideoPixelAspectRatio in qualsiasi momento prima dell'esecuzione del grafico del filtro, questa proprietà viene utilizzata per la par.
  2. 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.
  3. 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:

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

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:

  1. Chiamare ICodecAPI::RegisterForEvent con il valore CODECAPI_CHANGELISTS.
  2. Usare l'interfaccia IMediaEventEx per monitorare gli eventi dal grafico del filtro.
  3. 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
Wmcodecdsp.h

Vedi anche

Filtri DirectShow

Tipi di supporti MPEG-2 Demultiplexer