Partager via


Entrées, flux et sorties

[La fonctionnalité associée à cette page, sdk Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. lecteur source et enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise lecteur source et enregistreur récepteur au lieu d'SDK Windows Media Format 11, 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.]

Une « entrée » dans cette documentation est tout flux de données multimédia numérique (par exemple, audio ou vidéo) que votre application remet à l’objet writer à partir d’une source à l’aide d’API appropriées. Les entrées doivent être remises dans un format pris en charge. Plusieurs formats RVB et YUV standard sont pris en charge en entrée, et les codecs audio prennent en charge PCM. Si un format d’entrée spécifié n’est pas pris en charge en mode natif par le codec, l’objet writer instancie un objet d’assistance audio ou vidéo capable de convertir un large éventail de formats en formats que le codec peut accepter. Pour les entrées audio, l’objet d’assistance ajuste la profondeur du bit, le taux d’échantillonnage et le nombre de canaux si nécessaire. Pour les entrées vidéo, l’objet d’assistance vidéo effectue des conversions d’espace de couleur et des ajustements de taille rectangle. Dans certains cas, les données audio et vidéo compressées peuvent être transmises dans un flux d’entrée. Une entrée peut être d’un autre type multimédia en plus de l’audio et de la vidéo, comme du texte, des commandes de script, des images toujours ou des données de fichier arbitraires.

Une « sortie » dans cette documentation fait référence aux données que l’objet lecteur transmet à une application pour le rendu. Une sortie équivaut à un seul flux au moment de la lecture. Si vous utilisez l’exclusion mutuelle, tous les flux mutuellement exclusifs partagent une seule sortie. En règle générale, les données de sortie sont sous la forme de données audio ou vidéo non compressées, bien qu’elles puissent contenir n’importe quel type de données. Les formats de sortie vidéo pris en charge sont répertoriés ailleurs dans cette documentation.

Le terme « flux » dans cette documentation fait référence aux données d’un fichier ASF, par opposition à (1) les données sources d’entrée avant qu’elles ne soient traitées par l’objet writer, et (2) les données de sortie après sa compression par l’objet lecteur. Un flux ASF contient des données provenant d’une entrée unique sur l’objet writer, bien que plusieurs flux puissent être créés à partir de la même entrée. Un flux a les mêmes paramètres de format et de compression de début à fin. Un fichier ASF simple a deux flux, un pour l’audio et un pour la vidéo. Un fichier plus complexe peut avoir deux flux audio et plusieurs flux vidéo. Les flux audio peuvent avoir les mêmes paramètres de compression, mais contiennent du contenu différent, tel qu’une narration dans différentes langues. Les flux vidéo peuvent contenir le même contenu, mais ont des paramètres de compression différents. Les paramètres de format multimédia et de compression que l’objet writer applique à chaque flux sont spécifiés dans le profil.

La relation entre les entrées, les flux et les sorties peut être de trois types de base. Les trois diagrammes suivants illustrent les relations.

Dans la relation la plus simple, qui est un profil sans exclusion mutuelle, chaque entrée est traitée par l’enregistreur et insérée dans le fichier ASF en tant que flux unique. Lors de la lecture, le lecteur lit le flux et distribue des exemples non compressés sous forme de sortie unique, comme illustré dans le diagramme suivant.

diagramme montrant la relation normale entre les entrées, les flux et les sorties.

Une relation plus complexe se produit lorsque plusieurs exclusions mutuelles de débit binaire sont utilisées. Dans ce cas, une seule entrée est traitée par l’enregistreur et codée à plusieurs vitesses de bits. Chaque encodage des données est inséré dans le fichier ASF sous la forme d’un flux distinct. Lors de la lecture, le lecteur détermine le flux à décompresser en fonction de la bande passante disponible. Le lecteur lit ensuite le flux sélectionné et fournit des exemples non compressés sous forme de sortie unique, comme illustré dans le diagramme suivant.

diagramme montrant les relations entre les entrées, les flux et les sorties lors de l’utilisation de plusieurs exclusions mutuelles de débit binaire.

Le troisième type de relation peut se produire lorsqu’une exclusion mutuelle basée sur un langage ou personnalisée est utilisée. Dans cette relation, plusieurs entrées sont traitées par le lecteur et chacune est insérée dans le fichier ASF en tant que flux individuel. Lors de la lecture, votre application sélectionne manuellement le flux à décompresser en fonction de la logique que vous fournissez. Le lecteur lit ensuite le flux sélectionné et fournit des exemples non compressés sous forme de sortie unique. Ce processus peut être utilisé pour inclure des bandes sonores dans plusieurs langues. Le diagramme suivant illustre ce processus.

diagramme montrant les relations entre les entrées, les flux et les sorties lors de l’utilisation d’une exclusion mutuelle personnalisée.

Il existe une certaine variation dans les relations décrites précédemment. Par exemple, un fichier peut contenir les trois relations, ou une ou deux d’entre elles. Il est également possible que certaines entrées soient compressées, auquel cas l’enregistreur n’effectue aucune compression supplémentaire. Le lecteur peut également fournir des exemples compressés. Mais quand c’est le cas, vous devez y accéder par numéro de flux, et non par numéro de sortie.

Note

Les entrées, les vapeurs et les sorties sont tous des nombres attribués par les objets du Kit de développement logiciel (SDK) Windows Media Format. Les flux ont un numéro de flux, qui est basé sur 1, que vous définissez dans le profil. Chaque flux est également affecté à un index de flux pour une utilisation dans l’énumération de flux dans un profil. Aucun de ces nombres n’est garanti pour être cohérent entre eux. Autrement dit, le numéro d’entrée 1 peut ne pas correspondre au numéro de flux 1, le nombre de flux 1 peut ne pas correspondre à l’index de flux 1, et ainsi de suite.

 

concepts

d’exclusion mutuelle