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