FFmpeg

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
FFmpeg
Multimedia
Logo FFmpeg
Logo programu
Interfejs programu
Interfejs programu
Autor FFmpeg team
System operacyjny Wieloplatformowy
Język programowania C
Aktualna wersja stabilna 3.0 / 15 lutego 2016; rok temu[1]
Licencja LGPL, część opcjonalnych modułów GPL
Strona internetowa

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.

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 o główną gałąź 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 i Snow (który wymaga jeszcze dopracowania).

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.
  • ffserver — serwera RTP, RTSP lub HTTP do przesyłania strumieni audio i wideo na żywo, obsługiwane są też przesunięcia w czasie.
  • 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), 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ługuję 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

  1. FFmpeg (ang.). [dostęp 2016-03-03].
  2. FFmpeg (strona główna) (ang.). [dostęp 2009-09-30].
  3. Fabrice Bellard: Wyjaśnienie pochodzenia nazwy FFmpeg na liście dyskusyjnej. W: Lista dyskusyjn 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 (ang.). The Register, 2015-08-05.

Linki zewnętrzne[edytuj]