Linux am Dienstag – Programm für den 4.4.2023

Die letzte Ausgabe vor Ostern von Linux am Dienstag wird präsentiert von: Remote Desktop Solutions(TM)

Linux am Dienstag – Programm für den 4.4.2023

am Dienstag, ab 19 Uhr haben wir u.a. im Programm:

  • Vortrag – Remote Desktop Lösungen (Marius)
  • KI – KI-Flüsterer neuester Bullshit-Hype-Beruf
  • Sicherheit – Cati mit Sicherheitslücke
  • Sicherheit – Wifi-Bug im Linux Kernel
  • Sicherheit – Exploit via h264 Video Decodern

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/ .

Fedora schaltet patentierte Codecs in Mesa nicht wieder an

Wie aus erster Hand zu erfahren ist, hat das Fedoraprojekt aufgrund von juristischen Bedenken, patentierte, und damit bedenkliche, Codecs in Mesa abgeschaltet. Damit verliert Fedora über kurz oder lang in allen Produkten den Hardwarebeschleunigersupport für h264, h265 und vc1, die auf Mesa aufbauen.

Fedora schaltet patentierte Codecs in Mesa nicht wieder an

Zur Zeit ist eine Diskussion auf der Developer-Liste bei Fedora im Gange, weil in Fedora 37 in Mesa der VAAPI Support für das hardwarebeschleunigte Kodieren und Dekodieren von Videos für die Codecs: „h264,h265 und vc1 (nur Dekodieren) “ abgeschaltet wurde. Zu erklären, was Mesa genau macht, überlasse ich lieber dieser Webseite:GamingonLinux.com – What_is_Mesa?

Noch wurde dies nicht für Fedora 36 und 35 umgesetzt, laut David Airli, ist dies aber wohl nötig:

This was an oversight being enabled prior to this, and I think we have to remove it from older Fedora as well. Fedora cannot ship anything that causes the OS to provide an API which exposes patent algorithms. The patent licensing around H264/H265 is such that providing this could leave Red Hat and other Fedora distributors exposed to legal problems.“ David Airlie (27.9.2022).[1]

Hintergrund ist eine Änderung in der Mesa Kompilieroptionen, die es erlaubt, die jetzt defaultmäßig abgeschalteten Codecs ( h264,h265,vc1), für die Mesa keine Außnahmegenehmigung vom Patentinhaber hat, wieder einzuschalten [2]. Dies ist allerdings mit rechtlichen Problemen verbunden, falls die Patentinhaber auf die Idee kommen, das Fedoraprojekt wegen der Zurverfügungstellung des patentierten Algorithmus zu verklagen. Es ist nämlich nicht ganz klar, wer die Patentgebühren zu bezahlen hat: Der Grafikkartenhersteller, die Distribution oder der Endnutzer. Es wäre spannend zu wissen, wie die Situation in Deutschland ist.

Ich habe da mal bei WBS.law angefragt, ob uns Herr Solmecke bei YouTube nicht mal ein Aufklärungsvideo zur Verfügung stellen möchte. Bin mal gespannt!

Für Fedora Benutzer könnten harte Zeiten anbrechen, wenn Anwendungen den HW Support nicht mehr benutzen können. Wen das genau betreffen wird, ist noch nicht ganz klar. Leichter lässt sich beantworten, was Ihr dagegen tun könntet. Antwort: nicht viel, denn in der Mailinglistendiskussion wurde klar, daß RPMFusion, bei dem normalerweise bedenkliche Software zur Verfügung gestellt wird, kein Interesse hat, eine „free“-Version von Mesa zu warten.

Da bleibt Euch im Zweifel nur eins: MESA mit den nötigen Optionen selbst kompilieren!

Wie würde man da vorgehen?

Zunächst müßte man alle mesa Pakete entfernen. Alleine das könnte schon ein Akt werden, weil DNF dann den halben Softwarebestand lösen wollen wird. Kommt nur die chirugische Methode mit „rpm -e –nodeps mesa“ infrage. Danach müßte man GCC, CMake, Automake, alle Devel-Libs für Mesa und den Fedora Mesasourcecode runterladen und sich das Mesa direkt selbst kompilieren.

Falls es dazu kommen sollte, werde ich das definitiv ausprobieren und Euch berichten.

[1] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

[2] https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/message/M4LTGLHY5JX42IHC45WNWB5FH2JIFMAS/

Linux – Schneller Videos schrumpfen

Wer wie ich Videos von Spielen captured und dadurch viel Rohmaterial in großen Bitraten liegen hat, braucht die Hilfe seiner Grafikkarte um dieses Rohmaterial möglichst schnell in handhabbare Größen umzuwandeln.

Moderne Video Hardware nutzen

Das Ausgangsmaterial ist mit 5 Mb/s erstellt worden, was den Kodiervorgang beim Bildschirmcapturen beschleunigt, zum Ansehen reichen aber 2 Mb/s VBR locker aus. Früher habe ich zum Recodieren meinen Achtkerner benutzt, was schon einmal 70% der Realzeit eines Videos benötigt hat.

Heute macht das die Nvidia Grafikkarte für mich und das mit meistens 10x Geschwindigkeit meines Achtkerners 🙂

Auslastung einer Nvidia GTX1050

Wie man auf dem Bild schön sehen kann, wird die Video Engine voll ausgenutzt. Das spiegelt sich dann in so einer FFMpegausgabe wieder:

Eine Ausgabe in der Bashshell von ffmpeg beim Nutzen von Nvidia GPUs

Faktor 18 – 23 wurden im Schnitt gesichtet, kommt halt auch drauf an, ob man Schwarzbilder oder Aktion kodiert. Wie ich schon bei meinem OpenShot Artikel geschrieben habe, hängt das Endergebnis auch stark von der Resthardware des PCs ab.

FFMpeg sorgt für den Hardwaresupport

Der Befehl „ffmpeg -hwaccels“ gibt einem die für FFMpeg verfügbaren HW-Encoder aus:

$ ffmpeg -hwaccels
ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9 (GCC)

Hardware acceleration methods:
vdpau
cuda
vaapi
qsv
drm
opencl
qsv
cuvid

Auf Nvidia-Grafikkarten sieht der Befehl zum Kodieren dann so als Script aus:

#!/bin/bash

NAME=$(basename „$1“ .mp4)

ffmpeg -hwaccel cuvid -threads 8 -c:v h264_cuvid -i „$1“ -map 0:1 -map 0:0 -c:v:0 h264_nvenc -b:v:0 2000k -c:a:0 copy -f mp4 „/home/<username>/$NAME.mp4“

Damit wird eine VBR Rate von 2.000 Kb/s, der h264_cuvid Decoder für h264 Videos und der h264_nvenc Encoder für des Reencoden genutzt. Es beschleunigt den Vorgang nämlich sehr, wenn die Grafikkarte auch Dekodiert. Die Option „-hwaccel“ gibt den zu nutzenden Treiber an.

Anmerkung: Obiges Script kann nur einen Video- und einen Audiostream verarbeiten, Dual-Ton Tracks muß man selbst einbauen.

Verscripten geht immer…

Das Script nimmt als Argument ein mp4 Video, extrahiert den Dateinamen und erzeugt das Ausgabevideo im Homeverzeichnis ( passenden Benutzernamen einsetzen ). Ein „chmod 700 script“ gepaart mit einem „mv script ~/.local/bin/“ macht das ganze dann in der eigenen Shell leicht ausführbar.

Auch für nicht Nvidia-Grafikkarten gibt es verschiedene Codecs, die die Sache beschleunigen, wie man in obiger FFMpeg Ausgabe sehen kann. Allerdings sind Nvidia-Grafikkarten die schnellsten im Test vom Linux-Magazin gewesen, aus dem ich mir meinen optimierten Befehl hergeleitet habe.Das könnte sich bei der derzeitigen Dominanz von AMD natürlich bereits geändert haben.

Infos: https://www.linux-magazin.de/ausgaben/2017/11/ffmpeg-mit-gpus/