Hilfe:Video- und Audiobearbeitung in der Kommandozeile: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „{{Bildwegweiser | Titel = Hilfe<br/>Video- Audiobe-<br/>arbeitung | File:SMPlayer icon.png | Größe= 35px}} {{Ombox | text = Diese klein…“) |
K (Andreas Plank verschob die Seite Hilfe:Video und Audiobearbeitung in der Kommandozeile nach Hilfe:Video- und Audiobearbeitung in der Kommandozeile, ohne dabei eine Weiterleitung anzulegen: Bindestrich typo) |
(kein Unterschied)
|
Version vom 21. August 2018, 09:42 Uhr
Diese kleine Anleitung beschreibt wie man Video- oder Audiodateien erzeugen kann, um diese im Wiki als Ogg-Vorbis (Audio)/Ogg-Theora (Video) Dateien zu benutzen. Einige Beispiele zur Verbesserung der Mediendateien werden beschrieben. |
Kommandozeilenprogramme sind sicher nicht jedermanns Geschmack und oft für's erste schwer zu bedienen. Jedoch haben diese Programme den Vorteil, daß sie große Datenmengen sehr viel zügiger bearbeiten als ein Programm mit zusätzlich grafischer Oberfläche. Jedes Programm hat seine Vor- und Nachteile. Das Kommandozeilenprogramm ffmpeg
ist solch ein kleiner Rechenknecht mit sehr vielen Möglichkeiten, Mediendateien von einem Format in ein anderes zu übertragen oder einfache Verarbeitungsschritte vorzunehmen. Dazu zählen konvertieren, schneiden oder das extrahieren von Standbildern bzw. einzelnen Video-Frames. Viele Programme mit Grafischer Benutzeroberfläche bedienen sich ebenfalls ffmepg
(siehe die Wikipedia für weitere Informationen).
Folgende Kommandozeilen-Beispiele gelten für Linux, jedoch sollten diese auch ähnlich unter Windows funktionieren, indem man ffmpeg.exe
statt ffmpeg
ausführen läßt. Ein einfacher Aufruf ist
ffmpeg -i OriginalDatei.mov VerarbeiteteDatei.ogg
Dabei stellt ffmpeg
anhand der angegebenen Dateieindungen automatisch fest, was in welches Format wie konvertiert werden muß. Will man die automatische Bearbeitung abändern, muß man entsprechend zusätzliche Argumente mit eingeben. Unter Linux ist alles im Handbuch, dem sogenannten Manual beschrieben (man ffmpeg
in die Konsole tippen + Enter, zurück mit q).
Video Konvertieren: mov (Quicktime) → ogv (Ogg-Theora)
Anzeigen anwendbarer Kodierungsformate:
ffmpeg -formats # File formats: # D. = Demuxing supported # .E = Muxing supported # -- # D 3dostr 3DO STR # E 3g2 3GP2 (3GPP2 file format) # E 3gp 3GP (3GPP file format) # D 4xm 4X Technologies # E a64 a64 - video for Commodore 64 # D aa Audible AA format files # …
###################
# eine einzelne Datei
dateiName="FSCN1666"
###################
# Info über die Datei
ffmpeg -i ${dateiName}.MOV
# Duration: 00:00:11.01, start: 0.000000, bitrate: 9832 kb/s
# Stream #0.0(eng): Video: h264, yuvj420p, 1280x720 [PAR 1:1 DAR 16:9], 9509 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc
# Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
# MOV → OGV (Video)
ffmpeg -i ${dateiName}.MOV ${dateiName}.ogv
# MOV → OGG (Audio)
ffmpeg -i ${dateiName}.MOV -vn ${dateiName}.ogg # -vn ohne Video
###################
# Das ganze für einen
# gesamten Ordner mittels
# for-Schleife inklusive
# neuer Metadaten
###################
for dateiName in *.MOV; do
# ${dateiName%.*} entfernt die Dateieindung
echo "Konvertiere ${dateiName%.*}.MOV nach ${dateiName%.*}.ogv ..."
# Extrahiere das modified date, stat --format Datei.mov ergibt:
# 2011-07-16 11:17:24.000000000 +0200
# ... somit ist alles nach dem ersten Leerzeichen nicht benötigte
# Information, die mit dem sed-Programm aus dieser Zeichenkette
# entfernt werden kann: ersetze 'Leerzeichen+alles-mögliche-mehrfach' (.\+) mit ''
datum=`stat --format=%y "${dateiNamePfad}.MOV" | sed "s/ .\+$//"`
ffmpeg -i "${dateiName%.*}.MOV" \
-metadata title="Titelei" \
-metadata author="Mein Name" \
-metadata date="${datum}" \
-metadata genre="Kategorie, Genre" \
-metadata license="CC-by-sa" \
"${dateiName%.*}.ogv"
done
Einzelnes Bild extrahieren
#!/bin/bash
# Unter Linux: Pfad + Dateiname in Variable speichern
dateiNamePfad="/Pfad/zur/Filmdatei"
# Bild extrahieren
ffmpeg -i "${dateiNamePfad}.MOV" -y -f image2 "${dateiNamePfad}.jpg"
# -i → input
# -y → yes als Antwort für alle Fragen des Programms, z.B. überschreiben
# -f → Format der Ausgabe
# Bild extrahieren aber 20 Sekunden versetzt
# ffmpeg -i "${dateiNamePfad}.MOV" -ss 0:0:20 -y -f image2 "${dateiNamePfad}.jpg"
# -ss 0:0:20 → versetzte Anfang um 20 Sekunden
Video drehen/spiegeln
Mit ffmpeg … -vf "transpose=…" …
kann man einfache Operationen durchführen wie drehen, und Spiegeln. Will man mehrere Änderungen vornehmen, so gibt man ffmpeg … -vf "aktion1, aktion2, aktion3" …
an:
Metadaten übernehmen
#!/bin/bash
# Metadaten übernehmen und ?überschreinben
ffmpeg -i "${dateiName}.MOV" \
-map_meta_data "${dateiName}.ogv" \
-metadata title="anderer Titel" \
"${dateiName}.ogv"
Audiobearbeitung
audio2flac, audio2wav - Skripte
Zum Bearbeiten von Audiodateien ist es günstig in einem verlustfreien Format weiterzuarbeiten, damit die Qualität nicht reduziert wird, man kann flac
oder wav
verwenden.
- Audio nach *
.flac
- Speichere folgende BASH-Kommandos als „audio2flac.sh“ ab und setze deren Dateiberechtigung auf „ausführbar“
#!/bin/bash
# require: ffmpeg
# Aufnahmedatei beispielsweise "MDR-Figaro_Hörspiel_Sonntag_2015-03-15_0704.mp3"
cd "`pwd`"
benutzung="###################################
# Benutzung:
# "`basename "$0" `" \"/Pfad/MDR-Figaro_Hörspiel_Sonntag_2015-03-15_0704.mp3\"
###################################"
orginal_datei=$1;
if [[ -z "$orginal_datei" ]] ; then
echo "# Datei fehlt (Stop) " ;
echo "$benutzung" ;
exit 1
fi
if ! [[ -e "$orginal_datei" ]] ; then
echo "# Datei unauffindbar „$orginal_datei“ (Stop) " ;
echo "$benutzung" ;
exit 1
fi
datei_erweiterung_orginal=${orginal_datei##*.}
ffmpeg -i "$orginal_datei" -map_metadata 0 "${orginal_datei%.*}.flac"
- Audio nach *
.wav
- Speichere folgende BASH-Kommandos als „audio2wav.sh“ ab und setze deren Dateiberechtigung auf „ausführbar“
#!/bin/bash
# require: ffmpeg
# Aufnahmedatei beispielsweise "MDR-Figaro_Hörspiel_Sonntag_2015-03-15_0704.mp3"
cd "`pwd`"
benutzung="###################################
# Benutzung:
# "`basename "$0" `" \"/Pfad/MDR-Figaro_Hörspiel_Sonntag_2015-03-15_0704.mp3\"
###################################"
orginal_datei=$1;
if [[ -z "$orginal_datei" ]] ; then
echo "# Datei fehlt (Stop) " ;
echo "$benutzung" ;
exit 1
fi
if ! [[ -e "$orginal_datei" ]] ; then
echo "# Datei unauffindbar „$orginal_datei“ (Stop) " ;
echo "$benutzung" ;
exit 1
fi
datei_erweiterung_orginal=${orginal_datei##*.}
ffmpeg -i "$orginal_datei" -map_metadata 0 "${orginal_datei%.*}.wav"
Weiterführende Literatur
Chris Hermansen. 2015. „Why I Choose FLAC for Audio“. 9. November 2015. https://opensource.com/life/15/11/audio-format-linux-flac-ogg.