1080p Video Übersicht
Bei der Verwendung von Videos mit 1080p-Auflösung in einer Vonage Video API-Sitzung sind einige Punkte zu beachten.
Die Veröffentlichung von Videos mit 1080p-Auflösung (FHD) führt nicht von selbst zu einer besseren Videoqualität. Für die Unterstützung von 1080p-Videos sind eine geeignete Kamera, Geräteleistung und Netzwerkbandbreite erforderlich.
Für ein optimales Nutzererlebnis sollte Ihre App Optionen zur Bewältigung dieser Bedingungen enthalten:
- Ein Browser oder Gerät kann 1080p zunächst nicht unterstützen.
- Wenn sich die Bedingungen verschlechtern und deshalb die Auflösung von 1080p reduziert werden muss.
- Wenn sich die Bedingungen verbessern und die Auflösung wieder auf 1080p hochskaliert werden kann.
Dies kann bedeuten, dass dem Benutzer Informationen mitgeteilt oder visuelle Hinweise hinzugefügt werden.
Die Veröffentlichung von 1080p ist für die meisten Situationen nicht ideal.
Da die Veröffentlichung von 1080p sehr hohe Anforderungen an CPU und Bandbreite stellt, ist es für die meisten Anwendungsfälle vorteilhaft, bei niedrigeren Auflösungen wie 720p (HD), VGA oder sogar QVGA zu bleiben.
Dies gilt vor allem dann, wenn Clients beabsichtigen, mehrere veröffentlichte Streams zu abonnieren und anzuzeigen. Wenn kein Abonnent den Stream mit einer Auflösung von 1080p wiedergibt, ist es eine Verschwendung von Ressourcen für den Herausgeber, 1080p zu konfigurieren.
Anwendungen mit mehr als zwei gleichzeitigen Streams - wie z. B. Videokonferenzen - sind für Clients möglicherweise nicht für die Veröffentlichung von 1080p optimiert. Wenn Clients mehrere Streams empfangen, ist es vorteilhafter, Auflösungen zu veröffentlichen, die am häufigsten angezeigt werden.
Wenn es sich um einen Eins-zu-Eins-Fall handelt (zwei Clients streamen zueinander), sollten Sie die Verwendung von weitergeleitete Sitzungen um die direkten Verbindungen zwischen den Clients zu nutzen. Wenn der Anwendungsfall eins-zu-eins ist und Ihre Zielgeräte unterstützen H.264-Hardware-gestützte Encoder, sollten Sie die Verwendung von H.264 in Betracht ziehen. (Siehe Video-Codecs.)
Faktoren, die für die Unterstützung von 1080p ausschlaggebend sind
Eine Auflösung von 1080p ist nicht gleichbedeutend mit hoher Qualität, wenn diese Faktoren nicht erfüllt werden können. Um 1080p zu unterstützen, benötigen Sie Folgendes:
- Kamera-Auflösung - Die Veröffentlichungskamera muss 1080p (1920x1080) unterstützen. Wenn die Kamera 1080p nicht unterstützt, ist die Veröffentlichungsauflösung auf die Auflösung der Kamera beschränkt. Während 1080p heute in der Regel von Webkameras unterstützt wird, die für Videochats gekauft werden, unterstützen viele Standardkameras von Geräten (z. B. von Macs) keine 1080p. Ältere Geräte unterstützen oft keine 1080p.
- Ressourcen für die Datenverarbeitung im Gerät - Für die Veröffentlichung von 1080p muss das Gerät über genügend Rechenleistung verfügen, um die Echtzeit-Codierung von 1080p zu unterstützen und die CPU-Last so lange aufrechtzuerhalten, wie der Stream veröffentlicht wird. Der Encoder für VP8 wird normalerweise in Software ausgeführt und benötigt eine sehr hohe dauerhafte CPU-Leistung, um weiterhin Live-Videostreams mit 1080p zu veröffentlichen. Wenn Simulcast erforderlich ist, wird zusätzliche CPU benötigt, um mehrere Stream-Qualitäten zu kodieren, die auf die Abonnenten verteilt werden können. Das Gerät wird wahrscheinlich auch Eingangsströme abonnieren und verarbeiten, und die Gesamt-CPU-Auslastung wird hoch sein, wenn 1080p aktiviert ist. Neuere Mobilgeräte verfügen zwar über eine ausreichende CPU-Leistung, um 1080p zu unterstützen, aber die Verarbeitung kann schnell an Qualitätsgrenzen stoßen, wenn die Akkuleistung schnell nachlässt. Laptops und Desktop-Computer sind am besten geeignet, um 1080p-Publishing zu unterstützen, müssen aber bei längeren Sitzungen wahrscheinlich mit einer anderen Stromquelle als dem Akku betrieben werden.
- Netzwerk-Bandbreite - Um 1080p-Videos zu veröffentlichen, muss der Client über ein stabiles Netzwerk verfügen, das hohe Veröffentlichungs-Bitraten unterstützen kann. Um eine 1080p-WebRTC-Veröffentlichung mit 30 Bildern pro Sekunde zu erreichen, ist eine Bandbreite von ca. 3 bis 4,5 Mbit/s für einen kontinuierlichen Upload erforderlich. Für skalierbares VideoDies erfordert noch höhere Bandbreiten - bis zu 6 Mbit/s - für die Herausgeber, um bis zu drei Qualitätsebenen zu unterstützen, die vom Gerät kodiert und gestreamt werden. Abonnierende Clients müssen in der Lage sein, bis zu 4,5 Mbps pro abonniertem 1080p-Stream zu verarbeiten.
- Unterstützte Versionen - 1080p wird in den Versionen 2.23.0 der Video API-Client-SDKs unterstützt. Auch in Webanwendungen wird 1080p in Chrome und Firefox unterstützt (derzeit gibt es jedoch einen Fehler in Firefox unter MacOS).
WebRTC-Video-Encoder (z. B. der Encoder in Chrome) bewerten aktiv CPU und Bandbreite, um zu sehen, ob die richtige Auflösung erreicht werden kann, und passen sich dynamisch an die Gerätefähigkeiten an. Das kann bedeuten, dass eine gewünschte 1080p-Auflösung zwar für die Veröffentlichung konfiguriert ist, der Encoder aber sein Bestes auf der Grundlage der Gerätefähigkeiten, einer verminderten CPU oder einer verminderten Bandbreite geben muss.
Das Verhalten des Encoders kann unterschiedlich sein, je nachdem, ob es Bandbreiten- oder CPU-Beschränkungen gibt.
Der Encoder kann die Bildrate reduzieren, um der verringerten Leistung gerecht zu werden, was bedeutet, dass das Video scheinbar einfriert, da weniger Videobilder vom Encoder produziert werden, um mit diesen Situationen fertig zu werden. (Wenn der Encoder beispielsweise die Bildrate auf 5 bis 6 Bilder pro Sekunde reduziert, weil die Ressourcen nicht ausreichen, kann das Video unerwünscht werden).
Je nach dem für das Video angegebenen Inhaltshinweis wird der Encoder so eingestellt, dass die Lebendigkeit oder die Auflösung erhalten bleibt. Einzelheiten zu Inhaltshinweisen finden Sie im folgenden Inhalt:
Außerdem kann ein abonnierter Client die bevorzugte Auflösung des konsumierten Videos (in einer weitergeleiteten Sitzung) auf eine niedrigere Auflösung einstellen:
- Web - Subscriber.setPreferredResolution()
- Android. SubscriberKit.setPreferredResolution()
- iOS - SubscriberKit.preferredResolution
- Fenster - Subscriber.PreferredResolution
- Linux -
otc_subscriber_set_preferred_resolution()
Skalierbares Video für geroutete Sitzungen
Die Vonage Video API unterstützt skalierbares Video mit dem VP8-Codec. Bei Sitzungen mit einer großen Anzahl von Teilnehmern ist es im Allgemeinen vorzuziehen, skalierbares Video für 1080p zu aktivieren, auch wenn dies höhere CPU- und Bandbreitenanforderungen mit sich bringt.
Durch die Aktivierung von skalierbarem Video wird vermieden, dass die Erlebnisqualität (Quality of Experience, QoE) für alle Abonnenten beeinträchtigt wird, wenn ein oder mehrere Abonnenten nicht die höchste Qualitätsstufe empfangen können.
Die zusätzlichen kodierten Simulcast-Layer bieten dem Vonage Video API Media Router die Möglichkeit, Videostreams in geringerer Qualität an Abonnenten zu streamen, die Schwierigkeiten mit der Unterstützung von 1080p haben, während die höchste 1080p-Qualitätsschicht für Abonnenten, die 1080p unterstützen können, zugelassen wird.
Für skalierbare Videos erfordern 1080p-Streams höhere Publisher-Bandbreiten (empfohlen bis zu 6 Mbit/s), um die verschiedenen Auflösungsqualitätsebenen zu unterstützen, die vom Gerät kodiert und gestreamt werden.
Feststellen, ob skalierbare Video-Simulcast-Ebenen verfügbar sind
Skalierbares Video Die Unterstützung der Simulcast-Ebenen wird durch das Client-Gerät oder den Browser bestimmt. Skalierbares Video ist nur in Streams verfügbar, die von Clients veröffentlicht werden, die es verwenden:
- Das iOS SDK (auf bestimmten Geräten)
- Das Android SDK (auf bestimmten Geräten)
- Das Windows-SDK
- Das Linux-SDK
- Das Linux-SDK
- Das macOS-SDK
- OpenTok.js in Chrome, Safari, Samsung Internet, WebView Android und WebView auf iOS (mit Beta-Unterstützung in Desktop-Versionen von Opera und Chromium-basierten Versionen von Edge)
- Das React Native SDK (auf bestimmten Geräten)
Skalierbares Video wird für VP8-Streams unterstützt, und es gibt eine Beta-Unterstützung für VP9-Streams (siehe diese Dokumentation). Sie wird nicht unterstützt für H.264.
Es ist zu beachten, dass es einen Unterschied zwischen den Simulcast-Ebenen für 1080p (FHD) und 720p (HD) gibt, die sich nicht überschneiden, und dieser Unterschied sollte bei der Auswahl der Auflösung für die Anwendungserfahrung berücksichtigt werden.
Wenn die Auflösung 720p ausgewählt ist, werden drei Ebenen auf der Grundlage von 720p als höchster Auflösung kodiert:
- 1280x720
- 640x360
- 320x180
Wenn eine Auflösung von 1080p gewählt wird, werden drei Ebenen auf der Grundlage von 1080p als höchster Auflösung kodiert:
- 1920x1080
- 960x540
- 480x270
Beachten Sie, dass, wenn das Gerät auf eine Auflösung von 1080p eingestellt ist, wird eine skalierbare Videoebene mit 540p erzeugt. Die 540p-Ebene hat eine kleinere Dimension als die obere 720p-Ebene. Applications sollten diesen Kompromiss in Betracht ziehen, wenn die 1080p-Schicht die Endpunkte nicht erreichen kann.