Condividi tramite


Come creare una topologia per Two-Pass codifica di Windows Media

Le modalità di codifica a due passaggi sono supportate da determinati codificatori Di Windows Media e Media Foundation a livello di pipeline. L'applicazione deve configurare e configurare la topologia di codifica simile a quella nella codifica a passaggio singolo, ma nella modalità di codifica a 2 passaggi, l'applicazione deve eseguire la sessione di codifica due volte. Al primo passaggio, il codificatore raccoglie informazioni sul contenuto del flusso. Al secondo passaggio, usando le informazioni raccolte nel primo passaggio, viene generato il file di output finale. Elaborando due volte gli esempi per il flusso, la codifica a due passaggi ottimizza il processo di codifica e produce file con codifica di qualità superiore. Le modalità di codifica a due passaggi non possono essere usate nei flussi live.

Media Foundation supporta le modalità di codifica a due passaggi seguenti:

La compilazione di una topologia di codifica per la codifica a due passaggi è simile alla modalità pass singola. L'elenco seguente mostra le differenze principali.

  • La configurazione del codificatore deve includere la proprietà MFPKEY_PASSESUSED impostata su 2 e la proprietà MFPKEY_VBRENABLED su VARIANT_TRUE. In questo modo le funzionalità del codificatore vengono filtrate in modalità a due passaggi. Se si usano oggetti di attivazione, passare queste proprietà a MFCreateWMAEncoderActivate o MFCreateWMVEncoderActivate.
  • Per il primo passaggio, usare un sink multimediale fittizio nel nodo di output perché gli esempi generati in questo passaggio non vengono aggiunti al file finale.
  • Per il secondo passaggio, eseguire una query sul codificatore per le proprietà di post-codifica necessarie e sostituire il nodo sink multimediale fittizio con il sink multimediale ASF con queste proprietà impostate.

Per altre informazioni sulla configurazione di una topologia di codifica, vedere Tutorial: Single Pass Windows Media Encoding.For more information about setting up an encoding to encoding, Tutorial: Single Pass Windows Media Encoding.

La procedura seguente riepiloga i passaggi per codificare il contenuto di Windows Media in un contenitore ASF usando una modalità di codifica a due passaggi.

  1. Creare un'origine multimediale per l'oggetto specificato usando il resolver di origine.

  2. Enumerare i flussi nell'origine multimediale.

  3. Creare il sink multimediale ASF e aggiungere sink di flusso a seconda dei flussi nell'origine multimediale che devono essere codificati.

  4. Creare il sink multimediale.

  5. Creare i codificatori Windows Media per i flussi nel file di output.

  6. Configurare i codificatori con le proprietà di codifica a 2 passaggi.

  7. Creare una topologia di codifica parziale connettendo l'origine, i codificatori e il sink multimediale.

  8. Creare un'istanza della sessione multimediale e impostare la topologia nella sessione multimediale.

  9. Eseguire il primo passaggio di codifica controllando la sessione multimediale e ottenendo tutti gli eventi pertinenti dalla sessione multimediale.

  10. Chiudere e arrestare la sessione di codifica.

  11. Eseguire una query sul codificatore per le proprietà seguenti a seconda del tipo di codifica:

    Tipo di codifica Nome proprietà
    Codifica della frequenza di bit delle variabili non vincolate MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    Codifica della velocità di bit delle variabili vincolate di picco MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    MFPKEY_BMAX
    MFPKEY_RMAX

     

  12. Creare il sink del file ASF e aggiungere i sink di flusso necessari a seconda dei flussi da includere nel file di output finale.

  13. Impostare le proprietà del codificatore recuperate nel passaggio 11 nel sink di file.

  14. Sostituire il sink multimediale nel nodo di output con il sink di file appena creato.

  15. Creare un'istanza della sessione multimediale e impostare la topologia aggiornata nella sessione multimediale.

  16. Eseguire il secondo passaggio di codifica controllando la sessione multimediale e ottenendo tutti gli eventi pertinenti dalla sessione multimediale.

  17. Attendere l'evento MEEndOfPresentation dalla sessione multimediale e nel gestore eventi ottenere i valori delle proprietà di codifica dal codificatore e impostarli nel sink del file. Per altre informazioni, vedere "Aggiornare le proprietà di codifica nel sink di file" in Esercitazione: Single Pass Windows Media Encoding.For more information, see "Update Encoding Properties in the File Sink" in Tutorial: Single Pass Windows Media Encoding.For more information, see "Update Encoding Properties in the File Sink" in Tutorial: Single Pass Windows Media Encoding

  18. Chiudere e arrestare la sessione di codifica.

Componenti ASF del livello pipeline