{"id":5925,"date":"2023-09-17T03:38:16","date_gmt":"2023-09-17T01:38:16","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=5925"},"modified":"2023-09-17T03:38:19","modified_gmt":"2023-09-17T01:38:19","slug":"ffmpeg-videobearbeitung-am-linux-terminal","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2023\/09\/17\/ffmpeg-videobearbeitung-am-linux-terminal\/","title":{"rendered":"ffmpeg &#8211; Videobearbeitung am Linux-Terminal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Videos am\u00a0Terminal\u00a0bearbeiten mag vielleicht abwegig klingen. Aber mit der Software\u00a0<strong>ffmpeg<\/strong>\u00a0unter Linux ist so einiges m\u00f6glich, meist funktioniert die Arbeit am Terminal um einiges schneller. Dann gibt es auch am Terminal mit ffmpeg oft Dinge, die sich in so mancher grafischen Software gar nicht als Option anbieten. Nun, in diesem Beitrag, der Linux Bibel \u00d6sterreich, wollen wir uns die wichtigsten M\u00f6glichkeiten dieser Software etwas n\u00e4her ansehen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ffmpeg installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter den meisten Linux-Distributionen, wie auch unter Debian installieren Sie diese Software wie \u00fcblich ganz einfach \u00fcber die\u00a0Paket-Verwaltung\u00a0durch das Paket &#8222;<strong>ffmpeg<\/strong>&#8222;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ffmpeg nutzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die grundlegende Syntax der Software lautet nun wie folgt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg Globale_Optionen Eingabe-Optionen -i Eingabe_Datei Ausgabe_Optionen Ausgabe_Datei<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies ist zu Beginn etwas viel, aber warten Sie einfach einmal ab.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Informationen \u00fcber die Datei anzeigen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wollen wir uns zu Beginn einfach einmal Informationen \u00fcber eine beliebige Datei ansehen &#8211; im \u00dcbrigen, ffmpeg kann auch mit reinen Audio-Dateien umgehen. In meinem Beispiel nennt sich die Datei ganz einfach &#8222;<strong>Unbenannt.mp4<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -hide_banner<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1024x576.jpg\" alt=\"\" class=\"wp-image-5926\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-150x84.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die Option &#8222;<strong>-hide_banner<\/strong>&#8220; verzichtet ganz einfach auf unn\u00fctze Ausgaben, wie etwa die Version von ffmpeg und mehr. Dasselbe funktioniert nat\u00fcrlich auch mit Audio-Dateien, etwa mit der Datei &#8222;<strong>Joyful.mp3<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Joyful.mp3 -hide_banner<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-1024x576.jpg\" alt=\"\" class=\"wp-image-5927\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-150x84.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-1.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir erhalten so alle m\u00f6glichen Informationen, wie Media-Container, Media-Codec, Abtastrate, Qualit\u00e4t, Metadaten und vielem mehr.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formate anzeigen, mit denen ffmpeg umgehen kann<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ffmpeg kann mit unz\u00e4hligen Audio- und Video-Codecs umgehen &#8211; wahrscheinlich mit mehreren Formaten als jede andere Software. Mit folgendem Befehl lassen wir uns die m\u00f6glichen Formate anzeigen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -formats -hide_banner<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-1024x576.jpg\" alt=\"\" class=\"wp-image-5928\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-150x84.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/ffmpeg-2.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sehen Sie sich den Scrollbalken an und Sie werden verstehen, was bei dieser Software wirklich abgeht.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Videos konvertieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt wollen wir uns ansehen, wie wir Video-Dateien oder Audio-Dateien ohne Umst\u00e4nde konvertieren. Nehmen wir einmal an, ich will die Datei &#8222;<strong>Unbenannt.mp4<\/strong>&#8220; in das Format &#8222;<strong>AVI<\/strong>&#8220; konvertieren und den Dateinamen beibehalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 Unbenannt.avi<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dasselbe mit der Audio-Datei &#8222;<strong>Joyful.mp3<\/strong>&#8220; in das Format &#8222;<strong>OGG<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Joyful.mp3 Joyful.ogg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hierbei haben wir jedoch noch ein Problem, ffmpeg reduziert ohne weitere Option die Qualit\u00e4t der Ausgabe-Datei &#8211; dies verhindern wir mit der Option &#8222;<strong><code>-qscale 0<\/code><\/strong>&#8220; &#8211; also:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -qscale 0 Unbenannt.avi\nffmpeg -i Joyful.mp3 -qscale 0 Joyful.ogg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die in diesen Beispielen angegebenen Video-Formate sind nat\u00fcrlich nur Container, die unterschiedliche Codecs beinhalten k\u00f6nnen. Den Video-Codec geben Sie mit der Option &#8222;<strong><code>-c:v format<\/code><\/strong>&#8220; an, den Audio-Codec mit &#8222;<strong><code>-c:a format<\/code><\/strong>&#8222;. Mit der Option &#8222;<strong><code>copy<\/code><\/strong>&#8220; geben Sie das Format an, das in den neuen Container \u00fcbernommen werden soll. In folgenden Beispiel wollen wir das Video-Format beibehalten, aber als Audio-Format den Codec &#8222;<strong><code>libvorbis<\/code><\/strong>&#8220; nutzen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -c:v copy -c:a libvorbis -qscale 0 Unbenannt.avi<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Die Audio-Datei aus einem Video extrahieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wir k\u00f6nnen nat\u00fcrlich auch die Audio-Datei aus einem Video extrahieren, so erstellen wir mit ffmpeg aus einem Video eine Audio-Datei. Ich will jetzt beispielsweise aus dem Video &#8222;<strong>Unbenannt.mp4<\/strong>&#8220; die Audio-Datei in die Datei &#8222;<strong>Unbenannt.mp3<\/strong>&#8220; schreiben. Hierzu nutzen wir die Option &#8222;<strong><code>-vn<\/code><\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -vn -qscale 0 Unbenannt.mp3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Auch die Bitrate k\u00f6nnen wir angeben &#8222;<em>96k, 128k, 192k, 256k, 320k<\/em>&#8220; &#8211; letztere ist nat\u00fcrlich die h\u00f6chste einer MP3- oder OGG-Datei. Hierzu nutzen wir zus\u00e4tzlich die Option &#8222;<strong><code>-ab<\/code><\/strong>&#8220; &#8211; wie oben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -vn -ab 320k -qscale 0 Unbenannt.mp3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wir k\u00f6nnen beim Konvertieren aber auch noch andere Optionen nutzen: f\u00fcr die Audio-Frequenz nutzen wir die Option &#8222;<strong><code>-ar frequenz<\/code><\/strong>&#8220; (<em>22050, 441000, 48000<\/em>), f\u00fcr die Anzahl der Audio-Kan\u00e4le die Option &#8222;<strong><code>-ac kan\u00e4le<\/code><\/strong>&#8220; (<em>&#8230;<\/em>) &#8211; etwa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -vn -ar 44100 -ac 2 -ab 320k -qscale 0 Unbenannt.mp3<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Das Video stumm schalten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Umgekehrt zum Extrahieren der Audio-Datei k\u00f6nnen wir das Video auch stumm schalten, so gesehen exportieren wir das Video ohne Ton &#8211; dazu wird wieder die Option &#8222;<strong><code>-an<\/code><\/strong>&#8220; genutzt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -an -qscale 0 Neuer_Name.mp4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Die Aufl\u00f6sung des Videos und das Seitenverh\u00e4ltnis anpassen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt wollen wir einmal die Aufl\u00f6sung des Videos anpassen, dazu wird die Option &#8222;<strong><code>-s aufl\u00f6sung<\/code><\/strong>&#8220; genutzt. In folgenden Beispiel soll schlussendlich die Aufl\u00f6sung &#8222;<strong>1024&#215;576<\/strong>&#8220; genutzt werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -s 1024x576 -qscale 0 Neuer_Name.mp4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit der Option &#8222;<strong><code>-aspect seitenverh\u00e4ltnis<\/code><\/strong>&#8220; l\u00e4sst sich wieder das Seitenverh\u00e4ltnis anpassen, in folgenden Beispiel wollen wir als Ergebnis &#8222;<strong>16:9<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -aspect 16:9 -qscale 0 Neuer_Name.mp4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Videos drehen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Videos lassen sich nat\u00fcrlich auch drehen. Gr\u00fcnde k\u00f6nnen etwa sein, weil die Kamera gedreht wurde &#8211; die Kamera jedoch nicht mitgespielt hat und das Video nun auf der Seite liegt oder komplett auf dem Kopf steht. Erster Befehl dreht das Video um &#8222;<strong>90\u00b0<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -vf \"rotate=90*PI\/180\" -qscale Neu.mp4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und dieser Befehl um &#8222;<strong>180\u00b0<\/strong>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i Unbenannt.mp4 -vf \"rotate=PI\" -qscale Neu.mp4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit ffmpeg ist noch um einiges mehr m\u00f6glich, hierzu nutzen Sie entweder die Manpage am Terminal mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>man ffmpeg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder f\u00fcr weitere Ideen die Dokumentation auf der Homepage&nbsp;<a href=\"https:\/\/ffmpeg.org\/ffmpeg.html\" target=\"_blank\" rel=\"noreferrer noopener\">ffmpeg<\/a>.<\/p>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"5925\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"5925\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Videos am\u00a0Terminal\u00a0bearbeiten mag vielleicht abwegig klingen. Aber mit der Software\u00a0ffmpeg\u00a0unter Linux ist so einiges m\u00f6glich, meist funktioniert die Arbeit am Terminal um einiges schneller. Dann gibt es auch am Terminal mit ffmpeg oft Dinge, die sich in so mancher grafischen Software gar nicht als Option anbieten. Nun, in diesem Beitrag, der Linux Bibel \u00d6sterreich, wollen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5927,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,612],"tags":[18,613],"class_list":["post-5925","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-multimedia","category-videobearbeitung","tag-multimedia","tag-videobearbeitung"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/5925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=5925"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/5925\/revisions"}],"predecessor-version":[{"id":5929,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/5925\/revisions\/5929"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/5927"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=5925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=5925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=5925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}