Partager via


Pour configurer Quality-Based VBR

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

Vous pouvez utiliser l’encodage de débit variable basé sur la qualité (VBR) sur un flux pour spécifier un niveau de qualité qui sera maintenu pour l’ensemble du flux, quelles que soient les exigences de débit binaire qui en résultent.

Pour les flux vidéo VBR basés sur la qualité, vous devez spécifier un niveau de qualité de 1 à 100, 100 représentant la qualité la plus élevée. À l’heure actuelle, il n’y a que 30 paramètres de qualité discrets. Les niveaux de qualité suivants correspondent à des paramètres de qualité discrets : 1, 4, 8, 11, 15, 18, 22, 25, 29, 33, 36, 40, 43, 47, 50, 54, 58, 61, 65, 68, 72, 75, 79, 83, 86, 90, 93, 97, 100. Les nombres entre deux valeurs consécutives dans la liste précédente correspondent au même paramètre de qualité que le nombre inférieur. Par exemple, 1 et 4 étant répertoriés, 2 et 3 aboutissent tous deux au même paramètre de qualité que 1.

Pour les flux audio, vous pouvez énumérer les modes disponibles et récupérer un objet de configuration de flux. Pour plus d’informations, consultez Pour énumérer les formats de codec.

Lorsque vous utilisez une vidéo VBR basée sur la qualité, vous devez définir le membre dwBitrate de la structure WMVIDEOINFOHEADER sur une valeur positive. Cette valeur n’est pas utilisée par l’enregistreur, mais le fait de passer zéro ou un nombre négatif peut entraîner des erreurs lors de l’écriture.

Pour configurer un flux dans un profil afin qu’il soit encodé avec VBR basé sur la qualité, effectuez les étapes suivantes.

  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 VBR pour le flux en appelant IWMPropertyVault::SetProperty pour la propriété g_wszVBREnabled .
  6. Définissez le niveau de qualité du flux VBR en appelant IWMPropertyVault::SetProperty pour la propriété g_wszVBRQuality .
  7. Définissez g_wszVBRBitrateMax et g_wszVBRBufferWindowMax sur zéro avec IWMPropertyVault::SetProperty.
  8. Enregistrez les modifications apportées au flux en appelant IWMProfile::ReconfigStream.
  9. Enregistrez le profil ou passez-le à l’objet writer et commencez à écrire.

Configuration de flux VBR