So wählt iOS Kameraauflösung und Bildrate - Amazon IVS

So wählt iOS Kameraauflösung und Bildrate

Die vom Broadcast-SDK verwaltete Kamera optimiert ihre Auflösung und Bildrate (Bilder pro Sekunde oder FPS), um die Wärmeentwicklung und den Energieverbrauch zu minimieren. In diesem Abschnitt wird erläutert, wie Auflösung und Bildrate ausgewählt werden, um Hostanwendungen bei der Optimierung für ihre Anwendungsfälle zu unterstützen.

Wenn ein IVSLocalStageStream mit einer IVSCamera erstellt wird, ist die Kamera für eine Bildrate von IVSLocalStageStreamVideoConfiguration.targetFramerate und eine Auflösung von IVSLocalStageStreamVideoConfiguration.size optimiert. Das Aufrufen von IVSLocalStageStream.setConfiguration aktualisiert die Kamera mit neueren Werten.

Kameravorschau

Wenn Sie eine Vorschau einer IVSCamera erstellen, ohne sie mit einer IVSBroadcastSession oder IVSStage zu verbinden, wird standardmäßig eine Auflösung von 1080p und eine Bildrate von 60 Bildern pro Sekunde verwendet.

Übertragen einer Stage

Bei der Verwendung einer IVSBroadcastSession zu Übertragung einer IVSStage versucht das SDK, die Kamera mit einer Auflösung und Bildrate zu optimieren, die die Kriterien beider Sitzungen erfüllen.

Wenn die Broadcast-Konfiguration beispielsweise auf eine Bildrate von 15 FPS und eine Auflösung von 1080p eingestellt ist, während die Stage eine Bildrate von 30 FPS und eine Auflösung von 720p hat, wählt das SDK eine Kamerakonfiguration mit einer Bildrate von 30 FPS und einer Auflösung von 1080p aus. Bei der IVSBroadcastSession fehlt jedes zweite Bild von der Kamera und die IVSStage skaliert das 1080p-Bild auf 720p herunter.

Wenn eine Host-Anwendung plant, sowohl eine IVSBroadcastSession als auch eine IVSStage zusammen mit einer Kamera zu verwenden, empfehlen wir, dass die Eigenschaften targetFramerate und size der jeweiligen Konfigurationen übereinstimmen. Eine Nichtübereinstimmung kann dazu führen, dass sich die Kamera während der Videoaufnahme selbst neu konfiguriert, was zu einer kurzen Verzögerung bei der Übertragung von Videos führt.

Wenn identische Werte nicht dem Anwendungsfall der Hostanwendung entsprechen, verhindert das Erstellen der Kamera mit höherer Qualität, dass sich die Kamera selbst neu konfiguriert, wenn die Sitzung mit niedrigerer Qualität hinzugefügt wird. Wenn Sie zum Beispiel mit 1080p und 30 Bildern pro Sekunde übertragen und später einer Stage beitreten, die auf 720p und 30 FPS eingestellt ist, konfiguriert sich die Kamera nicht selbst neu und die Videowiedergabe läuft ohne Unterbrechung weiter. Dies liegt daran, dass 720p kleiner oder gleich 1080p und 30 FPS kleiner oder gleich 30 FPS sind.

Beliebige Bildraten, Auflösungen und Seitenverhältnisse

Die meisten Kameras können gängige Formate wie 720p bei 30 FPS oder 1080p bei 60 FPS exakt wiedergeben. Es ist jedoch unmöglich, alle Formate exakt wiederzugeben. Das Broadcast-SDK wählt die Kamerakonfiguration auf der Grundlage der folgenden Regeln aus (in der Reihenfolge ihrer Priorität):

  1. Breite und Höhe der Auflösung sind größer oder gleich der gewünschten Auflösung, aber innerhalb dieser Beschränkung sind Breite und Höhe so klein wie möglich.

  2. Die Bildrate ist größer oder gleich der gewünschten Bildrate, aber innerhalb dieser Beschränkung ist die Bildrate so niedrig wie möglich.

  3. Das Seitenverhältnis entspricht dem gewünschten Seitenverhältnis.

  4. Wenn es mehrere passende Formate gibt, wird das Format mit dem größten Sichtfeld verwendet.

Nachfolgend finden Sie zwei Beispiele:

  • Die Host-Anwendung versucht, in 4K mit 120 FPS zu übertragen. Die ausgewählte Kamera unterstützt nur 4K bei 60 FPS oder 1080p bei 120 FPS. Das gewählte Format ist 4K bei 60 FPS, da die Auflösungsregel eine höhere Priorität hat als die Bildratenregel.

  • Eine unregelmäßige Auflösung wird angefordert, 1910x1070. Die Kamera wird 1920x1080 verwenden. Vorsicht: Wenn Sie eine Auflösung wie 1921x1080 wählen, skaliert die Kamera auf die nächste verfügbare Auflösung (z. B. 2592x1944) hoch, was sich nachteilig auf die CPU- und Speicherbandbreite auswirkt.

Was ist mit Android?

Android passt seine Auflösung oder Bildrate nicht wie iOS im laufenden Betrieb an, sodass dies keine Auswirkungen auf das Android-Broadcast-SDK hat.