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. 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 Nazwa programu pochodzi od połączenia słów MPEG – nazwy grupy standaryzującej – oraz , stosowanego w odtwarzaczach multimedialnych i oznaczającego szybkie przewijanie w przód.

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

Komponenty 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 (), 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 Kodeki Kodeki 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 2 i 3 Music Codec 2, często stosowany w plikach QuickTime do wersji QuickTime 7

Sorenson 3, stosowany w plikach QuickTime i Flash. Theora (wspólnie z kodekiem Vorbis tworzy podstawę dla formatu Ogg)

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 ASF AVI BFI IFF RL2 FLV Material Exchange Format Matroska Maxis XA MSN Webcam stream MPEG-TS TXD OpenMG

Przypisy

Linki zewnętrzne Strona domowa FFmpeg

Kategoria:Oprogramowanie na licencji GNU GPL Kategoria:Oprogramowanie na licencji GNU LGPL Kategoria:Wolne oprogramowanie napisane w C