Decodificatore video H.264
Il decodificatore video di Media Foundation H.264 è una trasformazione Media Foundation che supporta la decodifica dei profili Baseline, Main e High, fino al livello 5.1.
Il decodificatore video H.264 espone le interfacce seguenti.
- ICodecAPI (supportato in Windows 8)
- FMGetService
- FMQualityAdvise
- FMQualityAdvise2
- FMRateControl
- FMRateSupport
- FMRealTimeClient
- FMTransform
Per creare un'istanza del decodificatore, eseguire una delle operazioni seguenti:
- Chiamare la funzione MFTEnum o MFTEnumEx .
- Chiamare CoCreateInstance. CLSID per il decodificatore è CLSID_CMSH264DecoderMFT, dichiarato in wmcodecdsp.h.
Tipi di input
Il tipo di input deve contenere almeno i due attributi seguenti:
Attributo | Descrizione |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 o MFVideoFormat_H264_ES |
Se il tipo di input contiene solo questi due attributi, il decodificatore offrirà un tipo di output predefinito, che funge da segnaposto. Quando il decodificatore riceve esempi di input sufficienti per produrre un frame di output, segnala una modifica del formato restituendo MF_E_TRANSFORM_STREAM_CHANGE da FMTransform::P rocessOutput. Per informazioni dettagliate sulla gestione delle modifiche del formato, vedere la documentazione di ProcessOutput .
Per evitare una modifica del formato iniziale, specificare quanto più informazioni possibile nel tipo di input, tra cui:
Attributo | Descrizione |
---|---|
MF_MT_FRAME_RATE | Frequenza dei fotogrammi. |
MF_MT_FRAME_SIZE | Dimensioni fotogramma. |
MF_MT_INTERLACE_MODE | Modalità interlace.
Nota: Nel video H.264 la struttura interlace può cambiare dinamicamente, quindi il valore consigliato di questo attributo è MFVideoInterlace_MixedInterlaceOrProgressive. Le informazioni interlace nel flusso elementare video hanno la precedenza sul tipo di supporto. Per altre informazioni, vedere Interlacing video. |
MF_MT_PIXEL_ASPECT_RATIO | Proporzioni pixel. |
Il tipo di input deve essere impostato prima del tipo di output. Fino a quando non viene impostato il tipo di input, il metodo FMTransform::SetOutputType restituisce MF_E_TRANSFORM_TYPE_NOT_SET.
Tipi di output
Il decodificatore supporta i seguenti sottotipi di output:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Per altre informazioni su questi sottotipi, vedere GUID del sottotipo video.
Attributi di trasformazione
Il decodificatore H.264 implementa il metodo FMTransform::GetAttributes . Le applicazioni possono usare questo metodo per ottenere o impostare gli attributi seguenti.
Attributo | Descrizione |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Abilita o disabilita l'accelerazione hardware. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Abilita o disabilita la modalità di generazione delle anteprime. |
MF_SA_D3D_AWARE | Indica che il decodificatore supporta l'accelerazione video DirectX (DXVA). Trattare come di sola lettura. |
In Windows 8 il decodificatore H.264 supporta anche gli attributi seguenti.
Attributo | Descrizione |
---|---|
CODECAPI_AVLowLatencyMode | Abilita o disabilita la decodifica a bassa latenza. |
CODECAPI_AVDecNumWorkerThreads | Imposta il numero di thread di lavoro usati dal decodificatore. |
CODECAPI_AVDecVideoMaxCodedWidth | Imposta la larghezza massima dell'immagine accettata dal decodificatore come tipo di input. |
CODECAPI_AVDecVideoMaxCodedHeight | Imposta l'altezza massima dell'immagine accettata dal decodificatore come tipo di input. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Specifica il numero massimo di esempi di output. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Specifica se un decodificatore espone i tipi di output IYUV/I420 (adatti per la transcodatura) prima di altri formati. |
In Windows 8 il decodificatore H.264 supporta l'interfaccia ICodecAPI . Questa interfaccia fornisce un'API alternativa per impostare le proprietà del codec seguenti.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Vincoli di formato
Il decodificatore supporta i formati seguenti:
Impostazione | Formato |
---|---|
Profili/livelli | Profili di base, Main e High, fino al livello 5.1. Per informazioni dettagliate, vedere la specifica ITU-T H.264. |
Formati di Chroma | 4:2:0 chroma o monocromia |
Risoluzione minima | 48 × 48 pixel |
Risoluzione massima | 4096 × 2304 pixel La risoluzione massima garantita per l'accelerazione DXVA è 1920 × 1088 pixel; a risoluzioni superiori, la decodifica viene eseguita con DXVA, se è supportata dall'hardware sottostante, in caso contrario, la decodifica viene eseguita con il software. Nota: In Windows 7, la risoluzione massima supportata è 1920 × 1088 pixel per la decodifica sia del software che della DXVA. |
DXVA | Il decodificatore supporta DXVA versione 2, ma non DXVA versione 1. La decodifica DXVA è supportata solo per baseline, main e flussi di bit con profilo elevato compatibili con main. I flussi di bit baseline compatibili con i principali sono definiti come profile_idc=66 e constrained_set1_flag=1. |
I dati di input devono essere conformi all'allegato B di ISO/IEC 14496-10. I dati devono includere i codici iniziali. Il decodificatore ignora i byte finché non trova un set di parametri di sequenza (SPS) valido e un set di parametri immagine (PPS) nel flusso di byte.
Il decodificatore non supporta la tecnologia Film Grain.
Nota
Una versione precedente della documentazione indica erroneamente che il decodificatore è supportato in Windows Server 2008 R2.
Se è installato Platform Update Supplement per Windows Vista, il decodificatore video H.264 è disponibile in Windows Vista, ma è accessibile solo in Windows Vista usando il lettore di origine.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 7 [solo app desktop] |
Server minimo supportato |
Nessuno supportato |
DLL |
|
Vedi anche