Partager via


Comment créer une topologie pour Two-Pass encodage Windows Media

Les modes d’encodage à deux passes sont pris en charge par certains encodeurs Windows Media et Media Foundation au niveau de la couche de pipeline. L’application doit configurer et configurer la topologie d’encodage similaire à celle de l’encodage à passe unique, mais en mode d’encodage à 2 passes, l’application doit exécuter la session d’encodage deux fois. Lors de la première passe, l’encodeur collecte des informations sur le contenu du flux. Sur la deuxième passe, à l’aide des informations collectées lors de la première passe, le fichier de sortie final est généré. En traitant deux fois les exemples pour le flux, l’encodage à deux pas optimise le processus d’encodage et produit des fichiers encodés de qualité supérieure. Les modes d’encodage à deux passes ne peuvent pas être utilisés sur les flux en direct.

Media Foundation prend en charge les modes d’encodage à deux passes suivants :

La création d’une topologie d’encodage pour l’encodage à deux passes est similaire aux modes de passage unique. La liste suivante montre les principales différences.

  • La configuration de l’encodeur doit inclure la propriété MFPKEY_PASSESUSED définie sur 2 et la propriété MFPKEY_VBRENABLED pour VARIANT_TRUE. Cela filtre les fonctionnalités de l’encodeur en modes à deux passes. Si vous utilisez des objets d’activation, transmettez ces propriétés à MFCreateWMAEncoderActivate ou MFCreateWMVEncoderActivate.
  • Pour la première passe, utilisez un récepteur multimédia factice dans le nœud de sortie, car les exemples générés dans cette passe ne sont pas ajoutés au fichier final.
  • Pour la deuxième passe, interrogez l’encodeur pour obtenir les propriétés post-encodage requises et remplacez le nœud récepteur de média factice par le récepteur multimédia ASF avec ces propriétés définies.

Pour plus d’informations sur la configuration d’une topologie d’encodage, consultez Tutoriel : encodage Windows Media à passe unique.

La procédure suivante récapitule les étapes d’encodage du contenu Windows Media dans un conteneur ASF à l’aide d’un mode d’encodage à deux passes.

  1. Créez une source multimédia pour le spécifié à l’aide du programme de résolution source.

  2. Énumérez les flux dans la source multimédia.

  3. Créez le récepteur multimédia ASF et ajoutez des récepteurs de flux en fonction des flux dans la source multimédia qui doivent être encodés.

  4. Créez le récepteur multimédia.

  5. Créez les encodeurs Windows Media pour les flux dans le fichier de sortie.

  6. Configurez les encodeurs avec les propriétés d’encodage à 2 passes.

  7. Créez une topologie d’encodage partiel en connectant la source, les encodeurs et le récepteur multimédia.

  8. Instanciez la session multimédia et définissez la topologie sur la session multimédia.

  9. Exécutez la première passe d’encodage en contrôlant la session multimédia et en obtenant tous les événements pertinents de la session multimédia.

  10. Fermez et arrêtez la session d’encodage.

  11. Interrogez l’encodeur pour les propriétés suivantes en fonction du type d’encodage :

    Type d’encodage Nom de la propriété
    Encodage à débit variable non contraint MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    Encodage à débit variable limité de pointe MFPKEY_PASSESUSED
    MFPKEY_VBRENABLED
    MFPKEY_BAVG
    MFPKEY_RAVG
    MFPKEY_BMAX
    MFPKEY_RMAX

     

  12. Créez le récepteur de fichiers ASF et ajoutez les récepteurs de flux requis en fonction des flux que vous souhaitez inclure dans le fichier de sortie final.

  13. Définissez les propriétés d’encodeur récupérées à l’étape 11 sur le récepteur de fichiers.

  14. Remplacez le récepteur multimédia dans le nœud de sortie par le récepteur de fichiers nouvellement créé.

  15. Instanciez la session multimédia et définissez la topologie mise à jour sur la session multimédia.

  16. Exécutez la deuxième passe d’encodage en contrôlant la session multimédia et en obtenant tous les événements pertinents à partir de la session multimédia.

  17. Attendez l’événement MEEndOfPresentation à partir de la session multimédia et, dans le gestionnaire d’événements, récupérez les valeurs de propriété d’encodage à partir de l’encodeur et définissez-les sur le récepteur de fichiers. Pour plus d’informations, consultez « Mettre à jour les propriétés d’encodage dans le récepteur de fichiers » dans tutoriel : Encodage Windows Media à passe unique.

  18. Fermez et arrêtez la session d’encodage.

Composants ASF de couche de pipeline