Bash-Magie und ein paar For-Schleifen

Ich stand kürzlich vor der Aufgabe mehrere DV-, WMV- und Mov-Videodateien in ein freies Format umwandeln zu wollen. Dazu wollte ich unbedingt Theora als Videocodec und Vorbis als Audiocodec verwenden.
Um nicht jede Datei einzeln umwandeln zu müssen, gibt es unter Linux eine schnelle und bequeme Möglichkeit - die bash. Grml Fans würden natürlich nach der zsh schreien. 😉
Mehrere Videos mit ffmpeg von WMV- in das MKV-Containerformat mit Theora und Vorbis konvertieren

for i in *.wmv; do ffmpeg -i "$i" -vcodec libtheora -acodec libvorbis "${i%.*}".mkv; done

Mehrere Videos mit ffmpeg2theora von Mov- in das Ogv-Containerformat mit Theora und Vorbis konvertieren, Abtastrate 32000 Hz, 64 kb/s Audiobitrate

for i in *.mov; do ffmpeg2theora -H 32000 -A 64 "$i"; done

Das Schema ist immer das Gleiche. Eine for Schleife durchläuft alle Dateien in einem Ordner, in diesem Fall mit den Endungen .wmv oder .mov. Dabei wird dann entweder das Programm ffmpeg oder ffmpeg2theora ausgeführt und der Dateiname "$i" übergeben. Die Anführungsstriche sind bei Sonderzeichen sinnvoll.
Bei ffmpeg wird duch die Konstruktion "${i%.*}".mkv, die Dateiendung .wmv durch .mkv substituiert. Bei ffmpeg2theora ist das nicht nötig.
Bei beiden Programmen gibt es sehr viele Optionen, um den Output zu beeinflussen. Beide scheinen auch unterschiedlich effizient bei der Umwandlung in das freie Format Theora zu sein.
Prinzipiell muss man bei schon stark komprimierten Dateien damit rechnen, dass bei einer weiteren Umwandlung die Qualitätsverluste zunehmen. Am besten ist es, immer mit einer nur gering komprimierten DV-Datei zu arbeiten.
Zu den vielfältigen Möglichkeiten der Konvertierung sollte man sich die Handbuchseite der Programme näher anschauen. Die Option -v 7 sorgt z.B. dafür, dass die Qualität der Videowiedergabe besser wird, die Dateigröße aber ungefähr verdoppelt wird. Die Standardeinstellung ist -v 5. Es gibt auch bequeme Voreinstellungen bei ffmpeg2theora, z.B. die Option -p pro.

Zu guter Letzt hier noch eine schnelle Möglichkeit um viele TGA-Bilder in PNG zu konvertieren, für alle, die vielleicht noch ein paar alte World-of-Warcraft-Screenshots auf der Festplatte haben. 😉
Das Programm convert befindet sich im ImageMagick Paket jeder Linuxdistribution.

for i in *.tga; do convert "$i" "${i%.*}".png; done

Ein einfach zu bedienendes GUI für ffmpeg existiert auch und nennt sich WinFF.


Viel Spass beim Umwandeln in freie Formate. 🙂

2 Replies to “Bash-Magie und ein paar For-Schleifen”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.