{"id":1396,"date":"2011-02-21T18:52:43","date_gmt":"2011-02-21T17:52:43","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=1396"},"modified":"2020-03-22T02:32:07","modified_gmt":"2020-03-22T01:32:07","slug":"bash-magie-und-ein-paar-for-schleifen","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2011\/02\/21\/bash-magie-und-ein-paar-for-schleifen\/","title":{"rendered":"Bash-Magie und ein paar For-Schleifen"},"content":{"rendered":"<p>Ich stand k\u00fcrzlich 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.<br \/>\nUm nicht jede Datei einzeln umwandeln zu m\u00fcssen, gibt es unter Linux eine schnelle und bequeme M\u00f6glichkeit - die bash. <a href=\"https:\/\/www.gambaru.de\/blog\/?p=1138\">Grml Fans<\/a> w\u00fcrden nat\u00fcrlich nach der zsh schreien. \ud83d\ude09<br \/>\n<strong>Mehrere Videos mit <a href=\"http:\/\/www.ffmpeg.org\/\">ffmpeg<\/a> von WMV- in das MKV-Containerformat mit Theora und Vorbis konvertieren<\/strong><\/p>\n<pre class=\"brush:shell\">for i in *.wmv; do ffmpeg -i \"$i\" -vcodec libtheora -acodec libvorbis \"${i%.*}\".mkv; done<\/pre>\n<p><strong>Mehrere Videos mit <a href=\"http:\/\/www.v2v.cc\/~j\/ffmpeg2theora\/\">ffmpeg2theora<\/a> von Mov- in das Ogv-Containerformat mit Theora und Vorbis konvertieren, Abtastrate 32000 Hz, 64 kb\/s Audiobitrate<\/strong><\/p>\n<pre class=\"brush:shell\">for i in *.mov; do ffmpeg2theora -H 32000 -A 64 \"$i\"; done<\/pre>\n<p>Das Schema ist immer das Gleiche. Eine for Schleife durchl\u00e4uft alle Dateien in einem Ordner, in diesem Fall mit den Endungen .wmv oder .mov. Dabei wird dann entweder das Programm ffmpeg oder ffmpeg2theora ausgef\u00fchrt und der Dateiname \"$i\" \u00fcbergeben. Die Anf\u00fchrungsstriche sind bei Sonderzeichen sinnvoll.<br \/>\nBei ffmpeg wird duch die Konstruktion <em>\"${i%.*}\".mkv<\/em>, die Dateiendung .wmv durch .mkv substituiert. Bei ffmpeg2theora ist das nicht n\u00f6tig.<br \/>\nBei 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.<br \/>\nPrinzipiell muss man bei schon stark komprimierten Dateien damit rechnen, dass bei einer weiteren Umwandlung die Qualit\u00e4tsverluste zunehmen. Am besten ist es, immer mit einer nur gering komprimierten DV-Datei zu arbeiten.<br \/>\nZu den vielf\u00e4ltigen M\u00f6glichkeiten der Konvertierung sollte man sich die Handbuchseite der Programme n\u00e4her anschauen. Die Option -v 7 sorgt z.B. daf\u00fcr, dass die Qualit\u00e4t der Videowiedergabe besser wird, die Dateigr\u00f6\u00dfe aber ungef\u00e4hr verdoppelt wird. Die Standardeinstellung ist -v 5. Es gibt auch bequeme Voreinstellungen bei ffmpeg2theora, z.B. die Option <strong>-p pro<\/strong>.<\/p>\n<p><strong>Zu guter Letzt hier noch eine schnelle M\u00f6glichkeit um viele TGA-Bilder in PNG zu konvertieren<\/strong>, f\u00fcr alle, die vielleicht noch ein paar alte World-of-Warcraft-Screenshots auf der Festplatte haben. \ud83d\ude09<br \/>\nDas Programm <em>convert<\/em> befindet sich im <a href=\"http:\/\/www.imagemagick.org\">ImageMagick<\/a> Paket jeder Linuxdistribution.<\/p>\n<pre class=\"brush:shell\">for i in *.tga; do convert \"$i\" \"${i%.*}\".png; done<\/pre>\n<p>Ein einfach zu bedienendes GUI f\u00fcr ffmpeg existiert auch und nennt sich <a href=\"http:\/\/winff.org\">WinFF.<\/a><\/p>\n<p><a href=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/02\/20110221_WinFF_Dual_Core_Ubuntu1-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-1404 size-medium\" title=\"20110221_WinFF_Dual_Core_Ubuntu\" src=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/02\/20110221_WinFF_Dual_Core_Ubuntu1-1-300x222.png\" alt=\"\" width=\"300\" height=\"222\" srcset=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/02\/20110221_WinFF_Dual_Core_Ubuntu1-1-300x222.png 300w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/02\/20110221_WinFF_Dual_Core_Ubuntu1-1.png 540w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nViel Spass beim Umwandeln in freie Formate. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich stand k\u00fcrzlich 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\u00fcssen, gibt es unter Linux eine schnelle und bequeme M\u00f6glichkeit &#8211; die bash. Grml Fans w\u00fcrden nat\u00fcrlich nach &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2011\/02\/21\/bash-magie-und-ein-paar-for-schleifen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eBash-Magie und ein paar For-Schleifen\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[30,53,202],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/1396"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=1396"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/1396\/revisions"}],"predecessor-version":[{"id":11197,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/1396\/revisions\/11197"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=1396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=1396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=1396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}