Partager via


Pour transcoder du contenu avec la recompression intelligente

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

Vous pouvez transcoder du contenu d’une vitesse de transmission à l’autre à l’aide du Kit de développement logiciel (SDK) au format Windows Media. Normalement, cela implique simplement de décoder le contenu et de l’encoder à nouveau au débit binaire souhaité. Le codec Windows Media Audio 9 prend en charge la recompression intelligente, ce qui permet un transcodage qui obtient une meilleure qualité que la normale.

Pour la recompression intelligente, le flux audio d’origine doit être encodé avec le codec Audio Windows Media. Toutes les versions du codec sont prises en charge, mais les codecs audio spécialisés (Windows Media Audio 9 Professionnel et Windows Media Audio 9 Voice) ne le sont pas. Si l’audio d’origine a été encodé avec le codec Windows Media Audio 9 lossless, il n’est pas nécessaire d’utiliser la recompression intelligente, car aucune information n’a été perdue dans l’encodage d’origine.

Pour utiliser la recompression intelligente, procédez comme suit.

  1. Configurez un objet lecteur avec le fichier source pour la lecture. Pour plus d’informations, consultez Lecture de fichiers ASF.
  2. Configurez un objet writer à utiliser pour transcoder le fichier. Définissez le nom du nouveau fichier. Sélectionnez un profil à utiliser pour le nouveau fichier. Définissez le profil sélectionné dans l’objet writer. Pour plus d’informations, consultez Écriture de fichiers ASF.
  3. Obtenez un pointeur vers l’interface IWMProfile de l’objet reader en appelant IWMReader::QueryInterface.
  4. Récupérez l’interface IWMStreamConfig pour le flux audio à transcoder en appelant IWMProfile::GetStream.
  5. Obtenez l’interface IWMMediaProps pour l’objet de configuration de flux en appelant IWMStreamConfig::QueryInterface.
  6. Récupérez la structure WM_MEDIA_TYPE pour le flux en effectuant deux appels à IWMMediaProps::GetMediaType. Obtenez la taille de la structure sur le premier appel et allouez de la mémoire pour qu’une mémoire tampon passe le deuxième appel.
  7. Obtenez un pointeur vers l’interface IWMInputMediaProps pour l’entrée dans l’enregistreur en appelant IWMWriter::GetInputProps.
  8. Obtenez l’interface IWMPropertyVault pour l’objet de propriétés de média d’entrée en appelant IWMInputMediaProps::QueryInterface.
  9. Utilisez la méthode IWMPropertyVault::SetProperty pour définir la propriété g_wszOriginalWaveFormat. Utilisez la structure WAVEFORMATEX obtenue à l’étape 6 comme valeur de la propriété .
  10. Incluez les modifications apportées aux propriétés du média d’entrée en appelant IWMWriter::SetInputProps et en lui transmettant un pointeur vers l’interface IWMInputMediaProps .
  11. Commencez à lire les exemples du fichier d’origine et à les transmettre au writer avec des appels à IWMWriter::WriteSample.

Rubriques avancées

IWMInputMediaProps, interface

IWMMediaProps, interface

IWMProfile, interface

IWMPropertyVault, interface

IWMStreamConfig, interface