Partager via


Utilisation de l’enregistreur de récepteurs

Vue d’ensemble

Types de conteneurs de fichiers

L’enregistreur récepteur prend en charge plusieurs types de conteneurs de fichiers. Pour obtenir la liste complète, consultez MF_TRANSCODE_CONTAINERTYPE. Vous pouvez prendre en charge d’autres types de conteneurs en écrivant un récepteur multimédia personnalisé. Le conteneur de fichiers est spécifié lorsque vous créez une nouvelle instance de l’enregistreur récepteur.

Formats de flux

Pour chaque flux, l’application doit spécifier les éléments suivants.

  • Le format d’entrée est le format que l’application envoie au writer récepteur.
  • Le format de sortie est le format qui sera écrit dans le fichier.

Les formats d’entrée et de sortie peuvent être compressés ou non compressés. L’enregistreur récepteur prend en charge les combinaisons suivantes :

  • Entrée non compressée avec sortie compressée. C’est le cas classique qui est utilisé pour les scénarios d’encodage ou de transcodage. Un encodeur Microsoft Media Foundation doit être disponible qui accepte le type d’entrée et l’encode sur le type de sortie.
  • Entrée compressée avec sortie identique. Utilisez cette combinaison pour remux un fichier sans transcodage.
  • Entrée non compressée avec une sortie identique. Utilisez cette combinaison pour écrire du contenu audio ou vidéo non compressé dans un conteneur de fichiers.

L’enregistreur récepteur ne prend pas en charge le redimensionnement vidéo, la conversion de fréquence d’images ou le rééchantillonnage audio, sauf si ces fonctions sont fournies par l’encodeur. Sinon, l’application peut utiliser des processeurs de signal numérique pour convertir les données d’entrée, avant d’envoyer les données au

Création de l’enregistreur de récepteurs

Deux fonctions créent l’enregistreur récepteur :

  • MFCreateSinkWriterFromURL prend l’URL d’un fichier de sortie ou un pointeur vers un flux d’octets. Cette fonction crée le récepteur multimédia en interne.
  • MFCreateSinkWriterFromMediaSink prend un pointeur vers un récepteur multimédia qui a déjà été créé par l’application.

Si vous utilisez l’un des récepteurs multimédias intégrés, la fonction MFCreateSinkWriterFromURL est préférable, car l’appelant n’a pas besoin de configurer le récepteur de média.

La méthode MFCreateSinkWriterFromURL fournit plusieurs options pour spécifier le type de conteneur de fichiers. Dans le cas le plus simple, la fonction utilise l’extension de nom de fichier dans l’URL pour sélectionner le conteneur de fichiers. Pour plus d’informations, reportez-vous à la page de référence des fonctions.

Par exemple, le code suivant spécifie le nom de fichier « output.wmv » pour l’URL. En fonction de l’extension de nom de fichier, l’enregistreur récepteur charge le récepteur multimédia ASF pour créer un fichier ASF (Advanced Systems Format).

    HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);

Dans le cas de MFCreateSinkWriterFromMediaSink, le type de fichier est déterminé par le récepteur de média.

Enregistreur de récepteurs