Delen via


Een topologie maken voor Two-Pass Windows Media-codering

Coderingsmodi met twee pass worden ondersteund door bepaalde Windows Media-encoders en Media Foundation op de pijplijnlaag. De toepassing moet de coderingstopologie configureren en instellen die vergelijkbaar is met die in codering met één wachtwoord, maar in de 2-passcoderingsmodus moet de toepassing de coderingssessie twee keer uitvoeren. Bij de eerste pas verzamelt de encoder informatie over de inhoud van de stream. Op de tweede pas wordt het uiteindelijke uitvoerbestand gegenereerd met behulp van de informatie die op de eerste pas is verzameld. Door de voorbeelden voor de stroom twee keer te verwerken, optimaliseert twee-passcodering het coderingsproces en produceert bestanden met een hogere kwaliteit. Coderingsmodi met twee pass kunnen niet worden gebruikt voor livestreams.

Media Foundation ondersteunt de volgende twee-passcoderingsmodi:

Het bouwen van een coderingstopologie voor codering met twee pass-coderingen is vergelijkbaar met modus voor één wachtwoord. In de volgende lijst ziet u de belangrijkste verschillen.

  • De configuratie van de encoder moet de eigenschap MFPKEY_PASSESUSED bevatten die is ingesteld op 2 en de eigenschap MFPKEY_VBRENABLED op VARIANT_TRUE. Hiermee worden de mogelijkheden van de encoder gefilterd tot de twee-pass-modus. Als u activeringsobjecten gebruikt, geeft u deze eigenschappen door aan MFCreateWMAEncoderActivate of MFCreateWMVEncoderActivate.
  • Gebruik voor de eerste pas een dummymedia-sink in het uitvoerknooppunt, omdat de voorbeelden die in deze pas worden gegenereerd, niet worden toegevoegd aan het uiteindelijke bestand.
  • Voor de tweede pas voert u een query uit over de encoder voor de vereiste post-encoderings-eigenschappen en vervangt u het dummy-mediastream-knooppunt met de ASF-mediasink met deze eigenschappen ingesteld.

Zie Zelfstudie: Single Pass Windows Media Encodingvoor meer informatie over het instellen van een coderingstopologie.

De volgende procedure bevat een overzicht van de stappen voor het coderen van Windows Media-inhoud in een ASF-container met behulp van een coderingsmodus met twee pass-wachtwoorden.

  1. Maak een mediabron voor de gespecificeerde gegevens met behulp van de bronoplosser.

  2. De streams van de mediabron opsommen.

  3. Maak de ASF-mediasink en voeg stroomsinks toe afhankelijk van welke streams in de mediabron moeten worden gecodeerd.

  4. Maak de media-sink.

  5. Maak de Windows Media-encoders voor de streams in het uitvoerbestand.

  6. Configureer de encoders met de coderingseigenschappen 2-pass.

  7. Bouw een gedeeltelijke coderingstopologie door de bron, encoders en de media-sink te verbinden.

  8. Instantieer de mediasessie en stel de topologie in op de mediasessie.

  9. Voer de eerste coderingspas uit door de mediasessie te beheren en alle relevante gebeurtenissen van de mediasessie op te halen.

  10. Sluit de coderingssessie en sluit deze af.

  11. Voer een query uit op de encoder voor de volgende eigenschappen, afhankelijk van het type codering:

    Coderingstype Eigenschapsnaam
    Onbeperkte variabele bitsnelheidscodering MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    Peak-Constrained variabele bitsnelheidcodering MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    MFPKEY_BMAX
    MFPKEY_RMAX

     

  12. Maak de ASF-bestandssink en voeg de vereiste stroomsinks toe, afhankelijk van de streams die u wilt opnemen in het uiteindelijke uitvoerbestand.

  13. Stel de encodereigenschappen in die zijn opgehaald in stap 11 op de bestandssink.

  14. Vervang de media-sink in het outputknooppunt door de nieuw gemaakte bestandssink.

  15. Instantieer de mediasessie en stel de bijgewerkte topologie in op de mediasessie.

  16. Voer de tweede coderingspas uit door de mediasessie te beheren en alle relevante gebeurtenissen van de mediasessie op te halen.

  17. Wacht op de gebeurtenis MEEndOfPresentation van de mediasessie en haal in de gebeurtenishandler de eigenschapswaarden van de coderingseigenschap op uit de encoder en stel deze in op de bestandssink. Zie 'Eigenschappen van codering bijwerken in de bestandssink' in zelfstudie: Single Pass Windows Media Encodingvoor meer informatie.

  18. Sluit de coderingssessie en sluit deze af.

ASF-onderdelen voor pijplijnlagen