Video-Einschränkungen: Einstellung der bevorzugten Auflösung und Bildrate

Mit der Vonage Video API können Publisher Videostreams optimieren, indem sie bevorzugte Einschränkungen für die Videoauflösung und die Bildrate festlegen. Diese Einschränkungen helfen dabei, die Bandbreitennutzung zu verwalten, die Gerätefähigkeiten zu berücksichtigen und den Abonnenten ein maßgeschneidertes Benutzererlebnis zu bieten.

Dieser Leitfaden beschreibt die Verwendung der preferredResolution und preferredFrameRate APIs für Verlage.

Anmerkung: Diese APIs sind derzeit nur im JavaScript-SDK verfügbar. Es gibt keinen angekündigten Zeitplan für die Unterstützung in anderen SDKs.

Übersicht

Wenn Sie einen Videostream veröffentlichen, möchten Sie vielleicht die Videoqualität aus verschiedenen Gründen dynamisch anpassen: Einsparung von Bandbreite, Anpassung an die Anforderungen der Benutzeroberfläche oder Einschränkung des Ressourcenverbrauchs für bestimmte Teilnehmerrollen (z. B. Miniaturansichten oder Bildschirme mit geringer Bewegung). Die Publisher-API von Vonage stellt Methoden bereit, mit denen Sie die bevorzugte Auflösung und Bildrate für Ihre Videospuren anpassen können. Diese Einschränkungen werden auf dem Videoeingabegerät mithilfe von Standard-WebRTC-APIs durchgesetzt, um optimale Ergebnisse zu erzielen.

Steuerung von Videoauflösung und Bildrate

Der Verleger kann angeben:

  • Bevorzugte Auflösung: Die gewünschte Breite und Höhe (in Pixel) für den Videostream.
  • Bevorzugte Bildrate: Die gewünschte Anzahl von Bildern pro Sekunde (fps) für den Video-Stream.

Sie können diese mit den folgenden Methoden dynamisch steuern nach wird der Verlag initialisiert:

// Set preferred resolution (width x height)
await publisher.setPreferredResolution({ width: 640, height: 360 });

// Set preferred frame rate
await publisher.setPreferredFrameRate(15);

Diese Einstellungen steuern direkt die vom Herausgeber ausgehende Videospur, was sich wiederum auf die Qualität für alle Abonnenten auswirkt. Die tatsächlichen Netzwerkbedingungen und Gerätefunktionen können diese Werte jedoch einschränken oder außer Kraft setzen.

Einstellung der bevorzugten Auflösung

Methode: publisher.setPreferredResolution(preferredResolution)

  • preferredResolution ist ein Objekt mit width und height Eigenschaften (beide positive Ganzzahlen, in Pixel).
  • Die Auflösung kann nicht größer sein als die ursprüngliche Veröffentlichungsauflösung. Wenn Sie z. B. mit 640×480 veröffentlicht haben, können Sie keine höhere Auflösung als diese einstellen.

Typische Verwendung:

publisher.setPreferredResolution({ width: 320, height: 240 });

Validierungen:

  • Muss bei einem Publisher aufgerufen werden, der ein Video aufnimmt (publishVideo: true).
  • Beide width und height müssen positive ganze Zahlen sein.
  • Die Auflösung kann nicht größer sein als die ursprüngliche Veröffentlichungsauflösung.

Fehler-Fälle:

  • Schlägt fehl, wenn er bei einem reinen Audioverlag aufgerufen wird oder wenn die Eingabewerte ungültig sind.

Einstellung der bevorzugten Bildrate

Methode: publisher.setPreferredFrameRate(frameRate)

  • frameRate muss eine ganze Zahl größer oder gleich 1 sein.

Typische Verwendung:

publisher.setPreferredFrameRate(15);

Validierungen:

  • Muss bei einem Verlag mit einer aktiven Videospur aufgerufen werden.
  • Die Bildrate muss eine gültige ganze Zahl ≥ 1 sein.

Fehler-Fälle:

  • Wird ausgelöst, wenn er bei einem reinen Audioverlag aufgerufen wird oder wenn frameRate ungültig ist.

Bewährte Praktiken

  • Legen Sie Einschränkungen fest, die sowohl den Anforderungen der Benutzeroberfläche als auch dem Erlebnis entsprechen, das Sie allen Abonnenten bieten möchten. Ein kleines Videoelement kann beispielsweise eine geringere Auflösung und Bildrate verwenden, aber bedenken Sie, wie sich dies auf die Ansicht der einzelnen Abonnenten auswirkt.
  • Setzen Sie die bevorzugte Auflösung nicht höher als die anfängliche, beim Start des Publishers ausgehandelte Auflösung.
  • Wählen Sie z. B. eine für den Inhalt geeignete Bildrate:
    • 5 fps für statische Folien, Dashboards, Bildschirme mit sehr wenig Bewegung oder minimaler Bandbreitennutzung.
    • 15 fps für bewegungsarme Bildschirme oder bandbreitenabhängige Szenarien
    • 30 fps für Full-Motion-Video oder hochwertige Anforderungen
  • Bandbreiten- und Netzwerkfaktoren: Denken Sie daran, dass die von Ihnen festgelegten Beschränkungen durch Echtzeit-Netzwerkschätzungen und Backend-Server-Kapazitäten weiter eingeschränkt werden können. Die tatsächlichen Eigenschaften des von den Abonnenten empfangenen Videos können niedriger sein als die von Ihnen gewünschten.
  • Die bevorzugte Auflösung und Bildrate sind derzeit nur im JavaScript-SDK verfügbar. Es gibt keinen Zeitplan für das Hinzufügen dieser Funktion zu anderen SDKs.

Zusätzliche Hinweise

  • Die von Ihnen festgelegten Beschränkungen beeinflussen alle Abonnenten auf Ihren Stream, nicht nur auf die lokale Benutzeroberfläche.
  • Das Netzwerk und das Backend bestimmen letztendlich die tatsächliche Videoqualität, die auf der Grundlage der aktuellen Verbindungsqualität und der verfügbaren Bandbreite geliefert wird.
  • Diese APIs sind nur mit dem JavaScript-SDK verfügbar; andere SDKs unterstützen derzeit keine dynamischen Änderungen der Videoeinschränkungen.

Zusätzliche Ressourcen