Alle Beiträge von Malte

Analyse und Wiederherstellung von Daten auf CD/DVD mit ddrescue und photorec

Stellt euch vor, in eurer Familie wurden immaterielle Familienandenken in Form von Fotos, Videos oder manchmal auch Dokumenten erstellt. Anschließend wurden diese auf zeitgenössischen Speichermedien „gesichert“.

Ein paar Jahre später: Ihr geht durch eure DVD-Sammlung und stellt mit erschrecken fest, dass die DVDs plötzlich nicht mehr aussehen wie in Bild 1, sondern wie in Bild 2.

Die DVDs weisen leichte und schwere Verfärbungen auf. Legt ihr sie so in das Laufwerk ein, werdet ihr feststellen, dass sie entweder gar nicht erscheinen oder unfassbar langsam reagieren und bestimmte Daten überhaupt nicht abgerufen werden können.

Woran liegt das?

Analyse und Wiederherstellung von Daten auf CD/DVD mit ddrescue und photorec weiterlesen

Einfaches Skript um mit mdb-tools eine MS Access-Datenbank in SQLite3 umzuwandeln

Hin und wieder stößt man auf Anwendungsfälle in denen Applikationen für Nischenprodukte einen vor merkwürdige Aufgaben stellen. So zum Beispiel ein im deutschen Kanurennsport häufig für die Regattaplanung genutztes Tool namens „GTS Regatta“. Im Grunde eine MS Access-basierte Anwendung mit zahlreichen Formularen und Funktionen rund um das Thema Kanuregatta.

Um die Daten praktisch in PHP-Anwendungen nutzen zu können, kann ein entsprechender ODBC-Treiber genutzt und direkt mit der Access-Datenbank gearbeitet werden. Dies ist, möchte man mit einem Linux-System arbeiten, etwas aufwändig und je nach ODBC-Treiber auch kostspielig.

Eine Alternative stellt die Konvertierung nach SQLite oder einer anderen Datenbank dar. Um dies mit kostenlosen Tools unter Linux möglichst leicht zu gestalten, bietet sich das folgende Skript an:

#!/usr/bin/env bash
# Usage: mdb-export.sh database.mdb/.accdb

fullfilename=$1
filename=$(basename "$fullfilename")
dbname=${filename%.*}

echo "Export schema"
mdb-schema "$fullfilename" sqlite > "$dbname.sql"

IFS=$'\n'
for table in $(mdb-tables -1 "$fullfilename"); do
    echo "Export table $table"
    mdb-export --insert=sqlite "$fullfilename" "$table" >> "$dbname.sql"
done

echo "Convert to sqlite"
sqlite3 "$dbname.sqlite3" < "$dbname.sql"

echo "Delete working data"
rm "$dbname.sql"

nginx-rtmp mit Standby-Bild wenn kein Publisher verbunden ist

Im Beitrag „Lokal von OBS zu OBS streamen mittels nginx-basiertem RTMP-Server“ zeigte ich, wie man zwischen OBS-Instanzen in einem Netzwerk streamen kann. Das ursprüngliche Streaming-Projekt ist längst abgeschlossen, jedoch bin ich retrospektiv nochmal alle Verbesserungsvorschläge und -möglichkeiten durchgegangen.

Hierbei wurde auch klar, dass ein direkter Stream über eine teils instabile Verbindung insbesondere beim Streaming zu YouTube nicht unproblematisch ist. Um beim Streaming zu YouTube zu vermeiden, dass der Stream entgültig und unwiederbringlich beendet wird (beispielsweise passiert das durch Beendigung des Streams in OBS oder bei einem Verbindungsabbruch, wenn der Stream nicht innerhalb kurzer Zeit wieder gestartet wird) empfiehlt es sich, einen Streaming-Proxy zu verwenden.

nginx-rtmp mit Standby-Bild wenn kein Publisher verbunden ist weiterlesen

HAProxy 2.2 – 2.8 unter SLES 10 (SuSE Linux Enterprise Server 10) kompilieren

Im letzten Artikel „HAProxy 2.0/2.1 unter SLES 10 (SuSE Linux Enterprise Server 10) kompilieren“ habe ich gezeigt, wie es möglich ist, HAProxy 2.0 und 2.1 unter SLES 10 zu kompilieren. Da der Support für 2.1 bereits ausgelaufen ist und für 2.0 (LTS) in Q2 2024 ausläuft, erscheint es interessant, auch neuere Versionen für einen alten Linux-Stack zu kompilieren.

HAProxy 2.2 – 2.8 unter SLES 10 (SuSE Linux Enterprise Server 10) kompilieren weiterlesen

HAProxy 2.0/2.1 unter SLES 10 (SuSE Linux Enterprise Server 10) kompilieren

Manchmal ergeben sich im IT-Umfeld merkwürdige Aufgaben – beispielsweise wenn eine Anwendung, die selbst erheblich neuer ist, als das Betriebssystem auf dem sie kompiliert und installiert werden soll, unter einem entsprechenden System lauffähig gemacht werden soll.

Wie kann nun vorgegangen werden, um einen relativ aktuellen HAProxy auf SLES 10 zu kompilieren und zu installieren?

HAProxy 2.0/2.1 unter SLES 10 (SuSE Linux Enterprise Server 10) kompilieren weiterlesen

Lokal von OBS zu OBS streamen mittels nginx-basiertem RTMP-Server

Vor kurzem hatte ich das Vergnügen/den Auftrag, mich mit Medienstreams, RTMP und OBS zu befassen. Grundkenntnisse in ffmpeg und Medienkonvertierung hatte ich bereits in meiner Laufbahn erworben.

Ziel war, Medienstreaming von einem Publisher zu einem RTMP-Server einzurichten um den Stream dort wiederum von einem Client abzurufen und in einen Livestream welcher zu YouTube gestreamt wird, einzufügen.

Anfangs stand der Gedanke, zwei Videoquellen mittels ffmpeg unter Windows abzugreifen und per RTMP zum Server zu streamen. Nachdem sich jedoch technische Schwierigkeiten bei der Ansprache der Videoquellen ergaben, insbesondere aufgrund der schwer zu realisierenden Hardwarecodierung mit ffmpeg unter Windows und AMD Vega 11 GPUs (eigentlich APUs), wechselte ich zunächst zu OBS unter Windows und schickte den Stream damit an den RTMP-Server.

Lokal von OBS zu OBS streamen mittels nginx-basiertem RTMP-Server weiterlesen