Partager via


Création d’objets de flux multimédia et d’exemples de flux

[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.]

Notes

Ces API sont déconseillées. Les applications doivent utiliser le filtre Sample Grabber ou implémenter un filtre personnalisé pour obtenir des données à partir d’un graphique de filtre DirectShow.

 

Les objets qui prennent en charge l’interface IMultiMediaStream sont les conteneurs de base pour les flux de données multimédias. L’interface IMultiMediaStream inclut des méthodes qui énumèrent les flux de données de l’objet ; ces flux sont généralement des données vidéo et audio, mais peuvent inclure des données de n’importe quel format, comme le sous-titrage, le texte brut ou le timecode SMPTE. L’interface IMultiMediaStream est toutefois un conteneur générique ; les développeurs peuvent créer d’autres versions de l’interface qui prennent en charge des formats de données spécifiques. Les objets qui implémentent l’interface IAMMultiMediaStream , par exemple, peuvent énumérer et contrôler les flux de n’importe quel format de données DirectShow. Étant donné que les flux de données individuels sont spécifiques au format, ils prennent en charge au moins deux interfaces différentes : une générique et une autre spécifique aux données. Chaque flux prend en charge l’interface IMediaStream , qui fournit des méthodes pour récupérer son format et un pointeur vers le flux lui-même. L’interface IDirectDrawMediaStream , en revanche, a des méthodes qui traitent spécifiquement du rendu des données vidéo. Toute interface dérivée d’IMultiMediaStream prend également en charge la création d’exemples de flux, les unités de base des données de streaming.

Un exemple multimédia est une référence à un objet contenant les données multimédias. Pour une image vidéo, il s’agit d’une surface DirectDraw. Le contenu exact de l’exemple varie en fonction du type de média (son, texte, etc.). Étant donné qu’un exemple n’est qu’une référence à l’objet de données, n’importe quel nombre d’exemples de flux peut faire référence au même objet. L’interface IStreamSample fournit des méthodes qui obtiennent et définissent les caractéristiques d’un exemple, telles que son heure de début et d’arrêt, status et l’association de flux. La méthode IStreamSample::Update actualise les données de l’exemple dans le cas de flux lisibles. Pour les flux accessibles en écriture, il écrit les données de l’exemple dans le flux. En règle générale, vous utilisez la méthode Update dans une boucle qui affiche, transfère ou stocke les données de streaming.

À propos de l’architecture de streaming multimédia