Partager via


Écriture de flux avec des pixels non carrés

[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 le lecteur source et l’enregistreurré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.]

Il existe deux façons de créer des flux vidéo avec des pixels non carrés qui s’affichent correctement dans Lecteur multimédia Windows. La première technique consiste à définir des attributs au niveau du flux dans l’en-tête de fichier. La deuxième technique consiste à ajouter une extension d’unité de données à un flux dans le profil, puis à lui définir une valeur dans chaque exemple écrit.

Pour utiliser des attributs d’en-tête au niveau du flux pour définir les proportions des pixels

  1. Configurez l’objet writer. Pour plus d’informations, consultez Écriture de fichiers ASF.
  2. Créez ou chargez un profil avec un ou plusieurs flux vidéo. Pour plus d’informations, consultez Utiliser des profils avec l’enregistreur.
  3. Appelez IWMWriter::SetProfile. (Appelez toujours cette méthode avant de définir des attributs d’en-tête.)
  4. Appelez QueryInterface pour obtenir l’interface IWMHeaderInfo3 et appelez AddAttribute deux fois pour ajouter AspectRatioX et AspectRatioY en tant qu’attributs au niveau du flux vidéo. Ces attributs sont des valeurs DWORD .
  5. Écrivez le fichier.

Pour utiliser des extensions d’unités de données pour définir les proportions des pixels

Avant d’écrire :

  1. Configurez l’objet writer. Pour plus d’informations, consultez Écriture de fichiers ASF.
  2. Créez ou chargez un profil avec un ou plusieurs flux vidéo. Pour plus d’informations, consultez Utiliser des profils avec l’enregistreur.
  3. Pour chaque flux (de n’importe quel type de média) dans le profil, appelez IWMStreamConfig::SetStreamName pour spécifier un nom unique de votre choix. Ne donnez pas le même nom à deux flux.
  4. Utilisez IWMStreamConfig2::AddDataUnitExtension sur le flux vidéo pour ajouter une extension d’unité de données pour les proportions de pixels.
  5. Appelez IWMWriter::SetProfile.
  6. Écrivez le fichier.

Lors de l’écriture :

  • Pour chaque exemple, appelez INSSBuffer3::SetProperty et spécifiez la propriété WM_SampleExtensionGUID_PixelAspectRatio avec la valeur correcte. Les valeurs de proportions sont écrites sous la forme de deux valeurs concaténées à deux chiffres. Par exemple, 16:9 est écrit sous la forme 1609 ou 0x0649. Il s’agit toujours d’une valeur de 2 octets.

Pour lire et écrire des flux vidéo avec des pixels non carrés