Linux am Dienstag – Programm für den 21.2.2023

Es ist Samstag und das Programm steht schon? Das könnte öfter so sein, wenn sich mehr als Referenten zur Verfügung stellen würden. Diesmal dabei Linux Surface Kameras, OBS und das QT5 Problem auf Fedora und wir dissen ChatGPT ein bisschen 😉

Linux am Dienstag – Programm für den 21.2.2023

u.a. im Programm am 21.2.2023, ab 19 Uhr:

  • Vortrag – Video in der Konsole abspielen
  • Vortrag – Surface Kameras zum Laufen bringen
  • Fedora – OBS QT5 Abhängigkeitsproblem auflösen
  • KI – ChatGPT entzaubert
  • Sicherheit – Mirai Botnetz bedroht Linux
  • Künstliche Intelligenz – Ergebnisse einer Woche Stable Diffusion 2.1

und andere IT-Newsbeiträge aus aller Welt. Wie jede Woche per Videokonferenz auf https://meet.cloud-foo.de/Linux .Hinweis: Die bisherigen Vorträge findet man unter https://linux-am-dienstag.de/archiv/ .

 

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

 

 

Pinephone: Breakthrou on Fedora Pinephones

For all my normal readers, these are exceptional news, so we have to use english 😉

As you may know, Matrix is a chatprotocol which you can used with various clients, even as webapplications. As a webapplication you can make use of webfeatures like WEBRTC to open audio & video chats with End-2-EndCryption ( E2EC in matrix terms ).

On my tests to get a fully featured matrix client for the Pinephone, I had the idea to simply use firefox and chromium to access a self-hosted webinstance of the element-web client. It’s basically the same idea that Schildichat and others are using in form of an electron application, which you can install on your pc. Electron apps ship a special version of the Chromium browser with some html and javascript files as a package, i.e. inside a flatpak.

Pinephone: Breakthrou on Fedora Pinephones

As to the current date, no tested application on the normal Fedora aarch64 repo was capable of accessing the video cameras on the Pinephone, besides the specially crafted megapixels. Megapixels just takes pictures atm, so we had no working video solution.

Firefox makes a good matrix webclient ui and I knew from earlier tests, that in a WEBRTC session audio works good. Firefox can easily be made a clickable „Matrix“ icon the desktop by creating a matching desktopfile in :

    [Desktop Entry]
    Version=1.0
    Name=Matrix Web
    Comment=Directlink
    GenericName=Matrix Web
    Exec=env LIBVA_DRIVER_NAME=v4l2_request LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video0 LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0 MOZ_ENABLE_WAYLAND=1 firefox-wayland %U https://HOMESERVERNAME/web/
    Terminal=false
    X-MultipleArgs=false
    Type=Application
    Icon=/home/pine/images/matrix-logo.png
    Categories=Network;WebBrowser;
    MimeType=text/html;
    StartupWMClass=chromium-browser
    Keywords=web;browser;internet;
    X-Desktop-File-Install-Version=0.26

The URL needs to point to the web client and Javascript needs to be enabled. You may notice the V4L2 env vars, they are step one to enable gpu acceleration. If you run NoScript in your Firefox make the necessary adjustments and your on track. I tested audio calls and they worked as expected, so I thought to myself: „why not“ and hit the video call button.

It does not only sound like an accident, it was 🙂 To our all very great surprise the Pinephone cameras went on and presented a live YUYV image from the ov5640 camera chip. There is a theory how Firefox did it, but that needs further investigations 😉

You can mark the 4th of march, 2021 11:07 CET as the time and date, that first video call (we know of) was done \o/

The other side of such a call looked like this, and actually this also was a surprise, as we got full colors from the image:

The first reaction on the global Pinephone chat was amazing:

aluizioneto

Marius
Breaking News .. Video Chat via Matrix from Pinephone WORKING 😆
Very nice!!! That would solve everything for me. Where is my PP CE?? 😃

A great moment for Pinephone users 🙂

But, there is still much to be done here. Firefox on Pinephone does not have hw acceleration in use yet, so it took all 4 cpu cores on the phone to do that call and it was still not enough processing power, as the audio part was interrupted and lagging behind. Atm Mr. Stransky is helping out to fully enable the allwinner GPU for Firefox. You need to now, that we already have a working libva driver for the Allwinner soc, called libva-request.

MPV is already using this lib to decode FullHD MP4 movies on my Pinephone with next to 0 frame drops. The amount of power consumption has dropped significantly too, so it’s possible to watch a full length movie without running out of juice. The Pinephone is using 3.6 Watt if all cpu cores are running, which results in app. 2 hours until the battery is drained. With the help of the gpu this is no longer the case, as the power consumption got down to around 2 Watt, doubling the life time of a full battery charge.

When Firefox is using the gpu and we have a better performance, it will be possible to make a videocall and leave the house without a mobile powerbank 😉

We have to thank many contributors to made this happen, in special the Fedora SIG Mobility team members who are massively testing and updating packages for Pinephone and PineTab.

I hope, that we all can see us in a Pinephone driven smooth Videoconference soon 😉

if you wanne see a video taped in the pine, check this article on the bottom:

Pinephone: Willkommen bei Element