Partager via


Génération de graphiques de filtre pour écrire des fichiers ASF

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Lors de la création de contenu Windows Media, les applications utilisent généralement l’un des scénarios suivants :

  • Conversion ou transcodage du contenu d’un autre format au format Windows Media.
  • Insertion de contenu qui n’est pas basé sur Windows Media (formats de flux natifs) dans des fichiers ASF.
  • Capturer des données actives et les encoder immédiatement au format Windows Media.

Transcodage de fichiers ASF

Vous pouvez créer un graphe de filtre de transcodage de fichiers à l’aide de l’enregistreur ASF WM de différentes manières. Le moyen le plus simple consiste à ajouter l’enregistreur ASF WM au graphe de filtre, puis à utiliser la méthode IGraphBuilder::RenderFile pour générer automatiquement le graphe.

Une autre méthode consiste à ajouter manuellement chaque filtre au graphique et à connecter les broches. Après avoir ajouté l’enregistreur WM ASF, configurez-le à l’aide des méthodes IConfigAsfWriter si le profil par défaut ne convient pas, puis connectez les broches d’entrée WM ASF Writer aux broches de sortie correspondantes sur les filtres amont.

L’illustration suivante montre les configurations de graphe de filtre de transcodage standard de l’enregistreur ASF WM.

Graphe de filtre de transcodage

Insertion de formats de flux natifs dans des fichiers ASF

Par défaut, le filtre WM ASF Writer attend des flux audio et vidéo non compressés sur ses broches d’entrée et utilise les codecs Windows Media Audio et Windows Media Video pour compresser les flux. Toutefois, le conteneur de fichiers ASF peut être utilisé pour n’importe quel type de données. En plaçant des données multimédias numériques dans un conteneur de fichiers ASF, vous pouvez ajouter des fonctionnalités fournies par ASF, telles que les métadonnées et la gestion des droits numériques (DRM), sans avoir à transcoder votre contenu.

Pour créer un fichier ASF qui contient du contenu qui n’est pas basé sur Windows Media, l’application doit compresser le flux dans le graphique de filtre amont de l’enregistreur WM ASF et contourner le mécanisme de compression de l’enregistreur WM ASF en appelant IConfigAsfWriter2::SetParam comme suit :

pConfigAsfWriter2->SetParam(AM_CONFIGASFWRITER_PARAM_DONTCOMPRESS,TRUE,0)

Configurez ensuite le filtre avec le profil souhaité. Il est essentiel que le type de média du flux d’entrée corresponde exactement au format dans le profil. Dans certains cas, il peut être nécessaire d’examiner le format du flux d’entrée et de créer un profil personnalisé correspondant.

Lorsque vous connectez l’enregistreur WM ASF au filtre amont, utilisez la méthode IGraphBuilder::ConnectDirect. N’utilisez pas de méthodes de « connexion intelligente », telles que IGraphBuilder::Connect ou IGraphBuilder::RenderFile pour connecter le filtre, car cela désactive le mode « contournement de compression » du filtre.

Capture directe d’un appareil vers un fichier ASF

Lors de la capture audio ou vidéo directement dans un fichier ASF, le graphique de filtre ressemble à ce qui suit, en fonction du type d’appareil de capture utilisé.

Graphe de capture vidéo windows media

Pour plus d’informations sur la création de graphiques de capture vidéo et audio, consultez les rubriques suivantes :

L’enregistreur ASF WM ne s’exécute pas tant que toutes ses broches ne sont pas connectées. Si vous configurez l’enregistreur WM ASF avec le profil système par défaut (non recommandé), ou tout profil avec des flux audio et vidéo, il crée une broche d’entrée pour chaque flux et chacune de ces broches doit être connectée. Si vous n’avez pas l’intention de capturer l’audio, par exemple, veillez à configurer le filtre avec un profil vidéo uniquement afin qu’aucune broche audio ne soit créée.

Création de fichiers ASF dans DirectShow