ffmpeg
ffmpeg bearbeitet und konvertiert Audio- und Videodateien
Beschreibung
Multimedia-Framework | |
Maintainer | FFmpeg-Projekt |
Betriebssystem | Plattformübergreifend |
Programmiersprache | C |
Lizenz | LGPL 2.1+/ GPL 2+ |
Logo |
Multimedia-Framework | |
Maintainer | FFmpeg-Projekt |
Betriebssystem | Plattformübergreifend |
Programmiersprache | C |
Lizenz | LGPL 2.1+/ GPL 2+ |
Logo |
Das FFmpeg-Projekt besteht aus einer Reihe von freien Computerprogrammen und Programmbibliotheken, die digitales Video- und Audiomaterial aufnehmen, konvertieren, senden (streamen), filtern und in verschiedene Containerformate verpacken können.
- Unter anderem enthält es mit libavcodec eine umfangreiche Sammlung von Audio- und Videocodecs.
- Rechtliche Betrachtung
- FFmpeg (bzw. libavcodec als Bestandteil von FFmpeg) enthält Implementierungen von mehr als 100 Codecs, von denen ein Teil von Patentinhabern angefochten werden könnte.
- In manchen Gesetzgebungen könnten, aufgrund von vagen Hinweisen, eventuell Patentansprüche gegen verschiedene Standards, die FFmpeg unterstützt, geltend gemacht werden.
- Weiterhin sind viele dieser Codecs unter Nutzungsbedingungen veröffentlicht worden, die Reverse Engineering untersagen; selbst zur Sicherstellung der Interoperabilität.
- Solche Bedingungen sind in manchen Ländern allerdings unwirksam, so etwa in Deutschland
Installation
# apt install ffmpeg
Anwendung
Audio
Quelle | Ziel | Befehl |
---|---|---|
wav | mp3 | ffmpeg -i audio.wav -acodec libmp3lame audio.mp3 |
wav | ogg | ffmpeg -i audio.wav -acodec libvorbis audio.ogg |
wav | aac | ffmpeg -i audio.wav -acodec libfaac audio.aac |
wav | ac3 | ffmpeg -i audio.wav -acodec ac3 audio.mp3 |
OGG | mp3 | ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3 |
OGG | wav | ffmpeg -i audio.ogg audio.wav |
OGG | aac | ffmpeg -i audio.ogg -acodec libfaac audio.aac |
OGG | ac3 | ffmpeg -i audio.ogg -acodec ac3 audio.ac3 |
AC3 | mp3 | ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3 |
AC3 | wav | ffmpeg -i audio.ac3 audio.wav |
AC3 | aac | ffmpeg -i audio.ac3 -acodec libfaac audio.aac |
AC3 | ogg | ffmpeg -i audio.ac3 -acodec libvorbis audio.ogg |
AAC | mp3 | ffmpeg -i audio.aac -acodec libmp3lame audio.mp3 |
AAC | wav | ffmpeg -i audio.aac audio.wav |
AAC | ac3 | ffmpeg -i audio.aac -acodec ac3 audio.ac3 |
AAC | ogg | ffmpeg -i audio.aac -libvorbis audio.ogg |
Video
Quelle | Ziel | Befehl |
---|---|---|
mp4 | 90 Grad nach rechts | ffmp4 -i input.mp4 -vf "transpose=1" -qscale 0 output.mp4 |
mp4 | 90 Grad nach links | ffmp4 -i input.mp4 -vf "transpose=2" -qscale 0 output.mp4 |
mp4 | 180 Grad | ffmp4 -i input.mp4 -vf "hflip,vflip" -qscale 0 output.mp4 |
Tonspuren entfernen
- Videostrom ohne Ton kopieren
ohne Neucodierung
$ ffmpeg -i [input file] -an -c:v copy [output file]
- Beispiel
$ ffmpeg -i input.mp4 -an -c:v copy output.mp4
Option | Beschreibung |
---|---|
-an | Tonspur ignorieren |
-c:v copy | nicht neu codieren |
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Technische Details
FFmpeg wird unter Linux und anderen unixähnlichen Systemen (Unixoiden) entwickelt und wurde auch auf andere Betriebssysteme und Plattformen portiert .
- Bekannte Programme, die FFmpeg verwenden, sind unter Unixoiden und Windows die Programme MPlayer, VLC, xine und HandBrake, unter Windows Mobile und Palm OS der TCPMP.
Komponenten
Kommandozeilenprogramme
- ffmpeg ist ein Kommandozeilenprogramm, um von einem Video-, Audio- oder Bildformat zu einem anderen zu konvertieren .
- Es unterstützt auch das Aufnehmen und Kodieren von einer TV-Karte in Echtzeit.
- ffplay ist ein einfacher Mediaplayer, welcher die SDL und die Ffmpeg-Bibliotheken benutzt.
- ffprobe ist ein Programm, welches Informationen aus Multimedia-Streams anzeigt .
- Beispielsweise kann es Audio- und Video-Containerformate und darin enthaltene Streams anzeigen.
Bibliotheken
- libavcodec enthält alle ffmpeg-Audio- und -Video-Encoder und -Decoder .
- Alle nativen Codecs wurden von Grund auf neu geschrieben, dazu zählt auch ein H.264-Decoder .
- Diese Bibliothek kann von anderen Programmen benutzt werden, um dann die Filme abzuspielen.
- libavformat (Lavf) enthält die Container-Parser und -Ersteller für alle herkömmlichen Audio- und Video-Containerformate (beispielsweise AVI, MOV, MKV, Ogg/Ogg Media etc.).
- libavutil enthält Hilfsfunktionen zur Unterstützung bei der Multimedia-Programierung .
- Diese sind bspw .
- Zufallszahlengeneratoren, Datenstrukturen oder mathematische Funktionen.
- libswscale ist eine Bibliothek zur Bildskalierung, sowie Farbraum- und Pixelformat-Konvertierungsoperationen.
- libswresample führt Audio-Abtastratenkonvertierung-, Rematrixing- und Sample-Format-Konvertierungsvorgänge durch.
- libavdevice bietet ein Framework zum Grabben und Rendern von gängigen Multimedia-Eingabe-/Ausgabegeräten .
- Es unterstützt bspw. Video4Linux2, VfW, DShow und ALSA.
- libavfilter bietet Mittel zum Verändern von decodiertem Audio und Video .
- Hierzu können Filter durch gerichtete Graphen verbunden werden.
Da FFmpeg auch Implementationen von Codecs enthält, auf die – besonders in den USA – Patentansprüche bestehen, kann die Benutzung dieser Formate in Ländern, die solche Ansprüche anerkennen, unter Umständen die Zahlung von Gebühren an Lizenzorganisationen (wie der MPEG LA) erfordern.
Des Weiteren entstammen dem FFmpeg-Projekt zwei neue Video-Codecs: Ein nur verlustfrei arbeitender Codec namens FFV1 und ein fast fertiggestellter Codec namens Snow, der auf Wavelet-Transformationen und einer intelligenten Variante der Bereichskodierung beruht.
In Version 4.4 liegt der Schwerpunkt in der Erweiterung der Unterstützung von AOMedia Video 1 (AV1), einem lizenzkostenfreien Videokompressionsverfahren.
Libav
Am 18. Januar 2011 wurde von mehreren FFmpeg-Entwicklern angekündigt, das FFmpeg-Projekt zu übernehmen.
- Begründet wurde dieser Schritt durch eine Unzufriedenheit mit dem bisherigen Chefentwickler Michael Niedermayer.
- Die Organisation der weiteren FFmpeg-Entwicklung sollte sich in Zukunft stärker an der des Linux-Kernel orientieren.
Nachdem die Übernahme des Projekts gescheitert war, spalteten sich die Entwickler am 13. März 2011 unter dem Namen Libav vom FFmpeg-Projekt ab.
- Die beiden Linux-Distributionen Debian und Ubuntu lieferten von da an standardmäßig Libav aus.
- Gleichzeitig wurde die Ausgabe des Programms ffmpeg unter Debian und Ubuntu mit dem Hinweis ergänzt, dass FFmpeg nicht mehr weiterentwickelt wird .
- Nachdem Anwender sich beschwert hatten, dass das nicht der Wahrheit entspricht, weil FFmpeg nach wie vor weiterentwickelt wird, wurde nun behauptet, ffmpeg sei überholt (deprecated) und es solle stattdessen avconv verwendet werden. Debian nahm daraufhin das FFmpeg-Paket wieder in seinen Quellen auf und bietet somit beide Bibliotheken an.
Im Juli 2015 gab das Debian-Projekt bekannt, wieder zur ursprünglichen FFmpeg-Version zurück zu wechseln.
- Als Gründe wurden vor allem die höhere Sicherheit, ein deutlich kürzerer Wartungszyklus sowie die deutlich höhere Anzahl an Code-Beiträgen (englisch „code contributions“) und Verantwortlichen (englisch „maintainer“) angegeben.
- Ubuntu folgte entsprechend, nahm mit Version 15.04 „Vivid“ ffmpeg wieder in die Quellen auf und entfernte mit Version 15.10 „Wily“ die Pakete des Libav-Projekts aus den Quellen.
Kurz nach der Ankündigung des Debian-Projektes, wieder zu FFmpeg zu wechseln, trat Michael Niedermayer als Leiter von FFmpeg zurück und begründete dies unter anderem mit der Hoffnung, damit ein erneutes Zusammenwachsen der beiden Projekte zu ermöglichen. 2018 wurde die letzte Version von Libav veröffentlicht und in der Folge die Entwicklung eingestellt.
Anhang
Siehe auch
Man-Pages
- ffmpeg(1)
Links
Projekt
Weblinks
- FFmpeg – offizielle Website
- Libav – offizielle Website
- FFmpeg DirectShow filter – ffdshow
- Grafische Benutzeroberfläche zu FFmpeg für Unix
- Grafische Benutzeroberfläche zu FFmpeg für MacOS
- Which is better: FFmpeg or GStreamer? Why?
Grafische Benutzeroberflächen zu FFmpeg
- Multimedia Xpert
- Quick Time Komponente für Mac OS auf Basis von FFmpeg
- FOBS – Java und C++ Wrapper zum Einbinden von ffmpeg in eigene Programme