Bino: der 3D Videoplayer

Bei Linux am Dienstag hatten wir jetzt zwei Wochen lang Spaß mit 3D Bildern, da wird es Zeit Euch daran teilhaben zu lassen 😉  In Teil 1 der neuen Miniserie, befassen wir uns mit Bino, dem 3D-Videoplayer. Dann mit FFMPEG und den spannenden Möglichkeiten, die sich damit bieten.

Bino: der 3D Videoplayer

Wer war schon in den 80ern auf der Welt und hat noch eine Rot-Grünbrille von Damals? 🙂 Die, oder besser die moderne Version in Rot-Cyanblau, werdet Ihr gleich brauchen:

Szene aus „Alice in Borderland 2020“ IMDB

BINO kann aus 2D Material 3D Material machen, aber das kostet uns etwas.

Das hier angewandte Verfahren, analysiert die Pixelbewegung zwischen zwei aufeinander folgenden Bildern. Je nach der Geschwindigkeit der Pixelbewegung, also wieweit die in einem Frame gekommen sind, werden die zwei Bilder zu einem Mischbild verrechnet und die bewegten Pixel in Rot bzw. Cyanblau eingefärbt. Man sieht das ja oben im Bild. Durch die Brille sieht man jetzt jeweils auf einem Auge nur eine der beiden Farbe, die sehr genau ausgefiltert sein müssen, damit möglichst viele andere Farben in dem Bild „sauber“ durchkommen.

Wer sich das Bild oben ohne Brille ansieht, der erkennt das natürlich sofort 😉 mit Brille sieht das schon viel „besser“ aus. Achtet bei dem Testbild mal auf die Schulter von der Person im Vordergrund, die springt mit Einsatz der Brille förmlich vom Hintergrund weg und der 3D Effekt zeigt sich ganz deutlich.

Verluste sind eingepreist

Um diesen Effekt zu bekommen, werden ja zwei Bilder verglichen. Leider ist der von Bino eingesetzte Algorithmus nicht der allerbeste, was als Konsequenz bedeutet, wir verlieren 50% der Frames. Bei einer 30 FPS Aufnahme, fängt das Bild beim Abspielen dann an zu rucken wie in den 10er Jahren des letzten Jahrhunderts. Das ist weniger schön, aber kompensierbar, wenn man 60 FPS Material benutzt. Es verursacht auch auf Dauer böses Kopfweh.

Aufgrund der eingesetzten Methode durch bestimmte Farben, sieht das Bild nicht mehr normal aus, deswegen hat man ja dann in den 2000er Jahren die Polarisationsgläser im Kino eingesetzt, die das Farbsehen nicht beeinflussen. Auf einem normalen Monitor kann man solche Brillen aber nicht einsetzen, dazu braucht es dann spezielle 3D Monitore, die mittlerweile ziemlich rar gesät sind. VR Brillen füllen diese Lücke, sind aber finde ich, zu teuer um sich da mal einen Spaß zu machen.

Dem Algorithmus is auch geschuldet, daß Bildteile, die sich nicht bewegen, keinen 3D Effekt erzeugen. Das kann Bino aber ein bisschen ausgleichen in dem es eine Kantenerkennung einsetzt und dort perspektivische Pixelverschiebungen erzeugt:

geht auch bei Standbildern

Den Parallaxenwert zu hoch zusetzen ist sinnlos, 0,01 – 0,05 reichen völlig aus für einen Tiefeneindruck. Dieser kleine Trick macht das Erlebnis etwas besser, ist aber zu einem Film, der in 3D gedreht wurde, kein Vergleich.

Bino kann aber noch mehr

Bino kann als Bildquelle auf Webcams benutzen, so daß man sich, oder etwas, in 3D bewundern kann, vorausgesetzt man bewegt sich ausreichend 😀 Leider kann man das Bild nicht live exportieren, also nicht in einer Videokonferenz benutzen. Das ist aber die perfekte Überleitung zum nächsten Artikel der Serie: „Mit FFMPEG zur Live 3D Videokonferenz“ 😀

Programmtechnisch hat Bino leider auch noch ein paar kleine Bugs, z.b. muß man alle Werte neu setzen, wenn man einen neuen Film lädt. Auch macht die GUI nicht mit, wenn man über das Menü einen Film laden will, werft den stattdessen via Drag&Drop auf das Programmfenster, das funktioniert zuverläßig.

Update: Teil 2

FFMPEG: 2D zu 3D in Echtzeit