Partager via


Entrées, flux et sorties

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (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 transmet à l’objet writer à partir d’une source à l’aide des API appropriées. Les entrées doivent être fournies dans un format pris en charge. Plusieurs formats RVB et YUV standard sont pris en charge en tant qu’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 de bits, la fréquence 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 de 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 fixes 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 se présentent sous la forme de données audio ou vidéo non compressées, même si elles peuvent 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) aux données sources d’entrée avant leur traitement par l’objet writer et (2) aux données de sortie après leur décompression par l’objet lecteur. Un flux ASF contient des données qui proviennent 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 du début à la fin. Un fichier ASF simple a deux flux, l’un pour l’audio et l’autre 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 contenir du contenu différent, comme 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. Le format multimédia et les paramètres de compression que l’objet writer appliquera à 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 basique, 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 fournit des exemples non compressés sous forme d’une seule sortie, 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 l’exclusion mutuelle à débit binaire multiple est utilisée. Dans ce cas, une seule entrée est traitée par l’enregistreur et encodée à plusieurs débits binaires. Chaque encodage des données est inséré dans le fichier ASF en tant que 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 d’une seule sortie, comme illustré dans le diagramme suivant.

diagramme montrant les relations entre les entrées, les flux et les sorties lors de l’utilisation de l’exclusion mutuelle à débit binaire multiple.

Le troisième type de relation peut se produire lorsqu’une exclusion mutuelle basée sur le 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 d’une seule sortie. 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 de l’exclusion mutuelle personnalisée.

Il existe des variantes 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 de compresser certaines entré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.

Notes

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

 

Concepts

Exclusion mutuelle