FFmpeg ist ein freies Multimedia-Softwareprojekt. Es bietet eine Reihe freier Computerprogramme 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.[5][6]

FFmpeg

Basisdaten

Hauptentwickler FFmpeg-Projekt
Entwickler Fabrice Bellard
Erscheinungsjahr 20. Dezember 2000[1]
Aktuelle Version 7.1[2]
(30. September 2024)
Betriebssystem Plattformübergreifend
Programmier­sprache C[3]
Kategorie Multimedia-Framework
Lizenz LGPL 2.1+/ GPL 2+[4]
deutschsprachig nein
ffmpeg.org

Technische Details

Bearbeiten
 
Abhängigkeiten

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.

Das Projekt besteht aus mehreren Komponenten:

Kommandozeilenprogramme

Bearbeiten
  • ffmpeg ist ein mächtiges Kommandozeilenprogramm, das Video-, Audio- oder Bildformate in vielfältiger Weise bearbeiten kann und eine große Anzahl von Codecs beherrscht.[7] Neben der reinen Umkodierung stehen zahlreiche Filter zur Bearbeitung von Medienstreams bereit. Einzelne Streams können ohne erneutes Kodieren aus Containern extrahiert, entfernt oder zu ihnen hinzugefügt werden. Es unterstützt auch das Aufnehmen und Kodieren von einer TV-Karte in Echtzeit.
  • ffplay ist ein einfacher Mediaplayer, der die SDL und die FFmpeg-Bibliotheken benutzt.
  • ffprobe ist ein Programm, das Informationen aus Multimedia-Streams anzeigt wie Audio- oder Video-Containerformate und darin enthaltene Streams.

Bibliotheken

Bearbeiten
  • 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 steht anderen Programmen zur Wiedergabe oder Erzeugung von Audio- und Videostreams zur Verfügung.
  • libavformat (Lavf) enthält die Container-Parser und -Ersteller aller herkömmlichen Audio- und Video-Containerformate wie AVI, MOV, MKV oder Ogg/Ogg Media.
  • libavutil enthält Hilfsfunktionen zur Multimedia-Programmierung, 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 gängiger Multimedia-Eingabe-/Ausgabegeräte, bspw. Video4Linux2, VfW, DShow oder ALSA.
  • libavfilter bietet Mittel zum Verändern von decodiertem Audio und Video. Hierzu können Filter durch gerichtete Graphen verbunden werden.

Manche FFmpeg-Formate enthalten Codecs, die insbesondere in den USA patentiert sind. Deren Nutzung kann in Ländern, die Ansprüche daraus anerkennen, unter Umständen die Zahlung von Gebühren an Lizenzorganisationen wie der MPEG LA erfordern.[4]

Dem FFmpeg-Projekt entstammen auch zwei neue Video-Codecs: der nur verlustfrei arbeitende FFV1 und der fast fertiggestellte 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),[8] einem lizenzkostenfreien Videokompressionsverfahren.

 
Warnung, dass FFmpeg bald nicht mehr unterstützt wird. (Ubuntu 12.04)

Am 18. Januar 2011 wurde von mehreren FFmpeg-Entwicklern angekündigt, das FFmpeg-Projekt zu übernehmen.[9] Begründet wurde dieser Schritt durch eine Unzufriedenheit mit dem bisherigen Chefentwickler Michael Niedermayer.[10] 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.[11] 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.[12] Debian nahm daraufhin das FFmpeg-Paket wieder in seinen Quellen auf und bietet somit beide Bibliotheken an.[13]

2015 kehrte das Debian-Projekt wieder zur ursprünglichen FFmpeg-Version zurück.[14] 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.[15] 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.[16] 2018 wurde die letzte Version von Libav veröffentlicht und danach die Entwicklung eingestellt.[17]

Rechtliche Betrachtung der Codecsammlung

Bearbeiten

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.“

FFmpeg Website[4]

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 (§§ 69g Abs. 2, 69e UrhG).

Logo und Name

Bearbeiten

Das Logo von FFmpeg stellt ein Zickzack-Abtastmuster dar, das bei MPEG-Codecs die Daten für die Entropiekodierung liefert. Das Logo wurde von Libav übernommen, als das Projekt abgespalten wurde. Das FF in FFmpeg bedeutet fast forward, schneller Vorlauf bei Tonbandgeräten.

Ähnliche Software

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Initial revision.
  2. FFmpeg 7.1 "Péter". 30. September 2024 (abgerufen am 30. September 2024).
  3. Black Duck Open Hub Project Summary – FFmpeg. In: openhub.net. Open Hub, abgerufen am 25. April 2024 (englisch).
  4. FFmpeg Filters Documentation. In: ffmpeg.org. Abgerufen am 25. April 2024 (englisch).
  5. About FFmpeg. In: ffmpeg.org. Abgerufen am 25. April 2024 (englisch).
  6. Auflistung auf ffmpeg.org, abgerufen am 7. Mai 2024
  7. Michael Larabel: FFmpeg 4.4 Released With AV1 VA-API Decoder, SVT-AV1 Encoding. In: phoronix.com. 9. April 2021, abgerufen am 25. April 2024 (englisch).
  8. Attila Kinali: [ANNOUNCE] New FFmpeg maintainership. In: lwn.net. 18. Januar 2011, abgerufen am 25. April 2024 (englisch).
  9. Michael Niedermayer quotes. In: ikaruga.co.uk. Abgerufen am 25. April 2024 (englisch).
  10. News – March 13, 2011. Meldung auf der Startseite von Libav vom 13. März 2011. In: libav.org. Archiviert vom Original am 15. November 2012; abgerufen am 25. April 2024 (englisch).
  11. Warning message from ffmpeg program needs update. In: bugs.launchpad.net. 23. Februar 2012, abgerufen am 25. April 2024 (englisch).
  12. Markus Feilner: FFmpeg ist zurück in Debian. In: linux-magazin.de. 30. Juli 2014, abgerufen am 25. April 2024.
  13. libav and FFmpeg: switch over. In: debian.org. 8. Juli 2015, abgerufen am 25. April 2024 (englisch).
  14. Why Debian should switch to FFmpeg. In: debian.org. Abgerufen am 25. April 2024 (englisch).
  15. Michael Niedermayer: FFmpegs future and resigning as leader. In: ffmpeg.org. 31. Juli 2015, abgerufen am 25. April 2024 (englisch).
  16. Kieran Kunhya: What is the status of this project? In: libav.org. 16. April 2020, archiviert vom Original am 12. August 2020; abgerufen am 25. April 2024 (englisch).
  17. Multimedia: Which is better: FFmpeg or GStreamer? Why? In: quora.com. Abgerufen am 25. April 2024 (englisch).
  NODES
coding 1
Intern 1
mac 3
macOS 2
multimedia 8
os 6
Users 1
web 3