Hochwertige Aufzeichnung von Vorträgen/ Verknüpfung durch Skripte

Der Befehl und das Script ToDo Bearbeiten

Der Software-Anteil der Lösung besteht im Wesentlichen aus einem mehrzeiligen ffmpeg-Befehl mit zahlreichen Optionen und Parametern. Das "Geheimnis" der Lösung steckt hauptsächlich in diesem Befehl, dessen Zusammenstellung viel Know How und zahlreiche Tests und (Fehl-) Versuche erfordert.

Die Bestandteile dieses Befehls sollen im Einzelnen erklärt werden und der lange Befehl aus einzelnen Komponenten aufgebaut werden, was

  • didaktisch geschickt ist,
  • die Flexibilität deutlich erhöht,
  • ein Mindestmaß an Übersicht ermöglicht,
  • die Erstellung einer kleinen Befehlskomponenten-Sammlung erlaubt,
  • die Fehleranfälligkeit verringert und
  • die (unvermeidliche) Fehlersuche erleichtert.

Die obigen beispielhaften Ausschnitte lassen erahnen, dass es von Vorteil ist, den ffmpeg-Bandwurm mit den Mitteln der Bash-Shell aus übersichtlichen Bestandteilen zusammenzubauen. Zartes Grundwissen über Shellprogrammierung wäre ab jetzt hilfreich, ist aber nicht unbedingt erforderlich. Die Komponenten des ffmpeg-Befehls werden in Shell-Variable gepackt und ffmpeg dann mit dem Inhalt all der benötigten Variableninhalte aufgerufen. Erklärendes aber sonst sinnloses Beispiel:

#! /bin/bash
komponente1='-a bcd'
komponente2='-w xvz'

ffmpeg $komponente1 $komponente2

Obiges Script erzeugt bei Aufruf diesen Befehl:

ffmpeg -a bcd -w xvz

Vorhandenes Script zur erleichterten Bedienung Bearbeiten

Ein Versuch, die leichte Bedienung der Aufnahme zu gewährleisten, liegt auf github unter:

https://github.com/skaiser89/msctools.git

Das Skript kann über die Kommandozeile oder über eine "grafische" Oberfläche (bash-builtin: dialog) bedient werden. Leider lassen sich auch hier die Argumente beim Aufruf nicht vermeiden, allerdings sollten diese selbsterklärend sein:

Parameter Erklärung mögliche Werte Standard-Wert
--workspace /pfad/zum/arbeitsordner Pfadangabe zum Ordner, in dem alle zur Aufnahme benötigeten Dateien gespeichert werden. Pfadangaben
--record Teilt dem Skript mit, dass eine Aufnahme gestartet werden soll.
--background-image /pfad/zu/einer/bilddatei.PNG Pfad zu einem Hintergrundbild im .png-Format, falls dies das gewählte Aufnahme-Layout erfordert. Pfadangabn
--video-streams [anzahl] Wieviele Capture-Karten für die Aufnahme notwendig sind. 1, 2, 3, ... Anzahl der verbauten Karten
--video-codec Angabe eines spezifischen Video-Codecs. libx264, libxvid, flv, ... libx264
--audio-codec Angabe eines spezifischen Audio-Codecs. ac3, libmp3lame, libopus, ... ac3
--output-file Name der resultierenden Videodatei. Dateiname ohne Dateiendung (.*) Zeitstempel
--layout-preset Festlegen der Video-Stream-Andordnung anhand von Vorlagen. sidebyside1080bl, picinpic1080tl, blank1080 sidebyside1080bl

Die fett markierten Parameter haben keine Standardwerte und sollten immer mitgegeben werden. Das Hintergrundbild (--background-image /pfad/.../bild.png) ist nur bei Video-Stream-Anordnungen notwendig, bei denen die Video-Streams nicht die gesamte Video-Fläche bedecken – wie beim Bild-neben-Bild-Layout (sidebyside1080bl).