FFmpegwieloplatformowy projekt, którego celem jest dostarczenie kompletnej platformy do nagrywania, konwertowania i przesyłania strumieniowego treści audiowizualnych. Głównym komponentem jest biblioteka libavcodec, która odpowiada za obsługę wielu popularnych kodeków[2]. Projekt stanowi w praktyce podstawę dla odtwarzaczy multimediów w wielu dystrybucjach GNU/Linuksa. W zależności od opcji wybranych podczas kompilacji FFmpeg jest udostępniany na licencji LGPL albo GPL.

FFmpeg
Logo FFmpeg
Logo programu
Ilustracja
Autor początkowo Fabrice Bellard
obecnie FFmpeg team
Pierwsze wydanie 20 grudnia 2000[1]
Aktualna wersja stabilna 7.1
(30 września 2024) [±]
Język programowania C, Język asemblera
Platforma sprzętowa x86, x86-64, ARM, AVR, MIPS, PowerPC, SPARC; może być kompilowany na inne architektury
System operacyjny wieloplatformowy
Rodzaj narzędzie multimedialne
Licencja LGPL, część opcjonalnych modułów GPL
Strona internetowa

Informacje ogólne

edytuj

Nazwa programu pochodzi od połączenia słów MPEG – nazwy grupy standaryzującej – oraz FF, stosowanego w odtwarzaczach multimedialnych i oznaczającego szybkie przewijanie w przód[3].

Projekt założył Fabrice Bellard (znany też jako Gerard Lantau), a następnie od roku 2004 aż do 31 lipca 2015 roku projekt był prowadzony przez Michaela Nidermayera[4]. Wielu programistów FFmpeg jest związanych z projektem MPlayer, na serwerach którego był też hostowany sam FFmpeg.

FFmpeg jest rozwijany na systemach GNU/Linux, ale kompiluje się praktycznie na dowolnym systemie operacyjnym, między innymi Mac OS X, Microsoft Windows i AmigaOS. Przez długi okres zasadniczo nie były tworzone konkretne wydania, a programiści projektu zalecali stosowanie buildów opartych na głównej gałęzi drzewa SVN, która powinna być stabilna. W zależności od wyboru opcjonalnych bibliotek, oprogramowanie jest udostępnione na licencji GPL albo LGPL.

Podczas prac nad FFmpeg powstały dwa nowe kodeki video: bezstratny FFV1(inne języki) i Snow (który wymaga jeszcze dopracowania).

W styczniu 2018 usunięto ffserver, który był jednym z komponentów projektu od czasów jego powstania.[5] Twórcy FFmpeg zapowiedzieli usunięcie komponentu półtora roku wcześniej, m.in. utrudniał rozwój reszty programu, a także był trudny w użyciu dla początkujących[6].

Komponenty

edytuj

Projekt składa się z kilku komponentów:

  • ffmpeg — narzędzia służącego do konwertowania z jednego formatu do innego, pozwala też na nagrywanie z kart telewizyjnych, kamerek internetowych i z mikrofonu.
  • ffplay — prostego odtwarzacza multimedialnego bazującego na SDL i bibliotekach FFmpeg.
  • libavcodec — biblioteki zawierającej wszystkie kodeki audio/video projektu FFmpeg. Większość z nich została napisana od podstaw, aby zapewnić jak najlepszą wydajność.
  • libavformat — biblioteki zawierającej muxery i demuxery dla różnych kontenerów multimedialnych.
  • libavutil — biblioteki zawierającej różne, dodatkowe procedury dla pozostałych części projektu: do obliczania różnych sum kontrolnych (CRC, MD5, SHA-1), do bezstratnych kompresji i dekompresji (lzo(inne języki)), do obsługi różnych schematów kodowań i szyfrowań (Base64, des, rc4, aes).
  • libpostproc — biblioteki do obsługi obróbki wideo.
  • libswscale — biblioteki do skalowania obrazów oraz konwersji między formatami zapisu kolor.
  • libavfilter — biblioteka do wykonywania operacji między procesami dekodowania i kodowania.

Obsługa kodeków i formatów multimedialnych

edytuj

Kodeki

edytuj

Kodeki stworzone w ramach projektu:

Pozostałe kodeki zaimplementowane w projekcie:

Domyślny kodek MPEG-4 ASP posługuje się FourCC w postaci FMP4.

Formaty

edytuj
  • ASF
  • AVI
  • BFI
  • IFF
  • RL2
  • FLV
  • Material Exchange Format
  • Matroska
  • Maxis XA
  • MSN Webcam stream
  • MPEG-TS
  • TXD
  • OpenMG

Przypisy

edytuj
  1. git.ffmpeg.org Git - ffmpeg.git/commit. 20 grudnia 2000. [dostęp 2021-09-04].
  2. FFmpeg (strona główna). [dostęp 2009-09-30]. (ang.).
  3. Fabrice Bellard: Wyjaśnienie pochodzenia nazwy FFmpeg na liście dyskusyjnej. [w:] Lista dyskusyjna FFmpeg [on-line]. 18 lutego 2006. [dostęp 2009-05-11].
  4. Neil McAllister: FFmpeg project leader quits, says he's had enough with these forking AV libraries. The Register, 2015-08-05. (ang.).
  5. ffserver - FFmpeg. 14 lutego 2019. [dostęp 2021-09-04].
  6. ffserver program being dropped. 10 lipca 2016. [dostęp 2021-09-04].

Linki zewnętrzne

edytuj
  NODES
INTERN 2
Project 1