Wie wir eine iOS-App zum Aufnehmen eines 3D-Videos erstellt haben (Fallstudie)
Veröffentlicht: 2022-03-10Unser Team war auch von 3D-Filmen angezogen. Wir haben die Eigenschaften des menschlichen Sehapparates und die technischen Details der stereoskopischen Fotografie gründlich studiert. Dann entschieden wir uns, eine iOS-App zu entwickeln, um 3D-Videos aufzunehmen und die Videos auf YouTube hochzuladen. Die Idee hinter der App war, das Aufnehmen von 3D-Videos zu erleichtern, indem zwei iPhones an einem speziellen Rahmen befestigt werden – und wir haben es geschafft! So entstand die Stereo Video Recorder App.
Wir haben uns entschlossen, den Lesern des Smashing Magazine unsere Untersuchung zur Erstellung von 3D-Videos mitzuteilen. Wir möchten auch über die technischen Merkmale der Erstellung der Anwendung sprechen und detaillierte Zeichnungen des Rahmens zur Verfügung stellen, der zur Befestigung der iPhones verwendet wird.
Wie alles begann
Bei unserer Untersuchung von 3D-Videofunktionen begannen wir mit Experimenten zur virtuellen Realität. Wir haben einen Kartonrahmen konstruiert und durch ihn hindurch über zwei iPhones im 3D-Format auf die Welt geschaut. Einzelheiten zu unserer Forschung finden Sie in unserem Blog. Wir gehen hier weiter.

Um diese Forschung fortzusetzen, haben wir uns entschieden, einen weiteren Prototyp der Anwendung zu erstellen, einen, der es Ihnen ermöglicht, stereoskopisches 3D-Video aufzunehmen und auf YouTube hochzuladen.
Stereoskopie ist eine Methode, um die Illusion von Tiefe in einem flachen Bild zu erzeugen. Stereoaufnahmen sind seit dem 19. Jahrhundert bekannt. Bei der Erstellung von stereoskopischen 3D-Videos simulieren wir binokulares Sehen. Aufgrund des Abstands zwischen den Pupillen ist es für das menschliche Gehirn viel einfacher, das Volumen des umgebenden Raums – den Abstand zu Objekten – zu analysieren. Binokulare Stereoskopie ist in der Filmindustrie weit verbreitet. Sie können kaum auf ein Hollywood-Meisterwerk stoßen, das kein Stereoformat verwendet.
Der Zweck unseres App-Prototyps bestand darin, Videos gleichzeitig mit zwei verschiedenen iPhone-Kameras aufzunehmen und die resultierenden Videodateien dann zu einer zusammenzuführen, um sie mit einer beliebigen 3D-Brille anzusehen – zum Beispiel Google Cardboard, einem Virtual-Reality-Helm oder einem 3D-Fernseher.
Stereobild und unsere Wahrnehmung eines 3D-Bildes
Lassen Sie mich näher auf Stereobilder und unsere Wahrnehmung von 3D-Bildern eingehen. Tatsächlich funktioniert die Stereographie wie unsere Augen, die sich im Laufe der Zeit entwickelt haben. Da zwischen unseren beiden Augen ein Abstand besteht, unterscheiden sich die auf die Netzhaut des linken und rechten Auges projizierten Bilder ein wenig. Dieser Unterschied wird als Parallaxe bezeichnet (ein Effekt, bei dem die Position eines Objekts unterschiedlich zu sein scheint, wenn es von zwei verschiedenen Positionen aus betrachtet wird). Der Betrachter sieht jedoch nicht zwei getrennte Bilder. Der Sehapparat bildet eine Wahrnehmung eines einzelnen räumlichen Bildes und kann Volumen, Entfernung usw. wahrnehmen. Es ist wichtig zu verstehen, dass der Sehapparat räumliche Bilder und Objekte, die sich an bestimmten Punkten im Raum befinden, erfasst, verarbeitet und projiziert.

Ein Verständnis dafür, wie der menschliche Sehapparat funktioniert, ermöglicht eine gründliche Untersuchung, wie visuelles Material aufbereitet und reproduziert werden muss, damit der Betrachter ein Gefühl für ein vollständiges 3D-Bild bekommen kann.
Schauen wir uns alles der Reihe nach an.
Wie jedes Gerät, das den Gesetzen der Physik unterliegt, hat der menschliche Sehapparat seine eigenen Merkmale und Einschränkungen.
Zuallererst müssen wir verstehen, dass wir in Bezug auf unseren visuellen Prozess unseren Blick auf nur einen einzigen Punkt richten, der als Point of View (POV) bezeichnet wird. Tatsächlich ist POV der Punkt, auf den die Augen fokussiert sind und durch den die linke und rechte Sichtlinie verlaufen. Je nach Abstand zum POV ist der Winkel zwischen den Sichtlinien des linken und rechten Auges unterschiedlich. Die Augen werden so gerichtet, dass die Linien am POV zusammenlaufen. Diese Linien sind parallel, wenn die Person in die Ferne blickt, oder mit anderen Worten in die Unendlichkeit.

Auf die Netzhaut projizierte Bilder unterscheiden sich geringfügig aufgrund der geringen Verschiebung der Augen. Dies äußert sich normalerweise in Form einer Verschiebung des Bildes, das die Person betrachtet – nach links für das linke Auge und nach rechts für das rechte Auge. Dieses bereits erwähnte Phänomen wird als Parallaxe bezeichnet.
Allerdings kann der Sehapparat Lautstärke nur bei bestimmten Parallaxenwerten wahrnehmen. Je nach Entfernung zum Objekt ist die Parallaxe für nahe und ferne Objekte unterschiedlich. Es kann sein, dass die Parallaxe den Grenzwert überschreitet und die Person kein 3D-Objekt sieht, sondern ein zweigeteiltes Bild. Ein Experiment, bei dem der Blick von nahen auf ferne Objekte umgeschaltet wird, könnte ein besseres Verständnis für die Einzelheiten bieten.

Wie aus der Abbildung ersichtlich ist, beginnen sich die Hintergrundobjekte zu teilen, wenn Sie Ihren Blick auf den Vordergrund richten. Wenn Sie Ihre Ansicht auf den Hintergrund fixieren, teilt sich das Vordergrundbild. Diese Eigenschaft des Sehapparates spielt eine wesentliche Rolle bei den Eigenschaften der 3D-Aufnahme und der Wiedergabe von Stereobildern.
Im normalen Leben bemerken wir diesen Effekt nicht, weil wir es gewohnt sind, nur einem Objekt zu folgen, und wenn Sie Ihren Blick verschieben, passt sich Ihre Sicht schnell an die neuen Bedingungen an. Wenn wir jedoch versuchen, aus zwei Bildern mit vorgegebener Parallaxe ein Volumenbild künstlich zu projizieren, kann sich der Sehapparat nicht mehr so schnell anpassen wie sonst. Damit der visuelle Apparat in einem normalen Modus arbeitet, muss die 3D-Videoausrüstung an die Augen des Betrachters angepasst werden, wobei analysiert wird, wo sich der Beobachtungspunkt befindet. Dieses Gerät sollte auch Stereobilder mit der erforderlichen Parallaxe erzeugen.
Die Umsetzung ist jedoch technisch sehr schwierig. Üblicherweise wird ein einfaches Schema mit festen geometrischen und technischen Schussparametern verwendet. Diese Parameter sind für Nah- und Fernansichten unterschiedlich. Unter geometrischen und technischen Parametern verstehen wir das Sichtfeld der Kameras, die horizontale Verschiebung der Kameras vom Zentrum, den Rotationswinkel der Kameras und den Konvergenzpunkt der Kameras.
Daher wären Sie nicht in der Lage, gleichermaßen nahe und entfernte Objekte zu fotografieren, wenn Sie nur eine Aufnahmeausrüstung (zwei Kameras und einen Rahmen) haben. Genauer gesagt könntest du drehen, aber es wäre für eine Person äußerst unangenehm, ein Video anzusehen, in dem beispielsweise das Gerät auf eine Fernansicht eingestellt ist, aber eine Nahaufnahme oder umgekehrt mit dem Stereoeffekt aufnimmt im Hintergrund schwach ausgeprägt.

Von der Idee zur Praxis: So montieren Sie die iPhones
Kehren wir zu unserer Idee zurück. Wir entschieden uns für die Entwicklung eines mobilen App-Prototyps, der 3D-Stereovideos aufzeichnen kann. In Anbetracht all dessen mussten wir Folgendes bewerten:
- die grundsätzliche Möglichkeit, mit zwei iPhones ein Stereobild aufzunehmen;
- der effektive Abstandsbereich, der eine qualitativ hochwertige und komfortable Stereowahrnehmung unter Berücksichtigung der üblichen Bedingungen bei der Verwendung einer Kamera gewährleisten würde.
Als wir der Erstellung eines Prototyps sehr nahe kamen, haben wir als erstes das Potenzial der iPhone-Kamera für unsere Aufgabe evaluiert. Wir waren angenehm überrascht, als wir feststellten, dass das iPhone einen akzeptablen Blickwinkel für Nahaufnahmen bietet. Wie bereits erwähnt, reicht es nicht aus, nur zwei Kameras nebeneinander zu platzieren, um einen guten Stereoeffekt zu erzielen. Normalerweise beginnt der Algorithmus zur Berechnung der Aufnahmen mit der Festlegung der Parameter des Plans, dh der Entfernungen zu den nächsten und entferntesten Objekten und den Entfernungen zwischen Objekten in der Ebene des Rahmens. Basierend auf diesen Daten werden dann die Installationsparameter ausgewählt.
Eine vereinfachte Berechnung des Abstands zwischen Kameras kann anhand dieser Formel erfolgen:

-
Parallax<sub>fore</sub>
legt die maximale Verschiebung des Vordergrundbildes fest, wenn sich die Stereopaarrahmen überlappen. -
L<sub>fore</sub>
= Abstand zum Vordergrundobjekt -
f
= Brennweite des Objektivs -
L
= Abstand zum Brennpunkt der Linse -
M
= Frame-Zoom
In unserem Fall mussten wir den Algorithmus leicht ändern, da wir eine Standardkamera verwendet haben und dementsprechend die Brennweite des Objektivs starr eingestellt ist. Unsere Aufgabe war es, einen angenehmen Stereoeffekt und einen akzeptablen Abstandsbereich zum Aufnahmeobjekt zu erzielen. Wir mussten also mehrere Experimente durchführen – indem wir beide Kameras relativ zueinander anordneten – um den erforderlichen Abstand zwischen ihren Mittelpunkten (der Abstand zwischen den Mittelpunkten der Kameras) und die Konvergenzwinkel zu finden.
Um die Aufgabe im Prototyping-Prozess zu vereinfachen, haben wir uns entschieden, die Kameras nicht zu drehen, um an einem bestimmten Punkt Konvergenz zu erreichen, sondern Konvergenz im Unendlichen zu verwenden. Es stellte sich heraus, dass es notwendig ist, den Konvergenzwinkel der Kameras genau einzustellen, um das beste Ergebnis zu erzielen. Und wenn wir berücksichtigen, dass wir geplant hatten, einen Kartonrahmen für die Befestigung der iPhones herzustellen, dann wird es praktisch unmöglich, den Konvergenzwinkel der Kameras einzustellen. Nach einer Reihe von Experimenten sind wir also zu einem Kompromiss gekommen, um die optimale Balance zwischen dem Abstand zwischen den Kameras zu finden, um Aufnahmen im Nahbereich zu ermöglichen, und einen guten Stereoeffekt zu erzielen.


Unser Ziel war es, den einfachsten Rahmen für die iPhones zu entwickeln, der einfach herzustellen und bequem zu bedienen ist, die notwendigen Aufnahmeparameter bietet und die erforderliche Steifigkeit aufweist. Daher haben wir uns für ein 3D-Modell entschieden, das aus Kunststoff oder Schaumstoff (in diesem Fall Polystyrol) durch Fräsen oder 3D-Druck hergestellt werden kann. In Zukunft wollen wir natürlich ein Gerät entwickeln, das einfacher herzustellen ist – zum Beispiel ein Gerät aus Pappe.
Die einzige Hardwarebeschränkung besteht im Moment darin, dass Sie dieselben Geräte mit absolut identischen Kameras verwenden müssen.


Nachfolgend finden Sie detaillierte Zeichnungen des Rahmens für verschiedene Versionen von Geräten mit Bildschirmgrößen von 4,0, 4,7 und 5,5 Zoll – passend für das iPhone 6+ und 6S+, für das 6, 6S und 7 sowie für das 5 und 5S.



App für stereoskopische 3D-Videoaufnahmen
Die App läuft gleichzeitig auf zwei Geräten, aber die Aufnahme wird nur von einem der Geräte gesteuert, sodass der Aufnahmevorgang nicht auf besondere Weise gesteuert werden muss.
Das Standard-Nutzungsszenario der Anwendung besteht in vereinfachter Form aus folgendem Handlungsablauf:
- Montieren Sie die beiden iPhones am Rahmen.
- Führen Sie die App auf den beiden Geräten aus.
- Legen Sie fest, welches der Geräte als Master und welches als Slave dienen soll. Starten Sie die Aufnahme vom Master-Gerät. (Führen Sie auf dem zweiten Gerät keine weiteren Maßnahmen durch.)
- Warten Sie nach der Aufnahme auf die Synchronisierung der aufgezeichneten Fragmente und die Wiedergabe eines Videos, das zum Hochladen auf YouTube bereit ist.
- Laden Sie das Video nach der Synchronisierung jederzeit auf YouTube hoch und sehen Sie es sich dann auf Ihrem 3D-Fernseher oder über eine Virtual-Reality-Brille an.
Es ist erwähnenswert, dass die Hauptarbeit nur auf einem der iPhones, dem Master-Gerät, stattfindet. Auf diesem iPhone initiieren wir die Dreharbeiten. Das Video wird auch auf dem Master-Gerät verarbeitet und auf YouTube hochgeladen. Es dauert einige Zeit, das Video für das Hochladen auf YouTube vorzubereiten. Dies hängt von der Leistungsfähigkeit der verwendeten Geräte und von der Qualität der Verbindung zwischen Master- und Slave-Geräten ab.
Das zweite iPhone, das als Slave agiert, wird nur als zweite Kamera verwendet. Am Ende der Aufnahme sendet es das Videofragment an das Master-Gerät.

Die Screenshots des Hauptbildschirms der App, die die Galerie der aufgenommenen Videos anzeigen, werden unten gezeigt. Die Videos können sowohl über einen eingebetteten Player als auch auf YouTube angesehen werden. Hier können Sie auch beobachten, wie den Geräten weitere Schießrollen (Master und Slave) zugewiesen werden.


Technische Hürden
Desynchronisation
Alle Manipulationen an den Videofragmenten werden mit Hilfe des mächtigen Frameworks AVFoundation durchgeführt, wenn möglich mit Hardwarebeschleunigung.
Zum Hochladen auf YouTube werden die Videofragmente Bild für Bild nebeneinander geklebt. Offensichtlich sollte jedes linke Bild zeitlich mit dem rechten Bild übereinstimmen. Bei der geringsten Verzögerung in den Frames einer der Quellen geht der Stereoeffekt verloren oder wird verzerrt (insbesondere in dynamischen Szenen) und das Bild wird verdoppelt.
Um dieses Problem zu beheben, haben wir gleichzeitig mit der Videoaufzeichnung auf den Geräten begonnen. Tatsächlich beginnt die Aufzeichnung nicht sofort nach dem Drücken der Starttaste, sondern nach einer kurzen Verzögerung, innerhalb derer ein bestimmter Algorithmus aktiviert wird – ganz ähnlich wie das Precision Time Protocol (PTP) den Zeitversatz misst. So konnten wir die Videoaufzeichnung mit einer Abweichung von 30 bis 50 Millisekunden auslösen, was im schlimmsten Fall ungefähr 1 Desynchronisationsframe entspricht.
Fehler in der iOS-Multipeer-Konnektivität
Wir haben die native iOS-Bibliothek Multipeer Connectivity verwendet, um die Kommunikation zwischen den beiden Geräten herzustellen. Diese Bibliothek stellt eine direkte Verbindung zwischen Geräten im selben Wi-Fi-Netzwerk sowie über Bluetooth oder etwas Ähnliches wie Wi-Fi Direct auf dem iPhone her. So können Sie Videofragmente auch auf freiem Feld ohne drahtloses oder mobiles Internetnetzwerk aufnehmen und synchronisieren. Es wird jedoch eine Internetverbindung benötigt, um das Video vom Master-Gerät an YouTube zu senden.
Der Hauptgrund, warum wir uns für diese Bibliothek entschieden haben, ist, dass sie die Kommunikation zwischen den beiden Geräten herstellt, wenn sie nicht mit demselben Netzwerk verbunden sind. Offensichtlich ist unter schlechten Stereo-3D-Aufnahmebedingungen höchstens eine 3G-Verbindung zu erwarten. Um ein 3D-Video aufzunehmen, ist es wichtig, Datenpakete zur Synchronisation mit minimaler Verzögerung übertragen zu können. Außerdem könnten wir ohne Internetverbindung nicht drehen. Daher wurde die Multipeer Connectivity-Bibliothek zu einer Lebensader. Außerdem ist es eine native Lösung für die Apple-Plattform.
Es ist jedoch erwähnenswert, dass nicht alles genau so lief, wie wir es wollten. Bei der Integration mit Multipeer Connectivity wurden viele Fehler entdeckt, und die gesamte Bibliothek war in ihrem Betrieb äußerst instabil. Die meisten deklarierten Features waren nur in der Theorie vorhanden. Wenn die Geräte innerhalb desselben Netzwerksegments betrieben werden, funktioniert die Multipeer-Konnektivität effektiver; die Verbindung wird für einen akzeptablen Zeitraum hergestellt; zulässige Streuung der Nachrichtenübermittlungszeit erreicht wird.
Wenn wir jedoch relativ schlechte Bedingungen für Stereo-3D-Aufnahmen haben oder beispielsweise viele mobile Geräte an einem Ort stehen, wird der Verbindungsaufbau zu einer Lotterie. Man hat das Gefühl, dass die Apple-Bibliothek noch nicht ausgereift und noch ziemlich roh ist.
Verknüpfen der Geräte
Wir haben das automatische Verknüpfungsprotokoll in der frühen Version unseres Prototyps implementiert. Das Protokoll selbst besteht aus einer Reihe von Regeln, nach denen ein Koordinator unter Peer-Geräten – basierend auf einer Mehrheit – zum anfänglichen Zeitpunkt ausgewählt wird.
Als nächstes sammelt der Koordinator periodisch Telemetriestatistiken von jedem Gerät, indem er eine spezielle Markierung in einem Kreis zwischen den Slave-Geräten durchläuft. Basierend auf diesen Telemetriedaten werden am Rahmen montierte Gerätepaare verglichen. Nachdem ein Paar identifiziert wurde, werden dem Paar ein Master und ein Slave zugeordnet und eine direkte Verbindung zwischen ihnen hergestellt. In diesem Stadium ist die Verknüpfung abgeschlossen.
Automatische und unabhängige Suchen
Bei Bedarf wurden automatische und unabhängige Suchen (auf der Grundlage eindeutiger Kennungen) nach Geräten durchgeführt, die an den vorherigen Sitzungen teilgenommen hatten, um sie zu synchronisieren (Erhalten aufgezeichneter Videospuren für den Fall, dass Daten zum Zeitpunkt der Aufzeichnung nicht auf das Master-Gerät geladen werden konnten). Beschleunigungsmesserwerte wurden hauptsächlich verwendet, um zu identifizieren, welche Geräte dem Paar entsprachen. Der Koordinator berechnete die Korrelation zwischen potentiellen Paaren. Überschritt die Korrelation einen bestimmten Schwellenwert, wurden die Geräte als potenzielle Paare betrachtet und anschließend die sekundären Merkmale getestet.
Da wir die oben genannten Probleme mit der Multipeer-Konnektivität nicht vollständig lösen konnten, haben wir uns entschieden, die automatische Verknüpfung vorübergehend aufzugeben, da dies den durchschnittlichen Benutzer sehr negativ beeinflusst und die Benutzererfahrung beeinträchtigt hätte.
Was wir am Ende hatten
Am Ende haben wir eine sehr interessante und qualitativ hochwertige App erreicht. Wenn Sie sich ein über diese App aufgenommenes Video ansehen, haben Sie dasselbe Gefühl wie beim Ansehen von 3D-Filmen im Kino.
Natürlich funktioniert das menschliche Auge etwas anders: Seine Linien laufen an einem bestimmten Punkt im Raum zusammen und sind abhängig vom Fokuspunkt. In unserem Fall blicken die Augen immer parallel. Aber auch bei diesem Umstand ist der Stereoeffekt sehr ausgeprägt: Das räumliche Volumen wird im Vorder-, Mittel- und Hintergrund etwa so wahrgenommen wie auf der Leinwand.
Sie benötigen eine VR-Brille oder einen 3D-Fernseher, um dieses Video richtig anzusehen.
Wir haben es also ermöglicht, die Stereo Video Recorder-App zu verwenden, um selbst 3D-Stereovideos für Ihre geschäftlichen Anforderungen oder einfach nur zum Spaß aufzunehmen!
Arbeiten an Fehlern und Zukunftsplänen
Unser Ziel wurde erreicht: Wir haben die Kriterien für die Erstellung von 3D-Videos untersucht und eine App erstellt, mit der jeder Benutzer ein Stereovideo erstellen kann. Aber es ist nicht alles so einfach, wie es sich anhört. An einigen Dingen müssen wir noch arbeiten. Wir hatten viele Probleme mit der Multipeer Connectivity-Bibliothek. Wir wollen es entweder ersetzen oder einen Workaround finden, damit die App auch bei eingeschränktem Internetzugang gut funktioniert.
Wir müssen auch:
- Implementieren Sie die synchrone Fokussierung und Belichtungsmessung auf den beiden Geräten sowie die Implementierung der Aufzeichnung von Stereo-Audiospuren.
- Entwicklung eines pragmatischeren Rahmens für die Geräte;
- Integrieren Sie den automatischen Geräte-Pairing-Mechanismus;
- bieten Unterstützung für verschiedene Geräteoptionen und sind in der Lage, mit unterschiedlichen Videoauflösungen umzugehen (derzeit können wir Videos nur mit denselben iPhone-Versionen aufnehmen – beispielsweise kann ein iPhone 5S nur mit einem anderen iPhone 5S gekoppelt werden);
- Erstellen Sie eine Android-Version der App.
Unsere Stereo Video Recorder App ist bereits im App Store. Sie können damit 3D-Videos erstellen. Wir sind sicher, dass sich die Technologie weiterentwickeln wird und dass es schließlich viele weitere Lösungen für die Erstellung von stereoskopischem Video geben wird. Wir werden versuchen, mit der Zeit Schritt zu halten.
Bitte hinterlassen Sie Ihre Kommentare und Ideen zu Ihrer Nutzung dieser App. Wir würden uns über Ihre Meinung und Ihr Feedback freuen.
Weiterführende Literatur zu SmashingMag:
- Vier Möglichkeiten zum Erstellen einer mobilen Anwendung, Teil 1: Natives iOS
- Prototyping von iOS- und Android-Apps mit Sketch (mit einem Freebie)
- Die Zukunft des Videos im Webdesign
- Die Grundlagen der Testautomatisierung für Apps, Spiele und das mobile Web