Publisher Max Bitrate
Cette rubrique contient des informations détaillées sur la configuration du débit binaire vidéo maximal à l'aide du Vonage Client SDK pour Linux :
- Définition et récupération d'un préréglage
- Définition et récupération d'une valeur de débit binaire brute
- Cas particuliers
Pour obtenir une vue d'ensemble de l'API de débit binaire maximal de l'éditeur, consultez ce sujet.
Définition et récupération d'un préréglage
Les otc_video_bitrate_preset dans l'enum publisher.h comprend des valeurs prédéfinies :
OTC_VIDEO_BITRATE_PRESET_DEFAULTOTC_VIDEO_BITRATE_PRESET_BW_SAVEROTC_VIDEO_BITRATE_PRESET_EXTRA_BW_SAVEROTC_VIDEO_BITRATE_PRESET_CUSTOM
Voir Préréglages du débit binaire vidéo pour plus de détails sur ces préréglages.
Pour récupérer le préréglage de débit vidéo actuellement configuré pour un éditeur donné, appelez la commande otc_publisher_get_video_bitrate_preset() fonction :
enum otc_video_bitrate_preset preset = otc_publisher_get_video_bitrate_preset(publisher);
if (preset == OTC_VIDEO_BITRATE_PRESET_BW_SAVER) {
printf("The publisher is using the BW_SAVER preset.\n");
}
Pour définir une présélection, appelez le otc_publisher_set_video_bitrate_preset() Cette fonction comprend deux paramètres. Cette fonction comprend deux paramètres :
publisher- Un pointeur sur l'instance otc_publisher.preset- Une valeur deotc_video_bitrate_preset. Ne pas utiliserOTC_VIDEO_BITRATE_PRESET_CUSTOM.
La fonction renvoie l'une de ces valeurs :
OTC_SUCCESS- Le préréglage a été appliqué avec succès.OTC_ERROR_INVALID_PARAMETER- L'éditeur fourni est NULL ou le preset n'est pas valide.
Exemple :
otc_status status = otc_publisher_set_video_bitrate_preset(publisher, OTC_VIDEO_BITRATE_PRESET_BW_SAVER);
if (status == OTC_SUCCESS) {
printf("Bitrate preset successfully set to BW_SAVER.\n");
} else {
printf("Failed to set bitrate preset.\n");
}
Définition et récupération d'une valeur de débit binaire brute
Si les préréglages prédéfinis ne conviennent pas, vous pouvez définir manuellement une valeur de débit binaire brut personnalisée.
Pour obtenir le débit vidéo maximal actuellement défini pour un éditeur, appelez la fonction otc_publisher_get_max_video_bitrate() Cette fonction renvoie le débit binaire maximal actuellement défini (en bits par seconde). Elle renvoie le débit maximal actuellement défini (en bits par seconde). Si aucune valeur personnalisée n'est définie, la fonction renvoie 0.
Exemple :
int max_bitrate = otc_publisher_get_max_video_bitrate(publisher);
printf("Current max video bitrate: %d bps\n", max_bitrate);
Pour définir une valeur de débit maximale personnalisée (au lieu d'une valeur prédéfinie), utilisez la fonction otc_publisher_set_max_video_bitrate() Cette fonction est paramétrée de la manière suivante Cette fonction a les paramètres suivants :
publisher- Un pointeur sur une instance otc_publisher existante.bitrate_bps— Débit binaire maximal souhaité (en bits par seconde). Doit être compris entre 5 000 et 10 000 000.
La fonction renvoie l'une des valeurs suivantes :
OTC_SUCCESS- Le débit binaire a été appliqué avec succès.OTC_ERROR_INVALID_PARAMETER- Le pointeur de l'éditeur estNULLoubitrate_bpsest hors de portée.
Exemple :
int new_bitrate = 300000; // 300 kbps
otc_status status = otc_publisher_set_max_video_bitrate(publisher, new_bitrate);
if (status == OTC_SUCCESS) {
printf("Successfully set max video bitrate to %d bps.\n", new_bitrate);
} else {
printf("Failed to set max video bitrate.\n");
}
Voir Définition des valeurs de débit binaire brut pour plus de détails.
Cas particuliers
Le fait de fixer la valeur du débit binaire brut à 0 supprime toute limitation du débit binaire précédemment fixée, ce qui revient au comportement par défaut.
const int zero_bitrate = 0; // no limitations
const int new_bitrate = 300000; // 300 kbps
otc_status status = otc_publisher_set_max_video_bitrate(publisher, new_bitrate);
if (status == OTC_SUCCESS) {
assert(otc_publisher_get_max_video_bitrate(publisher) == new_bitrate);
}
status = otc_publisher_set_max_video_bitrate(publisher, zero_bitrate);
if (status == OTC_SUCCESS) {
assert(otc_publisher_get_max_video_bitrate(publisher) == zero_bitrate);
}
Appeler le (otc_publisher_get_video_bitrate_preset()) après le retour d'un débit binaire personnalisé OTC_VIDEO_BITRATE_PRESET_CUSTOM.
const int new_bitrate = 1000000; // 1 mbps
otc_status status = otc_publisher_set_max_video_bitrate(publisher, new_bitrate);
if (status == OTC_SUCCESS) {
assert(otc_publisher_get_video_bitrate_preset(publisher) == OTC_VIDEO_BITRATE_PRESET_CUSTOM);
}
status = otc_publisher_set_max_video_bitrate(publisher, zero_bitrate);
if (status == OTC_SUCCESS) {
assert(otc_publisher_get_video_bitrate_preset(publisher) == OTC_VIDEO_BITRATE_PRESET_DEFAULT);
}
Le récupérateur de débit binaire brut renvoie 0 lorsque l'éditeur utilise un préréglage.
// Assume all the statuses are OTC_SUCCESS
int bitrate_bps = otc_publisher_get_max_video_bitrate(publisher);
assert(bitrate_bps == 0);
otc_publisher_set_video_bitrate_preset(publisher, OTC_VIDEO_BITRATE_PRESET_BW_SAVER);
bitrate_bps = otc_publisher_get_max_video_bitrate(publisher);
assert(bitrate_bps == 0);
otc_publisher_set_video_bitrate_preset(publisher, OTC_VIDEO_BITRATE_PRESET_EXTRA_BW_SAVER);
bitrate_bps = otc_publisher_get_max_video_bitrate(publisher);
assert(bitrate_bps == 0);
otc_publisher_set_max_video_bitrate(publisher, 200000);
bitrate_bps = otc_publisher_get_max_video_bitrate(publisher);
assert(bitrate_bps == 200000);
otc_publisher_set_video_bitrate_preset(publisher, OTC_VIDEO_BITRATE_PRESET_DEFAULT);
bitrate_bps = otc_publisher_get_max_video_bitrate(publisher);
assert(bitrate_bps == 0);