Einstellen der maximalen Bitrate für einen Stream

Sie können die maximale Bitrate, die ein Anbieter für Kamera-Videostreams verwenden kann, dynamisch steuern.

In diesem Handbuch wird gezeigt, wie die Einstellungen für die Videobitrate konfiguriert werden, wie man mit den verschiedenen Voreinstellungen umgeht, wie man Rohbitraten einstellt und wie man die API am besten effektiv nutzt.

Dieses Thema umfasst die folgenden Abschnitte:

Übersicht

Sie können die maximale Bitrate, die ein Publisher bei der Codierung von Medien verwenden kann, dynamisch festlegen. Der Video-Encoder passt dann die Bitrate dynamisch an, indem er einen Wert innerhalb des zulässigen Bereichs verwendet, der von einem Mindestschwellenwert bis zur festgelegten maximalen Bitrate reicht und auf den Netzwerkbedingungen und anderen Einschränkungen basiert.

Die Einstellung der maximalen Bitrate kann dazu beitragen, den Bandbreitenverbrauch zu reduzieren, wenn ein Benutzer eine Verbindung über eine gebührenpflichtige Verbindung herstellt. Lesen Sie unbedingt die Beschränkungen unten.

Beschränkungen

Es gibt einige wichtige Einschränkungen, die zu beachten sind:

  • Netzbedingungen - Die tatsächlich im Netzwerk erreichte Bitrate kann aufgrund von Echtzeit-Netzwerkschätzungen, Bandbreitenschwankungen und Backend-Beschränkungen niedriger sein als der eingestellte Wert.

  • Außerhalb der Grenzen liegende Werte - Wenn Sie einen Bitratenwert außerhalb des gültigen Bereichs angeben, kann das SDK die Anfrage ignorieren oder einen Fehler zurückgeben.

API-Verwendung

Video-Bitrate-Voreinstellungen

Die API bietet Voreinstellungen für die Videobitrate, die die Reduzierung der Videoqualität vereinfachen, ohne dass man sich um Codec- und Sitzungseinstellungen kümmern muss. Diese Voreinstellungen wurden für gängige Anwendungsfälle wie Videokonferenzen entwickelt und sind auf die Auflösungen 480p, 540p, 720p und 1080p zugeschnitten.

Die verfügbaren Voreinstellungen sind:

  • DEFAULT - Die Standard-SDK-Bitrateneinstellung, die ein ausgewogenes visuelles Erlebnis für Videostreams bietet.

  • BW_SAVER - Eine Einstellung mittlerer Qualität für Videokonferenzen, die die Bitrate reduziert, um Bandbreite zu sparen.

  • EXTRA_BW_SAVER - Die niedrigste Bitrate für wichtige Videokommunikation, die eine niedrige Videoqualität bei minimaler Bandbreitennutzung bietet.

Bitte beachten Sie, dass die genauen Bitratenwerte, die beim Umgang mit Voreinstellungen verwendet werden, implementierungsspezifisch sind und von dem ausgehandelten Codec und dem Medienmodus (weitergeleitet oder geroutet) abhängen. Die Video API-Client-SDKs enthalten Methoden zum Setzen und Abrufen der Bitratenvoreinstellung.

Einstellung von Rohbitratenwerten

Wenn die vordefinierten Bitratenvorgaben Ihren Anforderungen nicht genügen, können Sie einen benutzerdefinierten Rohbitratenwert festlegen. Damit können Sie bestimmte Bitratengrenzen innerhalb eines Bereichs von 5.000 bps bis 10.000.000 bps festlegen. Bitte beachten Sie, dass der Wert nur für die Encoder-Bitrate gilt, so dass der Netzwerk-Overhead zusätzlich zum gewählten Wert anfällt.

Die Vonage Video API-Client-SDKs enthalten Methoden zum Festlegen des Rohbitratenwerts und zum Abrufen desselben. Solange keine Rohbitrate festgelegt ist oder nur Voreinstellungen festgelegt sind, gibt der Getter 0 zurück (außer beim JS SDK, wo der zurückgegebene Wert undefiniert ist). Sobald eine Rohbitrate festgelegt ist, gibt der Getter für die Bitratenvoreinstellung "custom" zurück, was bedeutet, dass ein benutzerdefinierter Wert angewendet wurde. Verwenden Sie jedoch nicht die Voreinstellung "custom" im Setter, sondern geben Sie nur die spezifische Bitratenzahl an, die als Höchstwert verwendet werden soll.

Interaktion von Bitrate und Kodierungsschicht mit VP8 und Skalierbarkeit aktiviert

Die Änderung der maximalen Bitrate bei der Verwendung von skalierbarem VP8 sorgt für zusätzliche Effizienz - das Client SDK aktiviert oder deaktiviert die Codierungsschichten dynamisch auf der Grundlage der verfügbaren Bitrate, um sicherzustellen, dass der Videostrom so effizient wie möglich ist. Dieser Prozess passt die Auflösung an, mit der der Publisher veröffentlicht.

Die folgenden Hinweise gelten für die Voreinstellung bei Verwendung von VP8:

  • DEFAULT - Bei dieser Voreinstellung werden alle verfügbaren Codierungsebenen verwendet. Für einen typischen Stream umfasst dies bis zu drei Ebenen (niedrig, mittel und hoch).

  • BW_SAVER - Diese Voreinstellung verwendet nur die ersten beiden Kodierungsebenen (niedrige und mittlere Qualität). Dies soll Bandbreite sparen und eignet sich daher für Szenarien wie Videokonferenzen, bei denen eine hohe Videoqualität nicht so wichtig ist.

  • EXTRA_BW_SAVER - Bei dieser Voreinstellung wird die Bitrate weiter reduziert, indem nur die Basis-Kodierungsschicht (niedrigste) verwendet wird. Dies ist der bandbreiteneffizienteste Modus, der das absolute Minimum an Qualität für eine sinnvolle Videokommunikation bietet.

Wenn Sie einen Wert für die Rohbitrate festlegen und die angegebene Bitrate nicht ausreicht, um bestimmte Codierungsebenen beizubehalten, schaltet das SDK automatisch die höheren Ebenen aus. Wenn beispielsweise die Bitrate für die mittleren oder hochwertigen Ebenen zu niedrig ist, werden diese Ebenen verworfen und nur die Basisebene wird übertragen.

Wenn eine neue bereitgestellte Bitrate hoch genug ist, um weitere Kodierungsebenen beizubehalten, reaktiviert das SDK die höheren Kodierungsebenen und stellt die Videoqualität schrittweise wieder her, indem die mittleren und hohen Ebenen wieder hinzugefügt werden.

Dieser Mechanismus sorgt dafür, dass der Videostream so effizient wie möglich bleibt und die verfügbare Bandbreite optimal genutzt wird, ohne dass der Benutzer darunter leidet.

Beispiele

Zu Beginn einer Sitzung verwendet ein Verleger die DEFAULT Voreinstellung, die die volle Videoqualität bietet. In diesem Stadium der Sitzung nehmen wir an, dass der nicht skalierbare Codec VP8 ausgehandelt wurde. Nach einem Netzwerkwechsel zu einer gebührenpflichtigen Verbindung (z. B. Mobilfunk) können Sie jedoch die Veröffentlichungsbandbreite mit der Option BW_SAVER Voreinstellung. Wenn Sie eine Voreinstellung für die maximale Bitrate des Herausgebers verwenden, sorgt das Client SDK dafür, dass die Qualitätsstufe unabhängig von jedem Ereignis gleich bleibt. Wenn das Netzwerk wieder auf eine unbegrenzte Verbindung umschaltet, können Sie die Voreinstellung wiederherstellen, indem Sie den Parameter DEFAULT voreingestellt.

Sie können auch den Wert der Rohbitrate festlegen, um einen oberen Schwellenwert für die Bandbreite festzulegen.

Einzelheiten zu den einzelnen Client SDKs finden Sie im Folgenden:

Die Details zur Verwendung von Publisher Max Bitrate im Vonage Video macOS Client SDK sind dieselben wie im Linux Client SDK.

Bewährte Praktiken

Um die beste Leistung und optimale Bandbreitennutzung zu gewährleisten, sollten Sie die folgenden Best Practices befolgen:

  • Vordefinierte Bitratenvorgaben verwenden - Verwenden Sie, wenn möglich, die vordefinierten Bitratenvoreinstellungen (DEFAULT, BW_SAVER, EXTRA_BW_SAVER) zur Verwaltung der Videoqualität. Diese Voreinstellungen sind auf gängige Szenarien wie Videokonferenzen zugeschnitten und gewährleisten, dass die Videoqualität mit der Bandbreiteneffizienz in Einklang gebracht wird. Noch wichtiger ist, dass sie Codec-Details und Medienmodi abstrahieren.

  • Seien Sie vorsichtig mit benutzerdefinierten Bitrateneinstellungen - Während benutzerdefinierte Bitrateneinstellungen Ihnen mehr Kontrolle geben, ist ihre Verwendung an Codec-Details gebunden, die sich während der WebRTC-Aushandlungsphase ändern können. Wir empfehlen, sie sparsam zu verwenden und nur dann, wenn ein harter Schwellenwert für die Bitrate erforderlich ist.

  • Wenden Sie keine benutzerdefinierten Bitraten oder Voreinstellungen auf Screen-Sharing-Streams an. - Die Codierung von Screen-Sharing-Streams unterscheidet sich von der Codierung von Kamera-Streams. Die Verwendung der API für die maximale Bitrate zur Begrenzung eines Screen-Sharing-Streams kann die Qualität verschlechtern, ohne eine Verbesserung der Bandbreite zu bieten.