FFmpeg
FFmpeg – wieloplatformowy 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.
Logo programu | |
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
edytujNazwa 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 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
edytujProjekt 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 ), 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
edytujKodeki
edytujKodeki stworzone w ramach projektu:
- Snow
- FFV1
Pozostałe kodeki zaimplementowane w projekcie:
- ATRAC3
- H.261, H.263 i H.264/MPEG-4 AVC
- MPEG-4 ASP
- Indeo 2 i 3
- QDesign Music Codec 2, często stosowany w plikach QuickTime do wersji QuickTime 7
- Smacker video
- Sorenson 3, stosowany w plikach QuickTime i Flash.
- Theora (wspólnie z kodekiem Vorbis tworzy podstawę dla formatu Ogg)
- Truespeech
- TXD
- VP5
- VP8
- Vorbis
- Windows Media Audio
- Windows Media Video (WMV1, WMV2 and WMV3)
Domyślny kodek MPEG-4 ASP posługuje się FourCC w postaci FMP4.
Formaty
edytujPrzypisy
edytuj- ↑ git.ffmpeg.org Git - ffmpeg.git/commit. 20 grudnia 2000. [dostęp 2021-09-04].
- ↑ FFmpeg (strona główna). [dostęp 2009-09-30]. (ang.).
- ↑ 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].
- ↑ Neil McAllister: FFmpeg project leader quits, says he's had enough with these forking AV libraries. The Register, 2015-08-05. (ang.).
- ↑ ffserver - FFmpeg. 14 lutego 2019. [dostęp 2021-09-04].
- ↑ ffserver program being dropped. 10 lipca 2016. [dostęp 2021-09-04].