1080p-Video
Bei der Verwendung von Videos mit einer Auflösung von 1080p in einer 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 ein Gerät unterstützt 1080p zunächst nicht.
- Wenn sich die Bedingungen verschlechtern und die Auflösung daher 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 in 1080p ist nicht ideal für die meisten Situationen
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 für die Veröffentlichung verwendete Kamera muss 1080p (1920 × 1080) unterstützen. Wenn die Kamera 1080p nicht unterstützt, ist die Veröffentlichungsauflösung auf die Auflösung der Kamera beschränkt.
Zwar wird 1080p heutzutage bei Webkameras, die für Videochats gekauft werden, in der Regel unterstützt, doch viele standardmäßig integrierte Kameras (wie beispielsweise bei Macs) unterstützen 1080p nicht. Ältere Geräte unterstützen 1080p oft nicht.
-
Ressourcen für die Datenverarbeitung im Gerät — Für die Veröffentlichung in 1080p muss das Gerät über ausreichend Rechenleistung verfügen, um die Echtzeit-Kodierung von 1080p zu unterstützen und die CPU-Auslastung über die gesamte Dauer der Stream-Veröffentlichung aufrechtzuerhalten. Der VP8-Encoder läuft standardmäßig als Software und benötigt eine sehr hohe, anhaltende CPU-Auslastung, um Live-Videostreams mit 1080p kontinuierlich zu veröffentlichen. Wenn ein Simulcast erforderlich ist, wird zusätzliche CPU-Leistung benötigt, um mehrere Stream-Qualitäten zu kodieren, die an die Abonnenten verteilt werden können. Das Gerät wird zudem wahrscheinlich Eingangsstreams abonnieren und verarbeiten, sodass die Gesamt-CPU-Auslastung hoch sein wird, wenn 1080p aktiviert ist.
Neuere Mobilgeräte verfügen heute zwar möglicherweise über genügend Rechenleistung, um 1080p zu unterstützen, doch kann die Verarbeitungsleistung schnell an ihre Grenzen stoßen, sobald der Akku sich zusehends entlädt. Laptops und Desktop-Computer eignen sich am besten für die Veröffentlichung in 1080p, müssen jedoch bei längeren Sitzungen wahrscheinlich an eine andere Stromquelle als den Akku angeschlossen 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. Außerdem wird 1080p in Web-Apps 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 den für das Video bereitgestellten Inhaltshinweisen wird der Encoder so eingestellt, dass entweder die Lebendigkeit oder die Auflösung im Vordergrund steht. Weitere Informationen zu Inhaltshinweisen finden Sie in den folgenden Artikeln:
Außerdem kann ein abonnierender Client die bevorzugte Auflösung des wiedergegebenen 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() - macOS —
otc_subscriber_set_preferred_resolution() - React Native -
preferredResolutionEigenschaft vonOTSubscriber propertiesStütze
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-Ebenen bieten dem Video API Media Router die Möglichkeit, Videostreams in geringerer Qualität an Abonnenten zu übertragen, bei denen die Wiedergabe von 1080p Probleme bereitet, während Abonnenten, die 1080p unterstützen, die höchste 1080p-Qualität erhalten.
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 OpenTok-iOS-SDK (auf bestimmten Geräten)
- Das OpenTok Android SDK (auf bestimmten Geräten)
- Das OpenTok Windows SDK
- Das OpenTok-Linux-SDK
- Das OpenTok-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 OpenTok 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 dass dieser Unterschied bei der Auswahl der Auflösung im Hinblick auf das Anwendungserlebnis berücksichtigt werden sollte.
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 should consider this compromise if the 1080p layer cannot reach the endpoints.