Vue d’ensemble de l’encodage dans Media Foundation

Cette rubrique est une vue d’ensemble des API d’encodage de fichiers fournies dans Microsoft Media Foundation.

Terminologie

L’encodage est un terme général qui couvre plusieurs processus distincts :

  1. Encodage d’un flux audio ou vidéo dans un format compressé. Par exemple, encodage d’un flux vidéo en vidéo H.264.
  2. Multiplexage (« muxing ») d’un ou plusieurs flux dans un seul flux d’octets. En règle générale, les flux entrants sont encodés en premier. Cette étape peut impliquer la mise en paquet des flux encodés.
  3. Écriture d’un flux d’octets multiplexés dans un fichier, tel qu’un fichier MP4 ou ASF (Advanced Systems Format). Vous pouvez également envoyer le flux multiplexé sur le réseau.

Le diagramme suivant montre ces trois processus :

diagramme montrant les processus d’encodage et de multiplexage

Les variantes de ce processus incluent le transcodage et le réachage :

  • Le transcodage signifie décoder un fichier existant, réencoder les flux et re multiplexer les flux encodés. Le transcodage peut être effectué pour convertir un fichier d’un type d’encodage à un autre ; par exemple, pour convertir une vidéo H.264 en Windows Media Video (WMV). Vous pouvez également modifier le débit binaire encodé ; la taille de l’image vidéo ; la fréquence d’images ; ou d’autres paramètres de format.
  • Le remultiplexing ou le remuxing signifie démultiplexer un fichier et re multiplexer les flux, sans aucune étape de décodage/encode. Cela peut être effectué pour modifier la façon dont les paquets audio/vidéo sont multiplexés, pour supprimer un flux ou pour combiner des flux de deux fichiers sources différents.
  • La transrating est un cas particulier du transcodage, où le débit binaire est modifié sans modifier le type de compression. Par exemple, vous pouvez convertir un fichier à débit élevé en débit binaire inférieur. Un scénario classique dans lequel la transration peut être utilisée est lors de la synchronisation du contenu multimédia à partir d’un PC vers un appareil portable. Si l’appareil portable ne prend pas en charge un débit binaire élevé, le fichier peut être transévalué avant d’être copié sur l’appareil portable.

Le diagramme de blocs suivant montre le processus de transcodage.

diagramme montrant le processus de transcodage

Le diagramme de blocs suivant montre le processus de réuxation.

diagramme montrant le processus de remuxing

Cette documentation utilise parfois le terme encodage pour inclure à la fois le transcodage et le remuxing. Lorsqu’il est important de les distinguer, la documentation note la différence.

Voir aussi : Media Foundation: Essential Concepts.

Architecture d’encodage Media Foundation

Au niveau de la couche la plus basse de l’architecture Media Foundation, les types de composants suivants sont utilisés pour l’encodage :

Le diagramme suivant montre le flux de données entre ces composants dans un scénario de transcodage :

diagramme montrant les composants utilisés dans le transcodage

La plupart des applications n’utilisent pas ces composants directement. Au lieu de cela, une application utilise des API de niveau supérieur qui gèrent ces composants de niveau inférieur. Media Foundation fournit deux API de niveau supérieur pour l’encodage :

Session multimédia

La session multimédia fournit un pipeline de bout en bout qui déplace les données de la source multimédia, par le biais des codecs et enfin vers le récepteur multimédia. L’application contrôle la session multimédia et reçoit status événements de la session multimédia.

Lecteur source plus enregistreur récepteur

Le lecteur source encapsule la source multimédia et éventuellement les décodeurs. Il fournit des exemples encodés ou décodés de l’application. L’enregistreur récepteur encapsule le récepteur multimédia et éventuellement les encodeurs. L’application transmet des exemples à l’enregistreur récepteur.

Le diagramme suivant montre la session multimédia :

diagramme montrant comment la session multimédia effectue le transcodage

L’API Transcode (zone ombrée bleue) est un ensemble d’API introduites dans Windows 7, qui facilitent la configuration de la session multimédia pour l’encodage.

Le diagramme suivant montre le lecteur source et l’enregistreur récepteur :

diagramme montrant le transcodage avec le lecteur source et l’enregistreur récepteur

Codage et création de fichier

Programmation Media Foundation : concepts essentiels