Share via


Pour configurer un VBR sans contrainte

[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 utiliser l’encodage À débit variable (VBR) sans contrainte sur un flux pour spécifier un débit binaire moyen qui sera conservé dans le contenu encodé. Le VBR sans contrainte diffère de la CBR normale en ce que la variance du débit binaire dans tout le flux peut être plus élevée.

Le débit binaire du flux, défini avec IWMStreamConfig::SetBitrate, est utilisé comme débit binaire moyen souhaité. Une fois l’encodage du flux terminé, vous pouvez utiliser IWMPropertyVault::GetPropertyByName pour récupérer deux propriétés supplémentaires : g_wszVBRPeak et g_wszBufferAverage. Ces propriétés décrivent la vitesse de transmission maximale du contenu encodé et la fenêtre tampon moyenne du contenu, respectivement.

Un VBR sans contrainte doit être utilisé conjointement avec l’encodage à deux passes. L’encodage en deux passes n’est pas défini dans le profil. Vous devez configurer l’enregistreur pour effectuer une passe de prétraitement avant d’écrire le flux. Pour plus d’informations sur l’utilisation de l’encodage à deux passes, consultez Utilisation de l’encodage Two-Pass.

Pour configurer un flux dans un profil afin qu’il soit encodé avec un VBR sans contrainte, procédez comme suit :

  1. Créez un objet de gestionnaire de profils en appelant la fonction WMCreateProfileManager .
  2. Ouvrez un profil existant auquel vous souhaitez ajouter la prise en charge de VBR. Pour plus d’informations sur l’ouverture de profils, consultez Utilisation des profils.
  3. Obtenez un objet de configuration de flux pour le flux que vous souhaitez utiliser en appelant IWMProfile::GetStream ou IWMProfile::GetStreamByNumber.
  4. Obtenez un pointeur vers l’interface IWMPropertyVault de l’objet de configuration de flux en appelant IWMStreamConfig::QueryInterface.
  5. Activez l’encodage VBR pour le flux en appelant IWMPropertyVault::SetProperty pour la propriété g_wszVBREnabled .
  6. Définissez g_wszVBRBitrateMax et g_wszVBRBufferWindowMax sur zéro avec IWMPropertyVault::SetProperty.
  7. Enregistrez les modifications apportées au flux en appelant IWMProfile::ReconfigStream.
  8. Enregistrez le profil ou passez-le à l’objet writer.
  9. Configurez l’enregistreur pour effectuer une passe de prétraitement.

Configuration de flux VBR