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/

Fedora Koji ist wieder da..

Diesmal nur die Kurzfassung, der Ausfall bei Fedora ist soweit behoben, Koji ist auch schneller als sonst und der Fehler ist auch bereits bekannt: ein Level 8 Problem.

Ursache war ein Fix für einen anderen Fehler, der kurzerhand alles zerlegt hat. Da muß man jetzt zwangsweise eine Parallele zu diesem Beitrag ziehen: Kernel 5.3.16 mit HDMI-Audio Problemen Wobei das nicht die gleichen Leute waren 😉

Fedora Koji ist derzeit offline

Das Fedora Buildsystem Koji ist derzeit außer Betrieb aka. Offline. Da es dazu keine Ankündigung gab, kann man nur von einem Ausfall sprechen. Da hiervon aber auch alle Downloads aus dem Buildbereich betroffen sind, kann man derzeit nichts recherchieren oder ausprobieren. Dies bedeutet auch, daß alle Koji Links aus diesem Blog derzeit offline sind.

Fehlermeldung Server ist offlineSeit einigen Tagen Probleme

In der Entwickler Mailingliste wurden schon seit einigen Tagen dubiose Fehlermeldungen und lange Prozesslaufzeiten gemeldet. Ein Neustart des System brachte wohl nur kurzfristig Entlastung. Ein Zusammenhang mit dem derzeit laufenden 36C3 kann man wohl ausschließen, da Kevin Fenzi schon vor 7 Tagen darüber berichtet hat:

Aufgrund der Fehlermeldungen bricht da derzeit vermutlich ein Datenbankserver(Cluster) in sich zusammen, der für die Buildumgebung da ist.
Ich halte Euch auf dem laufenden.

OpenShot mit Hardwaresupport

Die aktuelle Version 2.4.4 von OpenShot bietet beim Encoden jetzt Hardwaresupport an.

Mehr Speed bei Codieren von Videos

Die neue Funktion habe ich neulich beim Kodieren des WoW DXVK Videos bemerkt und zu schätzen gelernt, denn dieser Modus ist wirklich ausgespochen schnell gewesen. Um das zu nutzen müßt Ihr nichts anderes machen, als den passenden Codec auszuwählen:

OpenShot Export GUIDer Rest geht von ganz allein. Je nachdem welche Grafikkarte man hat, muß man natürlich den passenden Codec auswählen, da gibt es massive Unterschiede. Auf Nvidia Grafikkarten z.b. ist CUVID und NVENC die schnellste Kombination beim Dekodieren und erneutem Kodieren .

Linux-Gaming: der Vulkan-Weihnachts-HAMMER!

„Ho!“ „Ho!“ „Ho!“ ruft es vom Dach,
am Himmel sieht man die Sterne flach,
da erscheint ein großes Licht,
es ist der Vulkan, er ist nicht mehr dicht!

Liebe Linux Gamer,

ich habe ein Weihnachtsmärchen für Euch, endlich wird es wahr 🙂

World of Warcraft mit DxVK und voller FPS !

Wer hätte es gedacht, daß ich das nochmal erleben würde: Bo ey, ist das geil! 🙂

Alleine die Installation der DirectX-Vulkan Treiber sorgte für einen imposanten Leistungsschub bei World Of Warcraft. Endlich funktionieren alle Effekte ohne das es laggt, ruckt oder gar nicht geht 😉

Ein paar Impressionen…

Wenn man von Sturmwind aus über den Wald mit maximaler Sichtweite blickt

Wenn man von Sturmwind aus über den Wald mit maximaler Sichtweite blickt

Die WOW Weihnachtsdeko

Die WOW Weihnachtsdeko

Das Auktionshaus von Sturmwind

Das Auktionshaus von Sturmwind

Selbst auf Maximaleinstellungen ist es noch eine adäquate Leistung von 30 FPS und da geht mehr, weil meine GTX1050 auf dem Mainboard gar nicht die volle PCIE Bandbreite schaffen kann. Die GPU Utilization ist von ca. 28% auf über 80% angestiegen und das merkt man. Die Leistungsbegrenzung auf 60 FPS (siehe Video 😉 ) steht auf Stufe 8 von 10 der Details, egal wo man hingeht. Inis die vorher eher Slide-Shows waren wie z.b. Feuerlande sind jetzt komplett flüssig. Ob Wetter, Sonnenstrahlen, egal, es ruckt nicht mehr. Nur wenn man die Sichtweite auf Maximal dreht, wirds langsamer in Sturmwind.In Dalaran, was vorher extrem geruckt hat, läuft jetzt mit egal wie vielen Spielern flüssig.

Dalarn mit ausreichend FPS und NVIDIA Controlcenter mit GPU Utilizationanzeige

Dalarn mit ausreichend FPS und NVIDIA Controlcenter mit GPU Utilizationanzeige

Ich hoffe mal, Ihr werdet das alle gleich am ersten Weihnachtstag installieren 😀 Ich habe jetzt natürlich einen Vorteil, weil ich das schon am 23.12. gemacht habe.

Wie installiert man DxVK nun?

Das ist so einfach, das hätte ich gar nicht geglaubt, wenn es einer erzählt hätte 😉

Schritt 1:

ladet Euch von hier:  https://git.froggi.es/joshua/d9vk/-/jobs die neueste Buildfassung von DxVK herunter.

Downloadprotal

Schritt 2:

Das Archiv auspacken und in den Ordner „dxvk-release“ wechseln

Schritt 3:

Setupscript starten:

$ WINPREFIX=~/ed-wine/ ./setup_dxvk.sh install

Das sieht dann so aus ( allerdings mit einige Ausgaben):

Also einfach Euren WinePrefix korrekt setzen, das ist bei mir ED-WINE für Elite-Dangerous wo auch WOW drin ist, weil 64Bit. Das mit den 64Bit erkennt das Script von allein und installiert alles nötige für die 32 und 64Bit Unterstützung. Das ist wahrlich vorbildlich, bis auf einen winzigen Haken: Es nutzt nicht die Staging Version von Wine, sondern die stable Version. Das führt zur Umkonfigurierung der Wineumgebung, was dann beim ersten Start von WoW nochmal umkonfiguriert wird, wenn wieder die Staging Version zur Anwendung kommt. Ist natürlich harmlos, aber dauert i.d.R. ein Weilchen und es poppen 3 Fehlermeldungen von diversen M$-Konfigtools auf.

So liebe Linux Gamer, dann wünsche mal viel, viel Spaß mit Eurem neuen, verbesserten WoW.

Frohe Weihnachten!