Android Apps 2024, App Store F-Droid & IzzyOnDroid

Für Android gibt es nicht nur den Play Store um Apps zu installieren, es gibt schon seit vielen Jahren den alternativen App Store F-Droid , der als Schwerpunkt trackerfreie und Opensource Software hat, die es teilweise auch gar nicht im Google Playstore gibt.

F-Droid kann nicht über den Google Play Store installiert werden (Grund). Damit F-Droid installiert werden kann, muss im Telefon die Installation aus „unsicheren Quellen“ zugelassen werden. Das ist nicht weiter schlimm, solange man nicht anfängt von irgendwelchen ominösen Webseiten Android APKs runter zuladen und zu installieren.

Wenn das soweit erledigt ist, kann mit einem QR Code Scanner F-Droid direkt von der Webseite installiert werden oder wenn kein QR Code Scanner zur Hand ist auch per Internetbrowser über den Download Link auf dieser F-Droid Seite installiert werden.

Die F-Droid funktioniert als Management App für verschiedene Repositories. Repositories sind Download Quellen für App Sammlungen. Standardmäßig ist das Repository von F-Droid integriert, womit der Zugriff eine große Sammlung von weiteren Apps zur Verfügung steht. Aber wie schon erwähnt gibt es weitere Repositories, die hinzugefügt werden können. Im Normalfall ist das nicht notwendig.

In meinem Falle war ich interessiert an der Android App „PDF Doc Scan“ mit der das Smartphone zu einem einfachen PDF Scanner erweitert wird. Den Tipp für diese App habe ich bei onli blogging im Artikel „Meine Appliste für Android (2023, F-Droid)“ gefunden.

Android App Liste 2024

Hier meine Liste für 2024 von Android Apps, die ich gerne benutze.
F-Droid und IzzyOnDroid F-Droid Repository sind vorausgesetzt und auch wenn die App im Google Playstore verfügbar ist, so würde ich empfehlen die Versionen aus dem F-Droid Store zu bevorzugen. Da diese meist besser die Privatsphäre schützen.

AntennaPod – Podcast

Die beste Podcast App für Android die es gibt! Ich mag an dieser App, dass sie so unglaublich effizient aufgebaut ist und viele der Funktionen sehr an das Benutzerverhalten angepasst sind und dabei noch super aussieht. Wer auf ein bisschen Schickimicki steht, findet auch hier ein paar Statistiken, die hübsch aufgemacht sind. AntennaPod

Audile – Musik Erkennungs-App

Als Alternative zu Shazam benutze ich die Audile App Audile

Audio Recorder

Für Audioaufnahmen (Sprach Memos, einfaches Field Recording) benutze ich den Audio Recorder. Er hat eine schöne funktionale Übersicht, ohne viel Klimbim. Für die Aufnahmen können verschiedene Formate (Flac, wav, mp3, Opus, m4a), Mono/Stereo, alle möglichen Sampleraten und Samplefrequenzen ausgewählt werden. Ich würde mir noch wünschen, dass ich auch in 32Bit float aufnehmen könnte, aber vielleicht kommt das ja noch, oder ich finde eine zusätzliche oder andere App. Audio Recorder

Element – Messenger

Element ist ein dezentraler Messenger für alle Plattformen für Nachrichten aller Art, Sprachnachrichten, Sprach & Video Calls und etliche mehr Features wie zusätzliche Widgets und Bots. Element.io

Etar – Kalender

Ich habe lange diverse Kalender ausprobiert und bin schließlich bei Etar gelandet. Das Killerfeature, das mich überzeugt hat und das ich bei keiner anderen Kalender App gefunden habe ist, dass ich Benachrichtigungen oder Notifications NACH Beginn eines Termins knüpfen kann. So kann ich z.B. bei einem Einstündigen Termin nach einer halben Stunde oder 45 Minuten einen Alarm ausgeben lassen. Ein kleines Feature, aber unglaublich hilfreich für mich. Etar

Firefox – Internet Browser

Versteht sich von selbst! Zusätzlich benutze ich noch die Addons Privacy Badger, uBlock Origin und Canvasblocker um mir die Tech Stalker ein wenig vom Hals zu halten. Mir ist es auch ehrlich gesagt ein Rätsel, wie Menschen es schaffen, ohne kontinuierlich schreien zu müssen, ohne solche Blocker im Internet surfen zu können. Mozilla Firefox

Fossify Gallery – Bilder Galerie

Eine einfache und schnelle Foto Galerie, ohne zusätzlichen Hipsterkram, Cloud, Online, Anmeldung, Pseudo-KI Quatsch . Fossify Galery

KDEConnect

KDEConnect ist das Beste seit geschnitten Brot! Damit lassen sich Smartphones untereinander und Smartphones mit dem Computer per WLAN verbinden. So können Daten, Dateien, die Zwischenablage ausgetauscht werden. Das Smartphone stoppt die Medienwiedergabe, wenn ein Anruf rein kommt oder getätigt wird. Ferneingabe und Präsentationssteuerung und einiges mehr. Wie gesagt: Das Beste seit geschnitten Brot! KDEConnect

Librera Reader – PDF

Für mich der beste freie PDF Viewer, der noch viele weitere Formate unterstützt: PDF, EPUB, MOBI, DjVu, FB2, TXT, RTF, AZW, AZW3, HTML, CBZ, CBR, DOC, DOCX, etc. Librera Reader

Newpipe – YouTube

Stressfrei YouTube Videos anschauen, runterladen, konvertieren. YouTube

Nextcloud – Cloud

Nextcloud ist ein umfassendes Cloud System mit vielen weiteren Apps, das auch selbst gehostet werden kann. Auf dem Smartphone nutze ich hauptsächlich die Nextcloud App recht intensiv. Nextcloud

Open Camera – Foto & Video

Eine sehr umfangreiche Foto & Video App Open Camera

Organic Maps – Karten & Navigation offline

Ich kopiere mal einen Teil der Beschreibung von der Webseite, weil ich es nicht besser beschreiben könnte: Organic Maps ist eine freie und kostenlose Offline-Karten-App für Android und iOS für Reisende, Touristen, Wanderer und Radfahrer, die auf den Daten von OpenStreetMap basiert. Es handelt sich um eine datenschutzfreundliche, quelloffene Abspaltung der Maps.me-App (früher bekannt als MapsWithMe), die von denselben Leuten gepflegt wird, die MapsWithMe im Jahr 2011 erstellt haben. Organic Maps ist heutzutage eine der wenigen Apps, die 100% ihrer Funktionen ohne aktive Internetverbindung unterstützt. Installiere Organic Maps, lade Karten herunter. Organic Maps

OSS Document Scanner

Ganz frisch im IzzyOnDroid Repository aufgetaucht und bietet noch mehr Funktionen als PDF Doc Scan. Zusätzlich noch Filter, um das Scan Ergebnis zu verbessern und eine offline OCR Funktion (entsprechende Sprachen werden automatisch runtergeladen) und kann ein PDF mit überlagertem Text für die Volltextsuche speichern. OSS Document Scanner

PDF Doc Scan – Scanner

Eine App mit der die Kamera eines Smartphones in einen Scanner umgewandelt werden kann und damit sehr einfach Dokumente durch fotografieren eingescannt und als PDF umgewandelt werden kann. PDF Doc Scan

SecScanQR – QR Code Scanner & Creator

QR Codes sind schon recht alt und erst so langsam kommen sie bei vielen Menschen erst an. Sie ermöglichen es extrem einfach Informationen visuell zu übertragen. Ob als Info auf einem Plakat oder Einblendung in einem Video, von dem ein Screenshot gemacht weden kann oder beim direkten Adressenaustausch von Smartphone zu Smartphone, wenn man sich gegenübersteht. SecScanQR

Transistor – Simple Radio-App

Transistor ist eine App zum Hören von Radiosendern über das Internet. Transistor

Tuner

Stimmgerät App zum Beispiel zum Stimmen einer Gitarre Tuner

VLC – Player

VLC kennt vermutlich jeder, weil er auf jeder Plattform verfügbar ist und alles was es so an Formaten gibt klaglos abspielt. Prädikat: Bester Player wo gibt VLC

Viel Spaß damit!

PDF Inhaltsverzeichnisse (TOC) erstellen

Ein Plädoyer gegen die Hyperlink Ignoranz

Das Wunderbare an digitalen Medien wie PDF Dateien ist, dass sie mit Strg+f durchsuchbar sind und dass sie ein klickbares Inhaltsverzeichnis und Index haben. Aber leider viel zu oft haben sie das nicht. Manchmal werden Dokumente ausgedruckt und als Bild wieder eingescannt und somit ist der Text nicht mehr verfügbar. Der entsprechende Haken Beim Export nach PDF für ein klickbares Inhaltsverzeichnis wird einfach nicht gesetzt und der Index wird oft auch nur „ausgedruckt“. Seit der großen Verbreitung des World Wide Webs haben wir die Hyperlinks schätzen gelernt und dass ein Klick so viel effizienter sein kann, als das mühsame Blättern durch Dokumente an die richtige Stelle.

Es ist einfach extrem ärgerlich, wenn Handbücher nichts davon enthalten. Mit Handbüchern arbeite ich. Heißt: ich springe von Stelle zu Stelle, muss die Suche benutzen, damit ich mir nicht ein ganzes Buch im Kopf merken muss. Leider gibt es immer noch neu erscheinende Dokumente, die aus einem Prä-Internet Zeitalter zu kommen scheinen. Und wenn einem nichts anderes übrig bleibt, als diese Dokumente zu nutzen, kann man sich beim Durcharbeiten eines kleinen kostenlosen Opensource Tools von 2011 bedienen und das Inhaltsverzeichnis (PDF Bookmarks) selbst setzen.

Am liebsten hätte ich gleich noch eine Webresource, auf der ich meine Arbeit mit anderen teilen könnte. Gar nicht mal das Dokument selbst, denn die unterliegen oft gewissen Copyright Rechten. Aber die Meta Info. Die Arbeit, die ich mir machen musste, weil jemand den Haken beim Export nicht gefunden hat.

Der Tool – JPDFBookmarks

Das kostenlose Opensource Programm von 2011 ist in Java geschrieben und läuft unter Linux und Windows. Für Mac weiß ich das leider nicht.
Die Nutzung ist sehr einfach. Die PDF Datei wird einfach rein geladen und wenn ein Eintrag im Inhaltsverzeichnis erstellt werden soll, dann muss nur ein Bookmark Strg+Alt+s erzeugt werden. Soll ein Unterpunkt erzeugt werden, dann Strg+Alt+f . Dabei speichert das Bookmark nicht nur die Seite, sondern auch auf welcher Höhe der Seite das Bookmark ist. So macht es Sinn z.B. die Kapitel Überschrift auf dem Bildschirm auszurichten und dann erst das entsprechende Bookmark zu setzen.

JPDFBookmarks Ein absolut einfach zu bedienendes Programm, das du hier finden und runterladen kannst http://flavianopetrocchi.blogspot.com/2008/07/jpsdbookmarks-download-page.html

Falls das Programm unter Linux nicht starten sollte, musst du nur (unter Ubuntu) das Paket „default-jre“ installieren.

Und Bitte!

Erstellt in euren PDFs immer ein klickbares Inhaltsverzeichnis und einen Index. Wir haben schließlich das Jahr 2023. Die überleben wollen …

Danke.

Touchpad effizient nutzen – Touchegg & Touché

Funktioniert nicht unter Wayland.

Ein Werkzeug effizient nutzen zu können, ist die Grundlage sich ganz auf den Inhalt konzentrieren zu können. Ein Grund warum ich z.B. den Editor Vim gerne mag, weil mit ihm Test hocheffizient bearbeitet werden können. Aber das ist eine andere Geschichte.

Effizienz heisst auch, bei einer Eingabemethode bleiben zu können und nicht ständig die Eingabegeräte zu wechseln. So ist der Wechsel von Tastatur zu Maus oder Touchpad immer eine Unterbrechung. Nicht nur im motorischen Ablauf, sondern eben auch in der Konzentration.
Also bei der Eingabe ausschliesslich auf der Tastatur bleiben zu können, oder bei der Nutzung der Maus oder des Touchpads nur auf diesen Geräten bleiben zu können, hat viele Vorteile.

Für das Touchpad gibt es die Programme Touchegg, das die Erkennung von Gesten mit mehreren Fingern und Steuerung von Befehlen verwaltet, und Touché mit dem die Einstellungen komfortabel eingerichtet werden können.

Beides ist für viele Linuxsysteme verfüg- und installierbar. Für Ubuntu ist die Installation extrem einfach.

Touchegg (der Dienst) gibt es hier https://github.com/JoseExposito/touchegg und die Installation wird sehr gut beschrieben. Im wesentlichen läuft sie so ab

sudo add-apt-repository ppa:touchegg/stable
sudo apt update
sudo apt install touchegg

Damit ist der Dienst installiert und gestartet.

Jetzt nur noch Touché installieren. Bei Touchegg wird auf die Seite hingewiesen https://github.com/JoseExposito/touche . Touché wird als Flatpak über Flathub installiert. Wer nicht weiß, wie das geht sucht auf dieser Seite https://flathub.org/setup seine Distribution raus. Achtung! Es wird zwischen Ubuntu und z.B. Kubuntu unterschieden. Also ruhig lieber genauer suchen und dann der Installationsanleitung folgen.

Also wenn Flathub integriert ist, kann Touché ganz einfach installiert werden. Bei meinem KDE öffne ich dazu einfach das Programm Discover und gebe in der Suche Touché ein und drücke auf installieren. Warten. Fertig. Das Programm starten.

Jetzt können Touchgesten konfiguriert werden. Und zwar

  • 2 Finger Kneifgesten
  • 3 Finger Wischgesten
  • 4 Finger Kneifgesten
  • 4 Finger Wischgesten
  • Nur auf Touchscreens: Tippgesten für 2 und 4 Finger

Verfügbar sind folgende Optionen für eine ausgewählte Geste, die wohl so ziemlich fast alles abdecken, was so gebraucht werden könnte.

Meine Konfiguration sieht aktuell folgendermaßen aus. Eine Kombination aus „Es ist praktisch, aber nicht zu viel, was ich mir merken muss“

2 Finger kneifen Rein = Vollbildmodus an/aus
2 Finger kneifen Raus = Maximieren und zurück

3 Finger wischen hoch = Alle Fenster auf dem Desktop anzeigen / Fensterwechsler
3 Finger wischen runter = Minimieren
3 Finger wischen rechts = Programm beenden
3 Finger wischen links = Strg+w … in den meisten Programmen das Tab schliessen.

4 Finger wischen Hoch = Neues Dokument Strg+n
4 Finger wischen Runter = Speichern Strg+s

Obsidian – PDF Export mit TOC

Für meine digitalen Notizen und Handbücher verwende ich seit längerer Zeit nur noch Markdown Textdateien. Aus Resilienz Gründen, um mit allen möglichen Programmen an meinen Daten arbeiten zu können und auch noch nach Jahren darauf zugreifen zu können, wenn es diverse Programme nicht mehr gibt.

Dazu benutze ich aktuell die Suite Obsidian unter Linux, weil sie mir eine sehr gute Oberfläche und Suche bietet. Ab und zu exportiere ich dann auch die eine oder andere Datei, oder eine Zusammenstellung als PDF Datei.

Der Export nach PDF ist zwar super, aber leider integriert sie kein Inhaltsverzeichnis (TOC: Table of Content). Gerade bei längeren Texten, die bei mir häufiger vorkommen, empfinde ich das als absolut notwendig.

In den Community Plugins, über das Einstellungsmenü von Obsidian, bin ich auch nicht fündig geworden. Aber glücklicherweise hat jemand dann noch ein Plugin geschrieben, das sich Obsidian Better Export PDF nennt und mit einer kleinen Installationsanleitung beschrieben wird.

Nun kann ich direkt PDFs mit wunderbaren Inhaltsverzeichnissen exportieren, ohne den Umweg über Copy n Paste über LibreOffice zu gehen.

Passkey : alter Schuh in neuen zerlöcherten Schläuchen

Seit einiger Zeit wird ein neues „Passwortkonzept“ beworben, womit die alten Passwörter nicht mehr notwendig sind. Über dieses „neue“ Konzept wird viel gesprochen und viel Unsinn verzapft. Daher kurz zusammengefasst, ohne Bullshit und Buzzword Bingo

Passkey nutzt die Kombination aus

  1. Asymmetrischer Verschlüsselung wie GPG
  2. Biometrie, wie Gesicht, Fingerabdruck
  3. Synchronisation über mehrere Geräte

So gut, wie das jetzt werbetechnisch hier aussieht ist es gar nicht. So ganz gar nicht! Oder noch deutlicher

Das Konzept von Passkey ist sehr schlecht!

Ich erkläre und kommentiere diese drei Punkte in dieser Kritik, damit die massiven Probleme einfacher verstehbar werden.

Asymmetrische Verschlüsselung – GPG

Vorneweg: asymmetrische Verschlüsselung ist sehr gut!
Diese Verschlüsselung gibt es für Endverbraucher schon seit 25/30 Jahren z.B. für Email. GPG/GnuPG (GNU Privacy Guard) oder früher auch die kommerzielle Variante PGP eines Anbieters.

  1. Diese Verschlüsselung funktioniert so, dass mit Hilfe der Software ein Schlüsselpaar generiert wird (z.B. 2 Text-Dateien).
  2. Eine Datei enthält den Privaten/Geheimen Schlüssel und eine Datei enthält den Öffentlichen/Public Schlüssel. Zwei unterschiedliche Schlüssel, daher heißt diese Verschlüsselung asymmetrisch.
  3. Den geheimen Schlüssel muss ich beschützen und sicherstellen, dass niemand diesen Schlüssel in die Hände bekommt. Diesen Schlüssel brauche ich, um Daten, die mit dem öffentlichen Schlüssel verschlüsselt wurden, wieder zu entschlüsseln. Dieser geheime Schlüssel darf also niemals meine „Hände“ verlassen.
  4. Ganz im Gegenteil dazu der öffentliche/public Schlüssel. Mit diesem Schlüssel können Daten nur verschlüsselt werden. Nicht entschlüsselt, sondern nur VERschlüsselt werden. Daher kann dieser öffentlich Schlüssel offen verteilt werden, überall gepostet oder irgendwelchen wildfremden Menschen in die Hand gedrückt werden. Das Einzige, was diese machen können ist dann Daten zu verschlüsseln, die nur noch ich mit meinem privaten/geheimen Schlüssel wieder entschlüsseln kann.

Das ist das grundlegende Prinzip von GPG oder asymmetrischer Verschlüsselung.

Biometrie

Auch wenn Biometrie immer wieder in Zusammenhang mit Sicherheit gebracht wird, bleibt es weiterhin absolut falsch.
Folgende Definition ist richtig:

Biometrie = Bequemlichkeit = unsicher

Und auch wenn immer noch auf die Einzigartigkeit von Fingerabdrücken, Augen bzw Iris oder anderen Körpermerkmalen hingewiesen wird, so wird auch immer wieder vergessen, dass wir unsere Fingerabdrücke bei jeder Gelegenheit unzählige Male jeden Tag hinterlassen. Dass unsere Augen, alleine durch die Smartphones zigtausend Mal fotografiert wurden und alle anderen Merkmale, wie Stimme usw überall verfügbar und aufgezeichnet sind.
Biometrie ist Bequemlichkeit und damit das absolute Gegenteil von Sicherheit.

Synchronisation

Synchronisation ist mittlerweile ein allgegenwärtiger Begriff, weil wir viele Geräte besitzen und auf jedem Gerät immer alles auf dem selben Stand halten wollen. Und das möglichst automatisch. Also synchronisieren wir unsere Dokumente, Bookmarks, Bilder, Musik usw über irgendeinen Service. Meist ist es eine Cloud eines externen Anbieters (außerhalb unserer Wohnung, auf der anderen Seite des häuslichen Internetrouters). Das ist bequem. Und wie schon weiter oben geschrieben, ist Bequemlichkeit das Gegenteil von Sicherheit.

Wenn alles zusammen kommt

So, wie passt das jetzt alles zusammen?

GPG oder die asymmetrische Verschlüsselung ist eine super Sache. Sie funktioniert hervorragend und wird auch von vielen Geheimdiensten, Botschaften, JournalistInnen benutzt, um Geheimes erfolgreich geheim zu halten. Bei „geheim halten“ muss es sich dabei nicht um Staatsgeheimnisse handeln, es können auch einfach Dinge sein, die einfach Dritte nichts angehen.

Der geheime Schlüssel soll nun also z.B. auf dem Smartphone, auf einem extra Chip (Hardware) als eine Art Safe gespeichert werden, der mit Hilfe von Biometrie (Gesichtserkennung, Fingerabdruck, usw) aufgeschlossen werden kann. Das an sich ist nochmal eine Abhandlung über vorgetäuschte Sicherheit wert, die aber dieses Thema hier absolut sprengen würde.

Dieser „super extra“ Hardware Safe soll mit dieser Biometrie Technologie aufgeschlossen werden, die jegliche Sicherheit zugunsten von Bequemlichkeit eliminiert.

Das ist ungefähr so, als würden wir die weltbeste Tür gegen Einbrecher einbauen, sie aber dann aus Bequemlichkeit offen lassen, weil uns der Schlüssel zu schwer ist.

Aber es kommt noch schlimmer. Damit es für uns noch bequemer wird und wir auf allen unseren Geräten (Smartphone, Tablet, Computer, Kaffeeautomat) unsere z.B. Bankgeschäfte machen können, soll nun dieser private Schlüssel auf alle diese Geräte synchronisiert werden. Also auf verschiedene Geräte, die alle unterschiedliche Schwachstellen haben können.

UND: die Synchronisation wird über einen externen Anbieter und deren Cloud durchgeführt. Zwar verschlüsselt, aber der Geheime Schlüssel wird unter Umständen mehrfach quer durch die Welt verschickt, in der Cloud eines Anbieters „zwischengespeichert“ oder geBackupt, um dann auf eines unserer Geräte zu speichern. Das unter Umständen vielleicht auch gar nicht über diesen super extra Chip (Safe) verfügt. Der sowieso durch die Biometrie ausgehebelt wird.

Um in dem Bild der weltbesten Tür gegen Einbrecher zu bleiben: Zu unserer nicht mehr sicheren Tür, weil für uns und die Einbrecher bequem, bauen wir jetzt noch mehr solcher Türen in unsere Wohnung ein, die wir offen lassen, damit wir und die Einbrecher von noch mehr Seiten einfacher in die Wohnung kommen.

FAZIT

  1. GPG oder GnuPG bzw asymmetrischer Verschlüsselung ist eine super Sache und wirklich das Sicherste, was schon seit Jahrzehnten genutzt werden kann
  2. Biometrie ist nur Bequemlichkeit und absolut Unsicher
  3. Synchronisation auf mehrere Geräte verringert die Sicherheit zusätzlich und unter Umständen massiv
  4. Synchronisation über einen externen Anbieter oder gar über einen Cloud Anbieter ist das absolute Worst Case Szenario, da der Anbieter den geheimen Schlüssel dann besitzt.
  5. Externe Anbieter haben oft Abkommen mit Diensten, die Zugriff auf diese Daten haben.

So, was aber nun tun um die Passwörter sicher zu halten?
Da hilft leider nur die alte aber immer noch erste Regel der Sicherheit:

Der Grad an Sicherheit ist ausschließlich eine Frage der Höhe des Aufwandes.

Bequemlichkeit ist immer das Gegenteil von Sicherheit und daher ist es gut, sich Gedanken zu machen, wie mit solchen sensiblen Dingen wie z.B. Passwörtern umgegangen wird. Und wem Zugriff darauf gegeben wird.

Ein Anfang ist es sicherlich schon mal GPG zu nutzen und den geheimen Schlüssel selbst zu verwalten und zu sichern. Zum Beispiel in einer einfachen Textdatei. Die natürlich mit GPG verschlüsselt ist und ein komplexes Passwort hat, das wir uns merken und ab und an ändern.

Nützliches & informative Links
  1. Passkey https://de.wikipedia.org/wiki/FIDO2#Passkey
  2. GnuPG https://gnupg.org/
  3. Asymmetrische Verschlüsselung einfach erklärt https://youtu.be/yWrtCtQ7Wno
  4. Gpg4win – Sichere E-Mail- und Datei-Verschlüsselung https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Freie-Software/E-Mail-Verschluesselung/GPG4Win/gpg4win_node.html
  5. Das GNU-Handbuch zum Schutze der Privatsphäre https://www.gnupg.org/gph/de/manual/book1.html
  6. Biometrie wurde vom früheren SPD-Bundesinnenminister Otto Schily forciert und als „sicher verkauft“. Nach seinem Ausscheiden wurde er Aufsichtsratsmitglied in zwei Biometrie-Unternehmen. 1 2 3 4
  7. Synchronisation, Cloud und Serviceanbieter wie Google, Microsoft, Apple, Amazon usw haben regelmäßig (spätestens im Monatsrhytmus) Einbrüche bzw wurden gehackt, oder Totalausfälle bzw Absprachen mit irgendwelchen Diensten, die ihrerseits wieder gehackt werden. 1 2 3 4

Vim-Cheat Sheet

Weitere Vim Artikel hier im Blog.

Vim Modi

Erklärung

Vim ist ein modaler Editor. Dies bedeutet, dass man in unterschiedlichen Modi arbeitet, was Einsteigern oft Probleme bereitet, andererseits aber eine sehr große Zahl von Tastenkürzeln erlaubt, da sich diese an einzelne Modi binden und daher auch mehrfach belegen lassen.
Es gibt sechs Grundmodi. Zusätzlich gibt es noch fünf weitere Grundvarianten der Grundmodi.

Normalmodus ESC

Vim startet im Normalmodus, oft auch als Kommando- oder Befehlsmodus bezeichnet. Hier kann man über Tastenkürzel zum Beispiel Zeilen kopieren und verschieben oder Text formatieren. Dies ist der zentrale Modus, von dem in alle anderen Modi gewechselt wird. Durch das zweifache Drücken der Esc-Taste gelangt man immer in den Normalmodus zurück.

Der Punkt . wiederholt immer den letzten eingegebenen Befehl.

Einfügemodus / Insert

Im Einfügemodus verändern Tastatureingaben den editierten Text, so wie man es von anderen Editoren kennt. Man erreicht diesen Modus vom Normalmodus aus zum Beispiel über i (für engl. insert = einfügen).

Kommandomodus / Command

Vom Normalmodus ausgehend! Dieser Modus wird durch den einleitenden Doppelpunkt : erreicht. Hinter dem Doppelpunkt können dann komplexe Kommandos wie beispielsweise zum Suchen und Ersetzen eingegeben werden. Nach dem abschließenden Enter „Eingabetaste“ wird der Befehl ausgeführt und man befindet sich wieder im Normalmodus. Zu diesem Modus zählen des Weiteren die Kommandos / (Textmuster vorwärts suchen), ? (Textmuster rückwärts suchen) und das Filter-Kommando !, mit dem die UNIX-Kommandos „UNIX-Kommandos“ (zum Beispiel sort) aufgerufen und auf den Text angewandt werden können.

Vim Normalmodus ESC ESC

Vim beenden & speichern (Kommandomodus)

  • :q beenden (quit)
  • :q! , :cq, SHIFT + ZQ beenden ohne zu speichern trotz Änderungen (cancel)
  • :wq , SHIFT + zz speichern (write) und beenden
  • :w aktueller Inhalt in Datei speichern
  • :w FILE.TXT speichert den Inhalt des Editors in die Datei FILE.TXT
  • :w !sudo tee FILE.TXT speichert die Datei mit dem vorangehenden sudo Aufruf

Multiplikator

:help motion-count-multiplied

Zu einem Befehl kann noch eine Zahl eingegeben werden, dann wird der Befehl entsprechend oft wiederholt.
Beispiele

  1. Wurde eine Zeile mit yy (yank) in den Zwischenspeicher kopiert, dann wird sie mit 5p 5x darunter eingefügt.
  2. Sollen die nächsten 7 Zeichen rechts gelöscht werden : 7x
  3. Sollen ab der aktuellen Position die nächsten 3 Wörter gelöscht werden: 3dw
  4. Soll ab der aktuellen Position mitten in einem Wort, insgesamt 3 Wörter gelöscht werden: 3diw (3x Delete Include Word)
  5. Soll ab der aktuellen Position mitten in einem Wort, insgesamt 3 Wörter gelöscht werden und gleich in den Eingabemodus gewechselt werden: 3ciw (3x Change Include Word)
  6. Die nächsten 10 Zeilen löschen: 10dd
:help motion
:help scroll-cursor
  • Pfeiltasten , hjkl links, runter, hoch, rechts . Die Pfeiltasten hjkl sind sehr wichtig bei der Nutzung von Multiplikatoren.
  • Bild hoch , Bild runter Eine Seite hoch / runter
  • Pos1 , 0 an den Zeilenanfang springen
  • ^ springt an den Zeilenanfang auf das erste Zeichen, das kein Leerzeichen oder Tab ist
  • Ende , $ an das Zeilenende springen
  • w ein Wort nach rechts springen (Wortanfang)
  • e an das Ende eines Wortes, auf den letzten Buchstaben springen (Wortende)
  • b ein Wort nach links springen (Wortanfang)
  • ) einen Satz vorwärts springen
  • ( einen Satz rückwärts springen
  • SHIFT + h zur ersten Zeile des aktuellen Fensters springen
  • SHIFT + m in die Mitte des aktuellen Fensters springen
  • SHIFT + l in die letzte Zeile des aktuellen Fensters springen
  • STRG + d einen halben Bildschirm runter blättern (down)
  • STRG + u einen halben Bildschirm hoch blättern (up)
  • gg an den Datei Anfang springen
  • SHIFT + g an das Datei Ende springen
  • : + ZAHL springt in die Zeile ZAHL
  • f + ZEICHEN springt zum nächsten Vorkommen des Zeichens
  • SHIFT+ f + ZEICHEN springt zum vorherigen Vorkommen des Zeichens
  • z + ENTER oder zt aktuelle Zeile in die erste Zeile des Displays scrollen (top)
  • zz oder z. aktuelle Zeile in die Mitte des Bildschirms scrollen
  • z- oder zb aktuelle Zeile an den unteren Rand scrollen (bottom)

Marks (Bookmarks)

:help bookmark

Bookmarks sind einzelne Zeichen von a-z und A-Z die im Text gesetzt werden können, um schnell hin und her zu springen.

  • m + ZEICHEN einen Marker setzen. z.B. mb setzt den Marker b
  • ' + ZEICHEN zu einem Marker springen . z.B. 'b springt zum Marker b
    • Das ' ist das Zeichen auf einer deutschen Tastatur auf dem #

Undo & Redo

:help undo
  • u Undo (Rückgängig machen)
  • SHIFT + u Undo alle Änderungen, die zuletzt in der aktuellen Zeile gemacht wurden
  • STRG + R Redo
  • :undolist zeigt den Verlauf der letzten Änderungen, die rückgängig gemacht werden können. Dabei zeigt die Nummer den Index der Veränderung, die direkt ausgewählt werden kann. Changes zeigt an, wieviele Veränderungen gemacht wurden und die Uhrzeit, wann die Veränderungen gemacht wurden.
  • NUMMER + STRG + r macht die Veränderung mit der Index NUMMER wieder rückgängig
  • Plugins wie undotree oder mundo machen das Undo & Redo sehr übersichtlich und einfacher

Copy & Paste

  • y Kopieren (yank)
  • yy Ganze Zeile kopieren
  • p vor dem aktuellen Cursor einfügen, oder Zeile
  • Shift + p nach dem aktuellen Cursor einfügen, oder Zeile
  • Zwischenablage / Clipboard (FAQ System Clipboard !)
  • "*y , "+y in den System Zwischenspeicher kopieren
  • "*p , "+p aus den System Zwischenspeicher einfügen. Analog "* oder "+ + SHIFT + p
  • Register / Vim interne Zwischenablage
    • Vim unterstützt von a-z 48 verschiedene Register (Zwischenablagen). So können unterschiedliche Dinge in verschiedene Register kopiert und an anderer Stelle in gleicher oder neuer Reihenfolge eingefügt werden.
    • Das Register wird mit " eingeleitet und der folgende Buchstabe a-z definiert in welchem Register der Inhalt gespeichert werden soll
  • "gyy kopiert die aktuelle Zeile ins Register g
  • "gp fügt den Inhalt aus dem Register ab dem aktuellen Cursor ein

Register / Zwischenspeicher 48 :registers

:help registers

  • Auszüge aus dem Hilfedokument
  • :registers zeigt alle Register an. :registers ZEICHEN zeigt das Register ZEICHEN an
  • STRG + r + REGISTER fügt im Insertmodus den Inhalt von REGISTER direkt ein.
  • "" (unnamed) Standardregister in das alles rein kopiert wird, was mit dcsx gelöscht oder mit y kopiert wurde
  • "a-z (named) mit einem großen A-Z wird das Kopierte an das a-z Register angehängt. Zusammen mit einem > wird vor dem Anhängen ein Zeilenumbruch eingefügt.
  • "0-9 (numbered) In Register 0 wird immer der zuletzt kopierte (yank) Inhalt. In Register 1 steht immer der zuletzt gelöschte Inhalt dc
  • "- Im Small Delete Register steht immer der zuletzt gelöschte Inhalt, wenn es weniger als eine Zeile war
  • Read-Only
    • ". enthält immer den zuletzt eingefügten Text
    • "% enthält den Dateinamen
    • ": enthält den zuletzt eingegeben Befehl
  • "* , "+ , "~ Zwischenspeicher / Clipboard . "~ ist der Inhalt des letzten Drag’n’Drop auf das Vim Fenster
  • "_ (black hole) bei einem Löschvorgang wird nichts in Register gespeichert
  • "/ (last search) enthält den Text der letzten Suche

Makros / Recording q

:help recording
  • MAKRO AUFZEICHNEN
    • q + a-z mit q wird das Recording gestartet und das nächste Zeichen z.b. a ist der Name des Makros. Also qa startet die Aufnahmen von Makro a
    • Mit dem erneuten Drücken der Taste q wird die Aufzeichnung des Makros beendet
  • MAKRO ABSPIELEN / AUFRUFEN
    • @q + a-z mit z.B. @qa wird das Makro a abgespielt bzw ausgeführt
    • Mit @@ wird das Makro wiederholt
    • mit 10@qa wird das Makro 10x hintereinander ausgeführt
  • MAKROS EDITIEREN
    • Makros werden als normaler Text in Registern gespeichert
    • Das REGISTER am besten in eine leere Zeile einfügen, weil nach dem Editieren einfach direkt die gesamte Zeile wieder im Register gespeichert werden kann " + REGISTERNUMMER + p z.B. "4p
    • Die Zeile editieren und (die gesamte Zeile) wieder zurück in das Register schreiben " + 4 + yy
    • Zur Kontrolle kann :registers oder :registers 4 eingegeben werden
    • Ein Makro kann einfach gelöscht werden, indem nichts aufgezeichnet wird. Z.b. Makro a = q4q
  • STEUERUNGZEICHEN EINGEBEN
    • Im Eingabemodus STRG + v + TASTE z.B. Enter/Return, ESC, F2, Backspace ….
  • REKURSIVE MAKROS
    • Im Makro selbst das Makro aufrufen
    • Läuft solange, bis es auf einen Fehler aufläuft

Autovervollständigung :abbr

  • :abbr + abkrz + AUSGESCHRIEBENER BEGRIFF wenn im Einfügemodus der Begriff abkrz und Leertaste (oder Enter, dann mit Zeilenumbruch) eingegeben wird, erscheint der AUSGESCHRIEBENER BEGRIFF
  • Beispiel: :abbr zb Zum Beispiel

Groß-/Kleinschreibung

  • ZEICHEN
    • ~ ändert das aktuelle Zeichen auf Groß oder Klein
  • WORT
    • g~w Invertiert die Groß-/Kleinschreibung des aktuellen Wortes
    • guw Ändert von der aktuellen Position bis zum Ende des Worts von Groß- auf Kleinschreibung
    • guaw Ändert das gesamte Wort auf Kleinschreibung. Egal auf welcher Position der Cursor ist
    • gUw Ändert von der aktuellen Position bis zum Ende des Worts von Klein- auf Großschreibung
    • gUaw Ändert das gesamte Wort auf Großschreibung. Egal auf welcher Position der Cursor ist
  • ZEILE
    • guu Ändert die aktuelle Zeile von Groß- auf Kleinschreibung
    • gUU Ändert die aktuelle Zeile von Klein- auf Großschreibung
    • g~~ Invertiert die Groß-/Kleinschreibung der gesamten Zeile
    • gU5jÄndert die darunter liegenden Zeilen zu Großschreibung
    • gu3k Ändert die darüber liegenden Zeilen zu Großschreibung
  • SATZ
    • gU)Ändert alles zu Großschreibung bis zum Ende des Satzes
  • ABSATZ
    • gu} Ändert alles bis zum Ende des Absatzes zu Kleinschreibung
  • DOKUMENT
    • guG Ändert alles zu Kleinschreibung bis zum Ende des Dokumentes

Auswählen/Markieren

  • v Zeichenweise
  • SHIFT + v + Pfeiltasten Zeilenweise
  • STRG + v + Pfeiltasten Vertikal
  • Beispiele: 10v markiert 10 Zeichen, 3wv markiert 3 Wörter, )vy markiert bis zum Ende des Satzes und kopiert ihn in den Zwischenspeicher/Register.

Löschen & entfernen

  • x Zeichen unter dem Cursor löschen
  • SHIFT + x Zeichen links vom Cursor löschen
  • DELETE & CHANGE
    • Gelöscht werden kann mit d (delete) oder c (change). Bei d bleibt Vim im Normalmodus und bei c wird nach dem Löschen in den Eingabemodus gewechselt und es kann direkt mit der Eingabe begonnen werden.
  • dd löscht die komplette Zeile
  • dw , cw löscht das Wort rechts
  • dip , cip Lösche nur den Absatz
  • dap , cap Lösche den Absatz und die nachfolgenden Leerzeilen

Suchen

  • /Suchbegriff<ENTER> vorwärts suchen. Vim zeigt den ersten Fundort an. Soll der nächste Fundort angesprungen werden muss die Taste n (Next) oder * gedrückt werden mit Shift + n oder # wird die Suche rückwärts ausgeführt.
  • ?Suchbegriff<ENTER> rückwärts suchen

Vim Command Modus

Datei laden

  • :e Öffnet den Dateibrowser. Bei Auswahl mit der Entertaste wird die Datei in das aktuelle Fenster geladen.
  • :e FILE.TXT öffnet direkt die Datei in das aktuelle Fenster
  • :Sex Teilt das Fenster horizontal in ein weiteres Fenster mit einem Dateibrowser
  • :Vex Teilt das Fenster vertikal in ein weiteres Fenster mit einem Dateibrowser

Fenstermanagement

  • :tabnew Neues Fenster in neuem Tab
    • :tabprev , gt gehe zum nächsten Tab
    • :tabnext , gT gehe zum vorherigen Tab
      • Bessere Lesbarkeit der Tabs
      • :hi tablinesel ctermbg=darkblue ctermfg=white
      • :hi tabline ctermbg=black ctermfg=green
    • Hilfe :help tabpage
  • :new Neues Fenster horizontal
  • :split Aktuelles Fenster horizontal teilen
  • :vsplit Aktuelles Fenster vertikal teilen
  • STRG + ww wechselt zum nächsten Fenster und rotiert bei Wiederholung durch alle Fenster
  • STRG + w<N> mit <N> sind die Pfeiltasten gemeint, oder auch hjkl mit denen direkt in das entsprechende Fenster gewechselt werden kann.
    Zum Beispiel
    • STRG + wl wechselt in das linke Fenster
    • STRG + wj in das untere Fenster
    • STRG + w<Pfeiltaste links> in das linke Fenster.
    • :ls die offenen Buffer (Fenster/Tabs) anzeigen lassen

Session Management

  • vim -S startet Vim wieder mit der zuletzt gespeicherten Session (aus der Session.vim Datei)
  • :mks! speichert die aktuelle Session in der Session.vim Datei

FAQ

  1. Paste Modes (Einfüge Modi)
    :set paste deaktiviert einige Automatismen, so dass eingefügte Daten z.B. ihre Struktur erhalten und nicht umformatiert werden. :set nopaste deaktiviert dieses Verhalten wieder.
    Hilfen :help paste , :help pastetoggle
  2. System Clipboard (Zwischenablage) Copy&Paste – Interaktion
    Damit "* und "+ funktioniert, muss ein Vim Paket mit grafischer Unterstützung installiert sein, in das die Option +clipboard mit eincompiliert wurde.
    Unter Linux mit einem X11 System repräsentiert "* die Option, womit der Inhalt mit der mittleren Maustaste an die aktuelle Stelle eingefügt werden kann.
    Um zu prüfen, ob die aktuelle Vim Installation den Austausch mit dem System Clipboard unterstützt: Im Normalmodus :echo has('clipboard') und ENTER eingeben. Wenn als Ergebnis eine 0 heraus kommt, wird es nicht unterstützt.
    Durch die Installation des Paketes vim-gtk3 (Ubuntu) wird Copy&Paste unterstützt.
    Hilfen :help clipboard , :help registers , :help cb (Current Buffer)

Weitere Vim Artikel hier im Blog.

Quellen

  1. https://de.wikipedia.org/wiki/Vim
  2. https://wiki.ubuntuusers.de/VIM/
  3. Einführung zu Vim – Tutorials Deutsch https://www.youtube.com/playlist?list=PLZ0CUq-i3Io9dAIKsHNwNAnTeKXamcQ5N
  4. Vim Tricks Live Coding auf Deutsch mit Daniel Siepmann https://youtu.be/P5tAKRVYj4E
  5. Register und Makros in Vim (clt23) Info Seite / Video

Eine tmux.conf Konfiguration

Eine für mich sehr gut funktionierende tmux.conf entweder systemweit in /etc/ oder nur für einen Benutzer in der ~/.tmux.conf ist die folgende Konfiguration. Für mich waren hier die Statuszeile und die Einbindung des Maus Scrollrades zum Scrollen wichtig.

######################
### DESIGN CHANGES ###
######################

# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none

set -g mouse on

# modes
setw -g clock-mode-colour colour25
setw -g mode-style "fg=colour255 bg=colour25 bold"

# panes
set -g pane-border-style "fg=colour19 bg=colour0"
set -g pane-active-border-style "bg=colour0 fg=colour9"

# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-style "bg=colour25 fg=colour255"
set -g status-left "#[bg=colour25,fg=colour255]"
set -g status-right "#[fg=colour255,bg=colour25] %d/%m/%Y #[fg=colour255,bg=colour25] %H:%M "
set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-style "fg=colour15 bg=colour31 bold"
setw -g window-status-current-format "#I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F"

setw -g window-status-style "fg=colour0 bg=colour25 bold"
setw -g window-status-format "#I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F"

setw -g window-status-bell-style "fg=colour255 bg=colour1 bold"

Youtube RSS Feeds Kanal und Playlisten

Wer viele Nachrichten und Informationsquellen hat, verliert schnell mal die Übersicht. Da hilft das uralte Konzept der RSS Feeds sehr elegant weiter. Nur weil es alt ist, kann es auch gut sein.

Kanal RSS Feed

Der Kanal RSS Feed ist schnell mit jedem einfachen RSS Feed Addon von Firefox gefunden.

Von meinem Kanal muss nur die Kanal ID oder „channel_id“ gefunden werden, die meist in der URL Leiste steht. Und wenn sie da nicht zu finden ist, dann einfach den Quellcode der Webseite öffnen – bei Firefox einfach Strg+U drücken und mit Str+F nach dem folgenden Text suchen „https://www.youtube.com/feeds/videos.xml?channel_id=„, dann wird automatisch zur richtigen Stelle gesprungen, wo dann auch die gesamte URL steht, wie z.B, diese hier

https://www.youtube.com/feeds/videos.xml?channel_id=UCCQ0claPBEXXt4YP36ewKSQ

Playlist RSS Feed

Bei der Playlist ist es aktuell noch einfacher, die RSS Adresse herauszufinden.
Dazu wird einfach die Playliste aufgerufen und dann steht in der URL Leiste ungefähr so etwas

https://www.youtube.com/playlist?list=PLdIGJzeTcaAcGtRMOStGpGQXGe063oZab

Die Zeichenfolge nach list= ist dabei wichtig.

Jetzt muss nur noch https://www.youtube.com/feeds/videos.xml?channel_id= in https://www.youtube.com/feeds/videos.xml?playlist_id= umgewandelt und die „list=“ ID dran gehängt werden und schon ist der RSS Feed zusammengebaut.
Der sieht dann in diesem Fall so aus

https://www.youtube.com/feeds/videos.xml?playlist_id=PLdIGJzeTcaAcGtRMOStGpGQXGe063oZab

Viel Spaß mit mit euren Nachrichtenquellen und dem RSS Reader!

Audio in Video normalisieren mit ffmpeg

Manchmal ist das Audio in einem Video relativ leise und eigentlich ist da noch richtig Luft nach oben es lauter zu machen. Ein schöner und sehr eleganter Weg ist es mit ffmpeg die Normalisierungsfunktion zu nutzen, ohne das Video selbst erneut zu encoden. Das Audio muss natürlich neu encoded werden.

Zuerst muss ermittelt werden welches der lauteste Peak (lauteste Stelle) im gesamten Audio ist

Lautstärkenermittlung – Highest Peak

ffmpeg -i Videodatei.mp4 -af "volumedetect" -vn -sn -dn -f null /dev/null

Dann steht in der Ausgabe irgendwo relativ weit oben so etwas:

[Parsed_volumedetect_0 @ 0x00000000000] mean_volume: -29.1 dB
[Parsed_volumedetect_0 @ 0x00000000000] max_volume: -3.6 dB

Das „max_volume mit -3.6 dB“ ist das Interessante für uns. Das maximale Level in der digitalen Welt ist 0dB . Alles was darüber „gedrückt“ wird, wird sehr hässlich verzerrt. Das sollte unbedingt vermieden werden!!

Lautstärkenlimit beachten!

Und vielleicht ein kleiner Sicherheitsabstand wäre auch noch ganz gut, denn beim Umwandeln über D/A (Digital/Analog) Wandler passieren auch je nach Qualität manchmal merkwürdige Dinge. Stichwort Truepeak bzw True Inter-Sample Peak Level.
Also als Empfehlung wäre hier einen Puffer von 0,5 dB bis 1 dB einzuhalten.

In unserem Beispiel von „max_volume mit -3.6 dB“ nehmen wir mal einen Puffer von 1 dB, das würde dann heissen, dass wir das max_volume um 2.6dB erhöhen: -3.6+2.6= -1dB Ziellautstärke

Lautstärkenanhebung

Der Befehl dazu lautet (Ziel Audioformat: AAC)
ffmpeg -i Videodatei.mp4 -af "volume=2.6dB" -c:v copy -c:a aac -b:a 192k VideodateiErgebnis.mp4

Alias und Function

Und in der Shell Bash ist das natürlich schöner mit einem kurzen Alias aufzurufen. Aber ein Alias ist nur ein anderer Name für ein bestehender Name. Also könnte ich dem Programm Ulrike den Namen Peter geben und egal, welchen Namen ich jetzt eingebe Ulrike oder Peter, das selbe Programm wird ausgeführt.

Da sich hier aber Aufrufparameter, wie Videodatei und die 2.6dB handelt, reicht ein Alias nicht. Dafür gibt es in der Bash die Function. Hier können dann auch die Aufrufparameter abgefragt werden.

Diese Functions weiter unten gelten immer nur für die aktuelle Session. Sobald das Fenster geschlossen oder die Bash beendet wird, ist auch die Function gelöscht. Soll die Function für immer bleiben, muss sie in der Datei .~bashrc im eigenen Homeverzeichnis definiert werden.

Lautstärke herausfinden

Der Aufruf sieht so aus myMaxvol Videodatei.mp4

myMaxvol() { ffmpeg -i "$1" -af "volumedetect" -vn -sn -dn -f null /dev/null; }

Lautstärke anheben

Der Aufruf sieht so aus: myGainvol Videodatei.mp4 2.6

myGainvol() { ffmpeg -i "$1" -af "volume=""$2""dB" -c:v copy -c:a aac -b:a 192k output.mp4 && mv output.mp4 "$1" ; }

Erklärung was hier passiert: Es wird als Parameter Videodatei.mp4 und 2.6 als Lautstärkenanhebung mitgegeben. Das Ergebnis wird in eine Datei namens output.mp4 geschrieben. Wenn die Lautstärkenanhebung erfolgreich war, dann wird die Datei output.mp4 umbenannt in die Videodatei.mp4, die damit natürlich überschrieben wird.

Wenn die Aktion schief läuft, dann liegt da eine Datei output.mp4 herum und noch die originale Datei Videodatei.mp4.

Bash Script

Vielleicht bastle ich noch ein kleine Bash Script, das automatisch die Lautstärke ermittelt, dann auch automatisch die Anhebung ermittelt und danach gleich die Lautstärkenanhebung durchführt. Und dann das ganze noch auf ein ganzes Verzeichnis anwendet.

Schaumermal.

Lernvideos sinnvoll organisieren

Es gibt, oder es gab, ich weiss es ehrlich nicht genau, daher schreib ich mal in der Gegenwartsform, das Kommandozeilenprogramm youtube-dl oder andere Varianten wie yt-dlp oder ähnliche, mit denen es einfach möglich ist Videos herunter zu laden, um nicht von einer funktionierenden Internetleitung abhängig zu sein. Wer in Deutschland lebt, weiss, was ich meine.

Vor allem bei Lernmaterial ist das super, wenn es offline verfügbar ist und immer wieder angeschaut werden kann, ohne wieder und wieder durch das Streaming CO2 zu erzeugen.

Viele dieser Lernvideos haben Kapitelmarken und auch Untertitel in verschiedenen Sprachen, die natürlich auch im offline Modus sehr hilfreich sind. Und nicht nur als Kapitel, sondern eventuell auch zur Zerteilung in einzelne Videoclips, so dass bei einer Suche direkt auf den entsprechenden Clip zugegriffen werden kann.

Wenn also ein Video legal runtergeladen werden darf, dann helfen folgende Parameter und folgender Workflow bei den entsprechenden Programmen, die ich jetzt einfach mal unter dem Programmnamen DLPGRM zusammenfasse

Verfügbare Formate auslesen

Um erst mal zu sehen, in welchen VIDEO und AUDIO Formaten die Quelle vorliegt, gibt es folgenden Befehl, mit dem eine Tabelle ausgegeben wird.

DLPGRM -F URL-Link

Am Anfang der Tabelle steht in jeder Zeile eine ID und rechts daneben jede Menge weiterer Parameter. Wichtig ist, sich hier die IDs für das gewünschte VIDEO und AUDIO Format zu notieren, denn das wird für den nächsten Schritt gebraucht.

Hinweis: Wenn es einfach nur ein Redebeitrag ist, ohne dass Dinge gezeigt werden, die wichtig sind, wäre es unter Umständen sogar sinnvoll, das als Audiodatei (weiter unten) zu speichern, oder wenigstens als Video mit einer sehr geringen Auflösung. Wenn die Lernvideos nur auf dem Smartphone gespeichert werden sollen, dann sind hohe Auflösungen eh meist sinnlos. Da kann dann schon mal 256×144, 426×240 oder 640×360 genommen werden. Das spart CO2 und zuletzt auch eine Menge Festplattenplatz.

Lernvideo mit Kapitelinformationen speichern

Ist also die ID Nummer für VIDEO und AUDIO ausgesucht, dann kann mit folgendem Befehl das Lernvideo gespeichert werden. Gleichzeitig werden die Kapitel und deutsche & englische Untertitel mit rein gepackt und als Datei kommt eine MP4 Datei heraus, die auf allen Endgeräten abspielbar ist.

DLPGRM -f VIDEO+AUDIO --merge-output mp4 --embed-chapters --sub-langs "de,en" --embed-subs --write-auto-subs --embed-metadata URL-LINK

Soll das Lernvideo als reine Audio Datei, z.B. mp3 gespeichert werden, dann geht das auch mit

DLPGRM -x --audio-format mp3 URL-LINK

Kapitel nachträglich auslesen

Die Kapitel können nachträglich aus der Videodatei mit ffmpeg ausgelesen werden. Genauer gesagt mit dem Tool ffprobe. Dazu muss einfach nur der Befehl

ffprobe -show_chapters VIDEODATEI

eingegeben werden und als Ergebnis kommt eine Textausgabe der Kapitel heraus. Allerdings im sehr ausführlichen ffmpeg Format, aus dem dann die entsprechenden Informationen entnommen werden können. Dieses Format sieht z.B. so aus

[CHAPTER] 
id=0
time_base=1/1000
start=0
start_time=0.000000
end=60000
end_time=60.000000
TAG:title=Einleitung
[/CHAPTER]
[CHAPTER]
id=1
time_base=1/1000
start=60000
start_time=60.000000
end=95000
end_time=95.000000
TAG:title=Kanäle / Tracks umschalten
[/CHAPTER]
[CHAPTER]
id=2
time_base=1/1000
start=95000
start_time=95.000000
end=177000
end_time=177.000000
TAG:title=Parameter ändern (Volume, Pan, Send Effekte/Kanäle) und resetten
[/CHAPTER]
[CHAPTER]
id=3
time_base=1/1000

Kapitel als einzelne Videos speichern

Soll das Lernvideo nun aber in einzelne kleinere und leichter auffindbare Dateien aufgeteilt werden, so würde das auch mit dem Programm gehen, allerdings gibt es da den einen oder anderen unschönen Seiteneffekt, der durch sogenannte fehlende Keyframes (ein komplettes Vollbild) an der richtigen Stelle entsteht, so dass es manchmal beim Beginn der Kapitel aussieht, als würde jemand mit Wasserfarben durchs Bild wischen, oder aber das Lernvideo muss komplett neu codiert werden. Und das kann ganz schön lange dauern.

Es gibt da einen kleinen Trick, der nicht nur schneller, sondern auch Resourcen schonender ist. Das Programm LossLessCut kann diverse Videoformate einfach zerteilen, ohne dass irgendwas neu berechnet werden muss. Und es bietet eine einfache und praktische Lösung zu dem Keyframe Problem an. Nämlich schaut es, wo das Kapitel beginnt und dann „spult“ es so lange zurück, bis es das letzte Keyframe findet und legt den Anfang des Kapitels dorthin.

Dabei handelt es sich dann meist um eine Wiederholung maximal 1-3 Sekunden zum vorherigen Kapitel aber dafür mit einem klaren Bild.

Also wird das Lernvideo in LossLessCut reingeladen und dann wird zuerst gefragt, ob die Segmente oder Chapters auch importiert werden sollen. Auf diese Frage mit Ja antworten. Danach kann gleich rechts unten auf den Export Knopf gedrückt werden und diese Einstellungen sollten übernommen werden.
Wichtig sind: Separate files, mp4, Cut mode=Keyframe cut, preserve all MP4/MOV metadata

Und nach 3 Sekunden liegen alle Kapitel als einzelne Videoclips vor.

Viel Spaß bei der Organisation eurer Lernvideos, die ihr jetzt noch viel effizienter ablegen könnt.

Vim – Suchen & Ersetzen – RegEx

Reguläre Ausdrücke (RegEx) sind DER Shit, wenn es darum geht extrem schnelle und auch sehr komplexe Dinge mit Texten bzw Strings oder einfach generell bei Suchen zu veranstalten.

Ein Anwendungsfall kommt immer wieder vor, nämlich das Suchen&Ersetzen.

Das Muster sieht so aus

:[range] s / [pattern] / [string] / [flags] [count]

[range]

  • bei range steht meist ein Prozentzeichen % das für den gesamten Text aka alles steht
  • hier können auch 1,$ = erste Zeile, erstes Zeichen bis letzte Zeile, letztes Zeichen
  • .,$ heisst von der aktuellen Zeile bis zum Ende
  • {Nummer} – in Zeile Nummer sowieso z.B. Zeile 14
  • Die Übersicht der schier unendlichen Bereichsangaben bekommst du, wenn du vim aufrufst und dann :h range eingibst

s (substitute)

  • Substitute ist die Suchen&Ersetzen Funktion. Wichtig zu wissen ist, dass alle Zeichen, die nicht in a-z und A-Z sind, müssen mit einem vorangestelltem Backslash \ „escaped“ werden.
  • Also Zahlen, Punkte, Klammern und Sonderzeichen mit einem Backslash \ escaped werden.
  • Ein Backslash wird dann natürlich auch mit einem Backslash escaped \\. Und ein Slash im Suchstring wird natürlich auch mit einem Backslash escaped \/ . Auch ein Leerzeichen bzw Blank wird mit einem Backslash escaped.
  • Der Grund dafür ist, dass viele dieser Zeichen selbst eine Funktion für die Suche darstellen. Und damit da keine Verwechselung entsteht muss extra „escaped“ werden.

[pattern]

  • Pattern ist der zu suchende Text
  • In einem Pattern können auch wiederum Pattern-Funktionen eingefügt werden, wie z.B. ab dem 5. Zeichen (spalte/column) %5c oder bis zum 5. Zeichen %>5c und viele weitere.
  • in vim :help pattern

[string]

  • String ist der Text, der das gesuchte Pattern ersetzt werden soll.

[flags]

  • g (global) wiederholt das Suchen&Ersetzen, bis zum Ende des Textes. Wird g nicht angegeben, wird nach dem ersten Suchtreffer aufgehört.
  • c (confirm) zum Bestätigen des Ersetzens
  • i (ignore) um Groß/Kleinschreibung zu ignorieren

[count]

  • der Parameter count wird bei Bedarf in einer positiven ganzen Zahl wie z.B. 5 angegeben. Er wirkt sich auf das Suchen&Ersetzen so aus, dass z.B.
  • %s/blah/blubb/g 5 – vom Textanfang die ersten 5 Zeilen bearbeitet werden
  • 10,$ s/blah/blubb/g 5 – ab Zeile 10, die Zeilen 10, 11, 12, 13, 14, also insgesamt 5 Zeilen bearbeitet werden.

Slash / – das Slash „/“ trennt die verschiedenen Parameter voneinander.

Will ich also den merkwürdigen String „Maier/(Schmidt)-Hans\Jens.Familie?“ in meinem gesamten Text mit „Bullshit!„ersetzen, sähe der Aufruf so aus

:%s/Maier\/\(Schmidt\)\-Hans\\Jens\.Familie\?/Bullshit\\!/g

Einfach vor jedes nicht a-zA-Z Zeichen ein Backslash

Nützliche Bash Shortcuts

Wenn du in Linux die Konsole öffnest, dann öffnest du in den meisten Fällen eine Bash Shell. Eine Shell ist einfach nur ein Programm, mit dem du Befehle an deinen Computer senden kannst wie : Zeige mir alle Dateien und Verzeichnisse an, oder starte Programm XY. Eine Shell ist also eine Kommunikationsschnittstelle zu deinem Betriebssystem. Es gibt viele verschiedene Shells und eine davon ist eben Bash. Siehe auch Wikipedia https://de.wikipedia.org/wiki/Bash_(Shell)

So eine Shell (Mensch-Maschine-Schnittstelle) bietet sehr sehr sehr viele verschiedene Möglichkeiten. Darunter auch viele Shortcuts (Tastenkombinationen), die das Eingeben, Suchen, Editieren usw viel einfacher machen.

Hier habe ich einige und für mich sehr nützliche Shortcuts zusammengestellt

Die Buchstaben hier sind zwar alle groß geschrieben, aber das einfach nur wegen der besseren Lesbarkeit und Einheitlichkeit. Alle Buchstaben können ohne die Shift Taste eingegeben werden. Also ein L ist eigentlich ein l, das sonst schnell mit einem großen i verwechselt werden könnte. Ich schreibe extra Kommandozeile, weil die sich über mehrere Zeilen erstrecken kann und damit klar wird, dass nicht die Bildschirmränder gemeint sind.

Nützliches

  • TAB Tabulator Taste bei der Eingabe drücken, um die Autovervollständigung zu nutzen. Am Anfang der Zeile wird nach Befehlen aus dem System gesucht, wenn bereits ein Wort am Anfang steht, dann werden Datei- und Verzeichnisnamen vervollständigt
  • Strg + L Löscht den Bildschirm. Wie auch der Befehl clear
  • !! Den letzten Befehl nochmal wiederholen (NOCHMAL !! !! !! !!)

Suchen

  • Pfeil hoch / runter – Befehlshistorie hoch und runter (vor und zurück) blättern, um bereits ausgeführte Befehle nochmal zu wiederholen. Bash speichert eingegebene Befehle in einer Datei namens .bash_history in deinem Homeverzeichnis und diese wird dann durchsucht.
  • Strg + R Inkrementelle Rückwärtssuche der Bash Historie. Erneut Strg + R drücken, um das nächste Suchergebnis anzeigen zu lassen.
  • Strg + J die aktuelle Suche in der Bash Historie mit der Übernahme des aktuellen Befehls beenden (Jaaaaa)
  • Strg + G die aktuelle Suche in der History mit leerer Eingabe beenden (Geh weg!)

Cursor Navigation

  • Strg + A Springe ganz an den ANFANG der Kommandozeile
  • Strg + E Springe ganz an das ENDE der Kommandozeile
  • Alt + F schiebt den Cursor vorwärts (FORWARD) vor das nächste Wort
  • Alt + B schiebt Cursor zurück (BACK) auf den ersten Buchstaben des vorangegangen Wortes

Löschen & Tauschen

  • Strg + U Löscht alles links des Cursors bis zum Anfang der Kommandozeile (Uuuuund zurück)
  • Strg + K Löscht alles rechts des Cursors bis zum Ende der Kommandozeile (Kawumm)

  • Strg + W Löscht ab dem aktuellen Zeichen links den „Rest“ bis zum WORTanfang
  • Alt + D Löscht ab dem aktuellen Zeichen den „Rest“ DES Wortes rechts

  • Alt + T Das Wort an der aktuellen Cursorposition wird mit dem vorangehenden Wort vertauscht (Tausch)

Ausgabe Display

  • Strg + S Stoppt die Ausgabe von Meldungen auf dem Bildschirm – einfrieren/screenshot (das aktuell laufende Programm wird nicht gestoppt. Im „Hintergrund“ laufen die Meldungen weiter)
  • Strg + Q Beendet das Strg + S (screenshot/einfrieren)

Beenden

  • Strg + C Abbruch eines Programms
  • Strg + D Schliesst die Bash Shell und damit auch meist das Konsolen Terminal

Touchpad / Touchscreen Gesten in Kubuntu

Moderne Touchpads und Touchscreens erkennen wenn mehere Finger auf das entsprechende Gerät gelegt werden. So ist es schon länger möglich mehr als nur die Maus von rechts nach links oder im Browser die Seite von oben nach unten zu schieben. Das nennt sich dann Gesten oder auf englisch Gestures oder ab 2 Fingern, eigentlich ab 3 gleichzeitig dann Multitouchgestures. Fenster mit einem Wisch minimieren, maximieren, schliessen, Vollbild, alle Fenster anzeigen usw usf.

Wer so ein Gerät, Notebook mit Touchpad, externes Touchpad oder einen Touchscreen hat, wil eigentlich von diesen Featuren profitieren, denn das reduziert den Wechsel zur Tastatur, oder das Rumgeschiebe mit der Maus oder sogar die Bewegung auf dem Touchpad/-screen selbst. Beispiele wie das aussieht sind auf der Projektseite zu sehen.

Vorweg sei gesagt, dass diese Lösung hier nicht mit dem neuen Displayserver Wayland getestet sind und dort vermutlich nicht laufen. Gedacht ist diese Lösung für den X11 Server (Standard). Ich habe sie unter Kubuntu 22.04 LTS erfolgreich eingerichtet, auch wenn die meisten Beschreibungen mit Ubuntu betitelt sind.Für KDE gibt es eine weitere Konfiguration, die ich selbst aber nicht nutze.

Die Installation ist recht einfach.
Es muss ein Treiber https://github.com/JoseExposito/touchegg installiert werden. Ein 3 Zeiler, in dem erst das Software Repository hinzugefügt, dann die Quellen aktualisiert und schließlich die Anwendung installiert wird. Bitte zur Sicherheit der Installationsanweisung auf der Projektseite folgen. Diese Anweisungen stimmten zur Erstellungszeit des Artikels.

sudo add-apt-repository ppa:touchegg/stable
sudo apt update
sudo apt install touchegg

Für andere Linuxdistributionen sind die entsprechenden Aktionen ebenfalls auf der Projektseite aufgeführt.

Danach das graphische Konfigurationsprogramm https://github.com/JoseExposito/touche per Flathub mit dem Programm Discover installieren.
Der Systemdienst touchegg sollte gestartet werden. Wenn du nicht weisst, wie das geht, dann kannst du einfach deinen Computer neu starten. Oder du versuchst es auf der Konsole mit dem Befehl

sudo systemctl start touchegg.service


Weitere Informationen

In Touché können Tastenkürzel angegeben werden. Dort kann man dann nach Herzenslust alle möglichen Tastenkürzel angeben, die auch in den Systemeinstellungen für diverse Aktionen hinterlegt sind, wie z.B. Strg+F10 um alle Fenster anzuzeigen.

Leider gibt es keine wirklich einfache bzw universelle Methode herauszufinden, wieviele Finger (touches) das Touchpad oder der Touchscreen unterstützt. Einige benutzen xinput, andere benutzen die geist-tools, die aber bei mir mit einem Pythonfehler den Dienst quittierten. Eine vielleicht noch hilfreiche Quelle mit https://wiki.archlinux.org/title/Touchpad_Synaptics#top-page Informationen ist das Archlinux Wiki
Ansonsten einfach ausprobieren. Mehr als dass es nicht funktioniert, kann eigentlich nicht passieren.

Künstliche Intelligenz , Future of Life und was dahinter steckt

Anmerkung zu dem 6 monatigem Moratorium zur KI Entwicklung. Also das Aussetzen der Entwicklung bis eine Regelung gefunden wurde, wie damit in Zukunft umzugehen ist.
Exakt das Selbe hat die Chinesische Regierung mit der chinesischen Firma Alibaba gemacht, als die zu groß wurden und ein Monopol gebildet haben.

Bei dem Vorgang schrien dann alle KOMMUNISMUS!!!

Dürfen jetzt Elon Musk, Steve Wozniak und alle die den Brief des gemeinnützigen Institut „Future of Life“ unterschrieben haben, nun als KOMMUNISTEN beschimpft werden?
Unter uns glaube ich sowieso, dass dieser Brief von denen unterschrieben wurde, die bei der Entwicklung hinterher sind und dadurch die Konkurrenz behindern wollen.
Wichtig bleibt wie immer, dass die vernachlässigte Bildung in Schulen, Universitäten und Firmen endlich auf Vordermann gebracht wird.

Dass der öffentliche Rundfunk breitenwirksam und dauerhaft Medienkompetenztrainings betreibt. Wie früher Verkehrserziehung wie dem Siebten Sinn.

Die einfache digitale Signierung muss ebenso ein alltäglicher Standard werden, ebenso die Überprüfung selbiger. Und auch wenn die FundamentalistInnen schmerzlich aufheulen werden ist z.B. die öffentliche Blockchaintechnologie ein gutes Mittel dafür.

Desweiteren müssen drakonische Strafen eingeführt werden, die absichtliche Täuschung so massiv mit persönlicher Haft bestrafen, so dass auch ein Herauskaufen komplett unmöglich ist. Wer digital betrügt kommt analog ins Gefängnis.

Es müsste jetzt sehr schnell sehr viel in die Wege geleitet und umgesetzt werden. Wie schon seit 30 Jahren. Viel Intelligenz braucht es nicht, um das zu verstehen und umzusetzen. Schaumermal!

PS: KIs sind nichts anderes als Automaten und so sollten wir sie auch nennen!

Barrier statt Synergy – Maus & Tastatur zwischen zwei Computern teilen

Um eine Tastatur und Maus für zwei Computer zu verwenden habe ich früher Synergy verwendet. Dann wurde das kommerzialisiert und ich habe mir Synergy gekauft, weil ich damals eine Brücke zwischen Windows und Linux brauchte.
 
Jetzt brauche ich gerade wieder so eine Verbindung. Allerdings zwischen zwei Linux Rechnern – genauer gesagt zwischen zwei Kubuntu Rechnern. Bei der Recherche bin ich dann auf Barrier gestoßen, das ein Fork des früheren Synergys ist.Barrier teilt Maus, Tastatur und die Zwischenablage.
 
Barrier ist in sehr vielen Linux Distributionen vorhanden und falls nicht, gibt es das noch als Flatpack. Daher geht die Installation auf beiden Rechnern schnell von der Hand mit einem
sudo apt install barrier
oder entsprechend mit der Flatpack Variante über Discover (Ubuntu).
 
Beim Start auf dem Rechner mit der Maus und der Tastatur (Server) öffnet sich das Barrier Konfigurationsfenster mit der Aufforderung eine Sprache auszuwählen. Danach kommt man in die eigentliche Konfiguration.

Server – im oberen (Serverbereich) „interaktiv konfigurieren“ anklicken
Server – „Server konfigurieren“ klicken
Server – Von der rechten oberen Seite das Monitor Symbol in das Feld auf die Seite ziehen, wo Maus und Tastatur auf den anderen Rechner wechseln sollen
Server – Doppelklick auf den neuen „Monitor“ und einen Anzeigenamen vergeben

Wechsel zum „Client“

Client – Barrier starten
Client – Auswahl „Client (Maus und Tastatur eines anderen Rechner benutzen)“ auswählen
Client – IP Adresse des Server eintragen (diese wird im Barrier Fenster des Servers angezeigt)
Client – Barrier starten (oder neu laden, falls schon gestartet)
Client – Es kommt eine Schüsselgenerierungsanzeige. Diese bestätigen

Barrier sollte jetzt mit der Maus und Tastatur funktionieren.
 
Nachtrag 20.08.2022
Will man eben schnell mal zwischen zwei Bildschirmen wechseln – bei mir war die Anforderung da, weil ich OBS Studio mit einem HDMI Grabber (MiraBox)auf einem anderen Rechner benutze – so kann man beim Server auf „Configure Server“ -> Hotkeys gehen und dort (habe ich) 2 neue „Hotkeys“ anlegen. z.B.

Shift + BildHoch = Action switchToComputer1
Shift + BildRunter = Action switchToComputer2

Die Maus landet dann immer dort, wo sie den jeweiligen Bildschirm verlassen hat. In meinem Fall sehr praktisch.
 
Barrier läuft unter Linux, FreeBSD, OpenBSD, Windows und macOS (hier bitte die Entwicklerseite wegen bekannten Problemen lesen!!)
 
Die Entwickler Webseite https://github.com/debauchee/barrier
 
 

Texteditor Kate sortieren

Ein Befehl zum Sortieren fehlt im KDE Texteditor Kate. Das ist insofern ungeschickt, weil so eine Funktion einfach integriert doch oft weiter hilft. Allerdings kann diese Funktion auf einem Linux System recht einfach durchgeführt werden, indem das Kommandozeilen Programm „sort“ benutzt wird. Dazu muss lediglich die Tastenkombination Strg+AltGr+\ oder im Menü „Extras – Filtern durch Befehl (Strg+\)“ aufgerufen werden.

Markiert man vorher einen Bereich, z.B. mehrere Zeilen mit einer Nummerierung, dann werden nur diese Zeilen dem aufgerufenen Programm übergeben.

So werden Zeilen dann einfach mit Strg+\ und der Eingabe „sort“ in die richtige Reihenfolge gebracht. WENN denn die Zahlen am Anfang für sich alleine stehen

Sort hat einige Parameter und vermutlich wird meist der Parameter „-V“ natural sort of (version) numbers within text“ gesucht, da dieser Parameter das so sortiert, wie wir das meist manuell machen würden.

sort -Vsort
1
2
3
20
30
1
2
20
3
30


Mit „sort -V“ werden zum Beispiel auch Nummer 1, Nummer 2, Nummer 3, Nummer 30 ordentlich sortiert.

Wer noch mehr Sortier-Parameter von sort erfahren möchte, gibt einfach „man sort“ auf der Kommandozeile ein.

Viel Spaß beim Sortieren.

PS: Kate gibt es übrigens auch als Windows und als Mac Version hier zum Runterladen

Beim ssh login tmux aufrufen

Da ich tmux (Alternative zu screen) sehr häufig benutze, nutze ich auch bei remote ssh logins einen Befehl, der mich nach dem erfolgreichen Login gleich in eine detachte tmux session bringt.

ssh -l <USERNAME> <HOST> -p <PORT> -t "tmux a"

Weitere Artikel zu tmux

  1. tmux – neues Fenster oder Pane im aktuellen Verzeichnis öffnen
  2. tmux ein Windowmanager für die Konsole
  3. Live-Anzeige der Webserver-Client Verbindungen
  4. Eine tmux.conf Konfiguration

Plugins – Windows VSTs 32/64 Bit mit YaBridge | Linux

Yabridge habe ich schon länger im Gebrauch und will nun endlich auch mal einen Artikel darüber schreiben, nachdem ich schon ein kleines Tutorial dazu gemacht habe. Wie man so schön auf deutsch sagen würde „Die Installation von YaBridge ist ein Gehirnloser (nobrainer)“  … manchmal vermisse ich die schlechten Übersetzungsprogramme. 🙂
 
Kurze Übersicht, was gemacht werden muss:

  1. Installation von Wine „Staging branch“
  2. Download Yabridge in ein bestimmtes Verzeichnis
  3. Konfiguration von Yabridge, setzen der Plugin Pfade & yabridgectl sync ausführen
  4. Fertig

 
Schritt für Schritt Anleitung mit vielen Erklärungen, um zu verstehen, was passiert und was dahinter steckt.
 

1. Installation von Wine „Staging branch“

Die „Staging branch“ ist quasi der neuste und heißeste Shit. Bleeding Edge! Es sind zwar die neusten Features mit drin, aber dafür kann man schon mal eben den einen oder anderen Bug rein bekommen. Insgesamt ist dieser Beta Entwicklungszweig aber auch sorgfältig gepflegt, so dass das zum Glück nicht häufig vorkommt. Hat man einen funktionierenden Stand könnte man den auch „einfrieren“ (apt pinning).
 

Generell IMMER der Anleitung auf der WineHQ Seite folgen!


Aktuell für Kubuntu 21.10 sieht das so aus

sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

Für (K)Ubuntu 21.10

sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ impish main'
sudo apt update
sudo apt install --install-recommends winehq-staging

 
Dann gibt es noch 2 sehr wichtige Hinweise auf der WineHQ Webseite (Datum dieses Artikels)

WineHQ enthält derzeit keine Pakete für wine-gecko oder wine-mono. Wenn Sie ein neues Wine-Präfix erstellen, werden Sie gefragt, ob Sie diese Komponenten herunterladen möchten. Für beste Kompatibilität wird empfohlen, hier auf Ja zu klicken. Wenn der Download bei Ihnen nicht funktioniert, folgen Sie bitte den Anweisungen auf den Gecko- und Mono-Wiki-Seiten, um die Komponenten manuell zu installieren.

Beginnend mit Wine 5.7 haben die WineHQ Ubuntu-Pakete eine optionale debconf-Einstellung, um CAP_NET_RAW zu aktivieren, damit Anwendungen, die rohe IP-Pakete senden und empfangen müssen, dies tun können. Dies ist standardmäßig deaktiviert, da es ein potentielles Sicherheitsrisiko darstellt und die meisten Anwendungen diese Fähigkeit nicht benötigen. Benutzer von Anwendungen, die dies benötigen, können CAP_NET_RAW nach der Installation von Wine aktivieren, indem siedpkg-reconfigure wine-<branch>-amd64 wine-<branch> wine-<branch>-i386und beantworten Sie die drei Fragen mit Ja. (Ersetzen Sie devel, staging oder stable durch <branch> im obigen Befehl). Also sieht der Vefehl folgendermaßen ausdpkg-reconfigure wine-devel-amd64 wine-devel wine-devel-i386

Um die Darstellung anzupassen nutzt man das Tool winecfg. Unter Grafik kann man die DPI einstellen, so dass alles etwas größer ist z.B. 120 oder 150 DPI bei hochauflösenden Bildschirmen. Einfach in einer Konsole winecfg eintippen und Enter drücken.


Sollten irgendwelche Schriftarten oder ähnliches fehlen, können diese einfach mit dem tool winetricks nachinstalliert werden. Das Tool winetricks muss extra installiert werden und sollte mit größter Vorsicht und nur in Ausnahmefällen genutzt werden, da man sich mit diversen „Tipps & Tricks“ aus dem Internet schnell mal die Konfiguration zerschießen kann.Für die Schriftarten wäre es dann folgender Befehl notwendig winetricks -q corefonts

2 Download Yabridge in ein bestimmtes Verzeichnis

Von Robberts YaBridge Software Repository die letzte Version von Yabridge runterladen und zwar von der „Release“ Seite https://github.com/robbert-vdh/yabridge/releases . Das Paket das mit „-ubuntu-18.04.tar.gz“ endet ist AUSSCHLIESSLICH für (K)Ubuntu Versionen ÄLTER bis 18.04 gedacht. Für neuere Versionen einfach das Paket z.B. yabridge-3.8.1.tar.gz runter laden . Zum Zeitpunkt, wenn du das installierst, kann das natürlich eine neuere Version sein.

  1. Download von https://github.com/robbert-vdh/yabridge/releases
  2. Auspacken und in das Verzeichnis ~/.local/share (also dein Home Verzeichnis) kopieren. So dass als Ergebnis das Verzeichnis ~/.local/share/yabridge/ mit den entsprechend darin befindlichen Dateien existiert.
  3. In einer Konsole in das Verzeichnis wechseln cd ~/.local/share/yabridge/
  4. Die Pluginpfade hinzufügen ( mit ./yabridgectl add ), in denen sich normalerweise die installierten Plugins befinden. Wenn noch keine Plugins installiert sind, existieren auch oft die Pfade nicht!
    Typische Pfade sind:
"$HOME/.wine/drive_c/Program Files/Steinberg/Vstplugins/"
"$HOME/.wine/drive_c/Program Files/Vstplugins/"
"$HOME/.wine/drive_c/Program Files/Common Files/VST2"
"$HOME/.wine/drive_c/Program Files/Common Files/VST3"

Schau nach welche Pfade bei dir existieren (nach der Plugin Installation) und dann füge sie mit dem Befehl (im yabridge Verzeichnis) ./yabridgectl add DEINPFAD hinzu z.B. ./yabridgectl add "$HOME/.wine/drive_c/Program Files/Steinberg/Vstplugins/"

Mit ./yabridgectl list kannst du dir alle eingepflegten Pfade anzeigen lassen

und mit ./yabridgectl rm PFADNAME kannst du einen Pfad wieder aus der Konfiguration entfernen.

Mit ./yabridgectl status siehst du alle erkannten und unterstützten Plugins

Installierte Plugins hinzufügen
Jedes Mal, wenn ein neues Windows Plugin installiert wurde öffnest du eine Konsole, wechselst in das yabridge Verzeichnis cd ~./conf/share/yabridge und führst folgenden Befehl aus

./yabridgectl sync

Fertig

In der letzten Zeile der Ausgabe solltest du einen Hinweis lesen können, dass ein neues Plugin erkannt und hinzugefügt wurde (added new). Um es dann aber doch noch genau zu überprüfen und eine Liste aller Plugins zu sehen, rufe einfach folgenden Befehl auf

./yabridgectl status

Abschließend musst du vermutlich nur noch in der DAW die entsprechenden Pfade für die Plugins angeben und du kannst loslegen. Wenn du wieder mal neue Plugins installiert hast, dann einfach:

Prüfen, wird(wurde) das Plugin in einen der bekannten Pfade installiert?
Wenn ja, dann Konsole öffnen, ./yabridgectl sync ausführen. Fertig
Wenn nein, Pfad mit ./yabridgectl add PFAD hinzufügen und danach ./yabridgectl sync ausführen. Fertig.

 
Das gilt alles für 64 Bit Plugins. Für 32Bit muss bei Wine noch noch etwas angepasst werden, dann geht das auch. Aber das vielleicht in einem anderen Artikel.
 

Multicore Compression bei Zip & Co

Moderne Prozessoren haben mehrere Core und so sollte man auch dieses Möglichkeiten nicht ungenutzt brach liegen lassen zum Beispiel mit den standard Kompressionsprogrammen. Damit können Dateien, wie z.B. Tar Archive wesentlich schneller komprimiert werden. Natürlich zum Preis von einer höheren Prozessorlast. Also je nach System sollte evaluiert werden, ob das ein Vorteil oder ein Nachteil ist.

Hier eine kleine Liste von alternativen Kompressionsprogrammen mit Multicore bzw Multithreading Fähigkeiten, die das entsprechende Format des Originals schreiben und lesen können. Und noch weitere

Will man diese Kompressionsalgorithmen bei tar integrieren, so lautet eine Aufrufzeile z.B. so

tar -I pigz -cf Archive.tar.pigz /FilesNdirectories/toBe/Archived/

tmux ein Windowmanager für die Konsole

Die Konsole, die Manche auch als Kommandofenster oder Shell bezeichnen, ist für die Einen der furchtbar langweiligste und komplizierteste Weg irgendwas am System zu verändern. Für die Anderen ist es der Weg der ultimativen Macht und Kontrolle über ein System.

Standardmäßig öffnet man genau 1 Konsole und kann dort Befehle absetzt, Scripte starten oder Programme wie SSH starten und Verbindungen zu anderen Servern aufmachen. Braucht man mehr als nur eine Konsole, dann könnte man weitere Konsolen starten.

Nun gibt es aber Anwendungsszenarien, bei denen man mehrere Dinge parallel machen und sie auch im Auge behalten, oder nur 1 SSH Verbindung zu einem anderen Computer aufmachen möchte, dort aber ebenfalls mehrere Sessions mit z.B. unterschiedlichen Benutzern gleichzeitig starten, oder nicht jedes Mal warten müssen, bis ein Programm seine Arbeit erledigt hat, bevor man weiter machen kann. Und man möchte sich nicht für jede Aufgabe neu einloggen, wo man doch schon eigentlich eingeloggt ist. Hier kommt tmux ins Spiel.

Tmux ist ein sogenannter Terminal Multiplexer. Salopp ausgedrückt: Es vervielfältigt die aktuelle Konsole um weitere virtuelle Konsolen (Prozesse). Also aus einer einzigen Konsole werden viele Konsolen gemacht. Wenn man möchte.

  1. So gibt es zwei hauptsächliche Anwendungsszenarien. Die beide natürlich parallel nutzbar sind:
    1. Einerseits kannt man die (Text) Konsole in verschiedene Bereiche aufteilen, wie wenn man Fenster auf einem grafischen Desktop nebeneinander und untereinander anordnet.
    2. vertikale Aufteilung Strg+b+%
    3. horizontale Aufteilung Strg+b+"
    4. Wechseln zwischen den Fenstern Strg+b+<Pfeiltasten>
  2. Andererseits kann man Konsolen (Sessions) hintereinander stapeln, so dass man immer nur eine Konsole zur Zeit sieht
    1. Neue Session (Vollbildfenster) erstellen Strg+b+c
    2. Wechsel zwischen den Sessions Strg+b+<Nummer> , beginnt mit 0,1,2,3


Alle diese Fenster kann man mit Strg+d oder einfach mit der Eingabe von exit wieder schliessen.

Will man tmux aber nicht schliessen, sondern sich z.B. von einem Server ausloggen, dort aber alle tmux Sessions offen halten, weil ein Prozess dort noch länger läuft, oder man mehrere Fenster angeordnet hat und Prozesse monitored, so kann man

  1. tmux einfach im Hintergrund weiterlaufen lassen mit Strg+b+d   (detach)
  2. später die Session wieder aufnehmen indem man in der Konsole tippt: tmux a      (attach)

Der Vorteil von tmux ist hier ganz klar, dass man nicht nur eine Session vervielfachen kann, sondern auch, dass bei einem Verbindungsabbruch, die Scripte und Programm, die man gestartet hat unbehelligt auf dem entfernten Server weiter laufen. Sobald man wieder Netz hat, verbindet man sich wieder mit dem Server und holt sich die Session mit tmux a (attach) wieder zurück.

Man sollte dabei im Hinterkopf behalten, dass tmux immer mit dem Benutzer und dessen Rechten neue Sessions aufmacht, mit der tmux gestartet wurde. Braucht man also z.B. viele root Sessions, so sollte man erst zum Benutzer root wechseln, bevor man tmux startet.

Tmux kann noch wesentlich mehr, inklusive einem Theming, wenn man die Farben und die Statuszeile anpassen möchte, oder alle Tasten komplett umkonfigurieren usw. Sehr gute Einstiegsseiten, um mehr darüber zu erfahren sind

  1. Ubuntuusers Wiki https://wiki.ubuntuusers.de/tmux/
  2. Tmux Entwickler Seite https://github.com/tmux/tmux/wiki

Meine persönliche .tmux.conf in meinem Benutzerverzeichnis /home/Benutzer/ sieht momentan so aus

### DESIGN CHANGES ###
######################

# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none

# modes
setw -g clock-mode-colour colour25
setw -g mode-style 'fg=colour255 bg=colour25 bold'

# panes
set -g pane-border-style 'fg=colour19 bg=colour0'
set -g pane-active-border-style 'bg=colour0 fg=colour9'

# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-style 'bg=colour25 fg=colour255'
set -g status-left ' #[bg=colour25,fg=colour255]'
set -g status-right '#[fg=colour255,bg=colour25] %d/%m/%Y #[fg=colour255,bg=colour25] %H:%M '
set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-style 'fg=colour15 bg=colour31 bold'
setw -g window-status-current-format '#I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F'

setw -g window-status-style 'fg=colour0 bg=colour25 bold'
setw -g window-status-format '#I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F'

setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold'

# messages
set -g message-style 'fg=colour232 bg=colour16 bold'

apt – Befehlsreferenz

Ein paar nützliche Befehle im Bezug auf apt, die ich immer wieder brauche und von denen ich mir einige immer wieder neu zusammen suche. Das repetitive Suchen muss endlich ein Ende haben 😉

Installation und Deinstallation

  • Installieren mit sudo apt install <Paketname>
  • Deinstallation sudo apt remove <Paketname>
  • Deinstallation mit Entfernung der Konfigurationen sudo apt purge <Paketname>
  • Alle installierten Pakete ausgeben apt list --installed
  • Eine bestimmte Version installieren sudo apt install <Paketname>=<Versionsnummer>
  • Wenn eine Installation schief lief, hilft manchmal das hier  sudo dpkg --configure -a   und   sudo apt-get -f install

Update/Upgrade

  • Software Update  sudo apt update
  • Welche Pakete sollen aktualisiert werden apt list --upgradeable
  • Software Upgrade der Pakete durch neuere Versionen sudo apt upgrade
  • Software Upgrade mit Entfernen von nicht mehr benötigten Paketen sudo apt full-upgrade
  • Software Upgrade mit Entfernen und Austausch durch neue Pakete sudo apt dist-upgrade
  • Alle Pakete, die nicht mehr benötigt werden entfernen sudo apt autoremove

Aufräumen

  • Nicht mehr benötigte Pakete deinstallieren sudo apt autoremove
  • Löschen aller runtergeladenen und gecachten Pakete sudo apt clean
  • Löschen aller lokalen Pakete, die nicht mehr in den Repositories verfügbar sind sudo apt autoclean

Suche

– Software suchen apt search |grep <Paketname>

Konfiguration

  • Paket neu konfigurieren sudo dpkg-reconfigure <Paketname>

Repository

  • Aus welchem Repository stammt das Paket apt policy <Paketname>
  • Oder mit etwas mehr Info apt show <Paketname>
  • So werden nur die installierten Pakete angezeigt apt list --installed

Sonstiges

  • Die Repositories befinden sich in /etc/apt/sources.list bzw weitere Listen in /etc/apt/sources.list.d/
  • Die runtergeladenen Pakete werden in /var/lib/apt/lists/ gespeichert
  • Ein grafisches Tool unter Kubuntu ist muon

Obsidian – Markdown your Power

Was ist das und warum ausgerechnet ich

Obsidian ist eine ziemlich intelligent gebaute Software rund um die Themen: Notizzettel, Knowledgebase, Wiki, Ideensammlung. Also alles was man so aufschreibt und sammelt, aber nie so genau weiß: soll ich das jetzt in meiner Textverarbeitung schreiben, oder als reine Textdatei, oder in meiner speziellen Software für z.B. Rezepte oder auf dem Smartphone oder nur auf dem Rechner, oder oder oder … einfach zu viele Frage, zu viele Möglichkeiten und die allermeisten dieser Möglichkeiten sind einfach zu begrenzt, weil „geht nur als APP“ , „Hat ein eigenes Dateiformat“, „kann nicht exportiert werden“, „kann nicht synchronisiert werden“, als dass es auf Dauer gut gehen würde.

Update 10.03.2022: Eine App für Android & iOS ist jetzt für VIPs in einer „public“ Beta.

Update 19.02.2021: Ich habe zu Obsidian ein Tutorial mit einer grundsätzlichen Einführung produziert. Weiter unten sind auch noch weitere Quellen hinzugefügt

Am einfachsten wäre eine Textdatei, denn die kann man unter Linux, Windows, Mac, Android, iOS oder wasweissichdennschon öffnen und bearbeiten. Aber es bleibt ja nicht nur bei einer Textdatei, sondern das summiert sich ja. Also hat man irgendwann eine Menge Textdateien.

Nächstes Problem: wenn man die Textdateien öffnet, sehen die schnöde aus. Oder sehr merkwürdig, weil man versucht mit Sonderzeichen irgendwelche Layouts zu kreieren, die auch nicht wirklich befriedigen. Fett, Kursiv und Überschriften wären echt hilfreich.

Dann kommen weitere Probleme: Wie finde ich bei vielen Textdateien das was ich suche? Wie sieht das irgendwann in Zukunft aus,wenn ich das System wechsle? Wie mache ich mich abhängig von einer Software? Was mache ich, wenn ich diese Software nicht mehr bekommen kann?

Auf all diese Fragen gibt es zwei Antworten: Obsidian und Markdown

Markdown

Fangen wir von hinten an. Markdown ist eine „Sprache“ bzw Programmiersprache zur Formatierung und Gliederung von Texten. Also Fett, Kursiv, Durchgestrichen, Überschriften, Tabellen, Aufzählungen und so weiter. Die Sprache ist so gehalten, dass man sie in einen normalen Text mit integrieren kann. Ein wenig wie HTML, nur einfacher und lesbarer.

Beispiele

  • Eine Überschrift würde man so schreiben # Kapitel 2
  • Eine untergeordnete Überschrift wäre dann ## Kapitel 2.1 und so weiter
  • Einen kursiven Text würde man *kursiv* schreiben, einen fett gedruckten Text würde man **fett** schreiben und fett+kursiv so ***fett kursiv***
  • Todos
    •  Einkaufen
    •  chillen und Pizza

Und von diesen Formatierungen gibt es noch richtig viel mehr https://www.markdownguide.org/basic-syntax/

Alles wirklich immer noch gut lesbar in einer normalen Textdatei. Aber schön? Nun, es gibt richtig viele Markdown Editoren für alle möglichen Betriebssysteme inklusive Smartphones. Diese stellen diese Formatierungen im Text gleich richtig dar und viele davon haben auch noch einen „Preview Modus“, in dem der Text ohne die Formatierungszeichen, aber mit dem gewünschten Layout dargestellt wird. Also in Schön.

Obsidian

Damit kommt Obsidian ins Spiel. Was ist Obsidian eigentlich genau?
Obsidian ist ein

  • Markdown Preview & Editor
  • Dateiverwaltung
  • Suchmaschine
  • Voll integrierte Markdown Suite mit zusätzlich integrierten Funktionen, die auch vollständig nur mit der Tastatur bedienbar ist, wenn man das möchte

Obsidian verwaltet einfach nur das was da ist.

Hat man also eine Struktur mit Unterverzeichnissen und den entsprechenden Dateien schon erstellt, dann „stülpt“ man Obsidian einfach nur darüber und fertig. Hat man so etwas noch nicht, dann startet man mit Obsidian einfach einen eigenen „Vault“.

Ein Vault ist so etwas wie eine Instanz oder Knowledge Datenbank. Praktisch gesehen ist das Vault das oberste Dateiverzeichnis, in dem man weitere Unterverzeichnisse und Dateien anlegt.

Man kann verschiedene Vaults anlegen und zwischen ihnen wechseln. Neue Markdown Dateien fügt man einfach per Import oder per Copy’n’Paste hinzu. Wenn man erst mal verstanden hat, was man damit eigentlich machen kann und vor allem wie uneingeschränkt über alle Systeme und sehr zukunftssicher, dann will man diese Art der Wissenssammlung nicht mehr missen.

Achja, als kleines Info-Schmankerl: Es gibt viele Anwendung, die als Input Markdown verwenden. So kann man auch aus seinen Texten schöne PDF Dateien erzeugen. Oder wenn man seine Sammlung über verschiedene Geräte synchronisieren möchte, kann man das Verzeichnis mit all den Unterverzeichnissen und Textdateien einfach mit z.B. einer Nextcloud automatisch synchronisieren lassen. Dadurch, dass es nur kleine Textdateien sind, geht die Synchronisation super schnell, auch wenn die Leitung extrem schmal ist. UND Ihr könnt Markdown Dateien auch direkt in der Nextcloud editieren. Es gibt dort nämlich auch einen Markdown Editor. Probiert es einfach aus!

Obsidian ist aktuell in der Version 0.6.4 0.7.3 0.11 1.0.0 für Linux, Windows und Mac hier https://obsidian.md frei und kostenlos runterladbar. Es sind weitere Features geplant, die die Eingabe und Verwaltung noch komfortabler machen soll, als sie jetzt schon ist.

Bei größeren Dokumenten kann das Inhaltsverzeichnis, das man sich auf der rechten Seiten einblenden lassen kann (Outline Headings) schon etwas ausufern. Ein ganz nützliches Community Plugin „Quiet Outline“ kann diese riesen Liste standardmäßig zusammen klappen, so dass das gezielte Navigieren wesentlich einfacher gemacht wird. Man kann dann zwar leider nicht mehr die Überschriften direkt verschieben, aber das macht man glücklicherweise nicht so häufig und ist immer noch direkt im Dokument per Cut’n’Paste machbar. Des weiteren habe ich sowieso das Einklappen (Folding) direkt im Dokument auf eine Tastenkombination Win+F gelegt, das die Organisation und Suche in großen Dokumenten auch nochmal erleichtert.

Weitere Quellen

  1. LibreOffice: Suchen&Ersetzen – Mit RegEx Hashtags markieren
  2. Obsidian – PDF Export mit TOC
  3. Markdown in Obsidian https://publish.obsidian.md/help/How+to/Basic+note+taking
  4. Markdown Wikipedia https://de.wikipedia.org/wiki/Markdown

Audiospuren aus Videodateien entfernen und hinzufügen – ffmpeg

Ich stand vor dem Problem, eine bearbeitete Audiodatei mit der ursprünglichen Audiospur einer Videodatei (mp4) auszutauschen. Da ich nur die Audiodatei verändert hatte, wollte ich nicht das Video neu kodieren und so Gefahr laufen, die Qualität zu verändern, oder unnötig die Videodatei zu vergrößern.

Im Prinzip ist es ganz einfach (unter Linux): ffmpeg

Was ist drin

Um den Inhalt einer Videodatei zu verändern, sollte erst geschaut werden, was da überhaupt drin ist. Das erledigt der Befehl:

ffprobe INPUTVIDEO.mp4

ffprobe ist ein Analyseproramm und bei ffmpeg standardmäßig mit dabei.

Entfernen

Das Entfernen einer oder mehrerer Audiospuren funktioniert mit folgendem Befehl

ffmpeg -i InputVideo.mp4 -map 0 -map -0:a:0 -codec copy OutputVideo_EINS.mp4
  • -map 0 wählt alle (Video/Audio) Spuren aus
  • -0:a:0 wählt aus allen Spuren die Audiospur Nummer 1 (Zählweise ab 0) aus
  • -codec copy definiert, dass keine Neukodierung stattfindet

Will man alle Audiospuren aus dem Video entfernen, so gilt abgekürzt

  • -0:a wählt alle Audiospuren aus

Zur Auswahl stehen nicht nur a (Audiospuren), sondern auch v (Videospuren), s (Sub-/Untertitel), d (Datenspuren).

Hinzufügen

Das Hinzufügen einer oder mehrerer Audiospuren (zum vorherigen Beispiel) funktioniert mit folgendem Befehl

ffmpeg -i OutputVideo_EINS.mp4 -i Audiospur.m4a -codec copy -shortest OutputVideo_ZWEI.mp4
  • -i steuert, was in die Datei aufgenommen werden soll. Hier 1 Video- und 1 Audiospur
  • -codec copy definiert, dass keine Neukodierung stattfindet
  • -shortest kürzt alles auf die Länge der Datei mit der kürzesten Dauer

Zweite Spur hinzufügen

Wenn eine zweite Spur hinzugefügt werden muss, dann sollte darauf geachtet werden, dass die zweite Spur genau gleich lang ist, wie die erste Spur!

ffmpeg -i INPUTVIDEO.mp4 -i INPUTAUDIO.aac -map 0 -map 1 -metadata:s:a:1 title="MEIN TITEL DER AUDIOSPUR" -codec copy OUTPUTVIDEO.mp4

Extrahieren

Das Extrahieren einer Audiospur im Originalformat funktioniert folgendermaßen

ffprobe Name_der_Video_Datei

Als Ausgabe erhält man eine lange Ausgabe und zum Schluss findet man so etwas in dieser Art

Input #0, matroska,webm, from 'MeinVideo.webm':
Metadata:
ENCODER : Lavf58.20.100
Duration: 03:59:10.04, start: -0.007000, bitrate: 2285 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 03:59:10.019000000
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 03:59:10.041000000

In diesem Falle handelt es sich bei Stream #0:1 Audio: opus um ein Ogg Vorbis Audio, das man in ein .ogg oder .oga abspeichern kann mit folgendem Befehl

ffmpeg -i MeinVideo.webm -map 0:a:0 -c copy MeinAudio.oga

In diesem Fall wird einfach die Audiodatei ohne ein neues konvertieren aus der Videodatei herauskopiert und liegt dann als MeinAudio.oga im Dateisystem.

Extrahieren und Konvertieren

Das Extrahieren und Konvertieren einer Audiospur in ein anderes Audioformat z.B. WAV geht sogar noch einfacher

ffmpeg -i MeinVideo.webm MeinAudio.wav

Bei komprimierten Audioformaten müssen natürlich noch ein paar mehr Parameter zur Steuerung der Qualität angegeben werden.