Otwórz menu główne

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[1]. 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
Interfejs programu
Interfejs programu
Autor FFmpeg team
Aktualna wersja stabilna 4.1
(6 listopada 2018) [±]
Język programowania C
System operacyjny Wieloplatformowy
Rodzaj Multimedia
Licencja LGPL, część opcjonalnych modułów GPL
Strona internetowa

Spis treści

Informacje ogólneEdytuj

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[2].

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[3]. 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).

KomponentyEdytuj

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.
  • 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 multimedialnychEdytuj

KodekiEdytuj

Kodeki stworzone w ramach projektu:

Pozostałe kodeki zaimplementowane w projekcie:

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

FormatyEdytuj

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

PrzypisyEdytuj

  1. FFmpeg (strona główna) (ang.). [dostęp 2009-09-30].
  2. 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].
  3. Neil McAllister: FFmpeg project leader quits, says he's had enough with these forking AV libraries (ang.). The Register, 2015-08-05.

Linki zewnętrzneEdytuj