Vývojář | FFmpeg tým |
---|---|
První vydání | 20. prosince 2000 |
Aktuální verze | 7.1 (30. září 2024) |
Operační systém | multiplatformní software |
Platforma | x86 architektura ARM PowerPC Architektura MIPS DEC Alpha Blackfin AVR32 SPARC |
Vyvíjeno v | C, jazyk symbolických adres a C++ |
Typ softwaru | multimediální framework |
Licence | LGPL nebo GPL |
Web | ffmpeg.org |
Některá data mohou pocházet z datové položky. |
FFmpeg je svobodný a otevřený softwarový projekt, který se skládá ze sady knihoven a programů pro práci s videem, zvukem a dalšími multimediálními soubory a datovými proudy. Jeho jádrem je samotný nástroj ffmpeg
pro příkazový řádek, určený pro zpracování video a audio souborů. Je široce používán pro překódování formátů, základní úpravy (stříhání a spojování), škálování videa, postprodukční efekty videa a dodržování standardů (SMPTE, Mezinárodní telekomunikační unie).
FFmpeg obsahuje také další nástroje: ffplay
, jednoduchý přehrávač médií, a ffprobe
, nástroj příkazového řádku pro zobrazení informací o médiích. Mezi obsažené knihovny patří libavcodec, knihovna audio/video kodeků používaná mnoha komerčními i svobodnými softwarovými produkty, libavformat (Lavf),[1] knihovna pro multiplexování audio/video kontejnerů, a libavfilter, knihovna pro vylepšování a úpravu filtrů přes filtrgraf, podobný Gstreameru.[2]
FFmpeg je součástí pracovních postupů mnoha dalších softwarových projektů a jeho knihovny jsou základní součástí softwarových přehrávačů médií, jako je VLC, a byl zahrnut do jádra pro zpracování videí YouTube a BiliBili.[3] Obsahuje kodéry a dekodéry pro mnoho formátů zvukových a video souborů, takže je velmi užitečný pro překódování běžných i neobvyklých mediálních souborů.
FFmpeg je zveřejněn pod licencí LGPL (verze 2.1 či novější) nebo GPL (verze 2.0 či novější), podle toho, které možnosti jsou povoleny.[4]
Projekt založil vývojář Fabrice Bellard (pod pseudonymem Gerard Lantau) a v současnosti jej udržuje Michael Niedermayer.[5][6] FFmpeg je vyvíjen pod systémem Linux, ale může být zkompilován pod většinou operačních systémů (včetně Microsoft Windows).
Projekt se skládá z několika komponent.
FFmpeg je uvolněn pro LGPL nebo GPL (závisí na konkrétní knihovně / části kódu).
Vývojáři FFmpeg rozkryli (reverzním inženýrstvím) a reimplementovali následující formáty (kvůli tomu může být část projektu v některých zemích nelegální):
Standardní MPEG-4 kodek použitý v FFmpeg má přiřazen FourCC kód FMP4
.
FFmpeg je vícevláknový program. Podporuje akceleraci přes grafické karty.[8] Podporuje architektury x86, PPC (PowerPC), ARM, DEC Alpha, SPARC, a MIPS.
FFmpeg podporuje následující aplikačně specifické integrované obvody (anglicky application-specific integrated circuit)[8]:
ASIC | Podpora v FFmpeg |
---|---|
UVD | Dekódování |
VCE | Kódování |
Crystal HD | Dekódování |
Hexagon | Kódování a dekódování |
Intel Clear Video | Dekódování |
Intel Quick Sync Video | Kódování a dekódování |
PureVideo/NVDEC | Dekódování |
Následující kód demonstruje použití FFmpeg na otevření souboru s videem.
#include <avcodec.h>
#include <avformat.h>
int main(int argc, char *argv[])
{
av_register_all();
AVFormatContext *pFormatCtx;
if(av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL) != 0)
return -1;
…
FFmpeg umožňuje specifikovat na příkazové řádce graf filtrů, kterým mají multimediální data procházet. Následující příkaz vloží před zobrazení snímků filtr, který překlopí obraz podle vertikální osy.
ffplay -vf vflip clock.avi
Filtrům je možno předávat parametry. Další příkaz vloží to řetězce filtr, který provede ořez snímku. Ořez má rozměry pixelů a počíná na souřadnicích (0,0).
ffplay -vf crop=256:256:0:0 clock.avi
Poslední příkaz zařadí řetězec filtrů. Každý snímek je nejprve transponován, a poté negován.
ffplay -vf "transpose, negate" clock.avi
Majoritní verze FFmpegu vycházejí přibližně každé 3 měsíce. Mezi majoritními verzemi jsou vydávány pouze opravy důležitých chyb.
větev | krycí jméno | první vydání | poslední vydání | aktivní vývoj |
---|---|---|---|---|
5.0 | Lorentz[9] | 2022-01-17 | 2022-04-04 | ano |
4.4 | Rao[9] | 2021-04-08 | 2022-04-14 | ano |
4.3 | 4:3[9] | 2020-06-15 | 2022-04-16 | ano |
4.2 | Ada[9] | 2019-08-05 | 2022-04-16 | ano |
4.1 | al-Khwarizmi | 2018-11-06 | 2022-04-17 | ano |
4.0 | Wu | 2018-04-20 | 2020-07-03 | ne |
3.4 | Cantor | 2017-10-15 | 2022-04-22 | ano |
3.3 | Hilbert | 2017-04-13 | 2018-11-18 | ne |
3.2 | Hypatia | 2016-10-27 | 2022-04-23 | ano |
3.1 | Laplace | 2016-06-27 | 2017-09-25 | ne |
3.0 | Einstein | 2016-02-15 | 2018-10-28 | ne |
2.8 | Feynman | 2015-09-09 | 2021-10-21 | ne |
2.7 | Nash | 2015-06-10 | 2016-04-30 | ne |
2.6 | Grothendieck | 2015-03-07 | 2016-05-03 | ne |
2.5 | Bohr | 2014-12-04 | 2016-02-02 | ne |
2.4 | Fresnel | 2014-09-14 | 2017-12-31 | ne |
2.3 | Mandelbrot | 2014-07-16 | 2015-01-06 | ne |
2.2 | Muybridge | 2014-03-23 | 2015-06-18 | ne |
2.1 | Fourier | 2013-10-28 | 2015-04-30 | ne |
2.0 | Nameless | 2013-07-10 | 2015-06-10 | ne |
1.2 | Magic | 2013-03-15 | 2015-02-12 | ne |
1.1 | Fire Flower | 2013-01-07 | 2015-03-13 | ne |
1.0 | Angel | 2012-09-28 | 2014-07-20 | ne |
0.11 | Happiness | 2012-05-25 | 2014-03-10 | ne |
0.10 | Freedom | 2012-01-27 | 2015-03-12 | ne |
0.9 | Harmony | 2011-12-11 | 2014-03-21 | ne |
0.8 | Love | 2011-06-21 | 2013-10-06 | ne |
0.7 | Peace | 2011-06-21 | 2015-03-12 | ne |
0.6 | Works with HTML5 | 2010-06-15 | 2013-09-23 | ne |
0.5 | half-way to world domination A.K.A. the belligerent blue bike shed | 2009-03-10 | 2014-11-29 | ne |
V letech 2020 a 2021 NASA uskutečnilo misi Mars 2020, kde jejich vozítko Perseverance použilo FFmpeg pro kompresi fotografií a videa odeslaného zpět na Zemi.[10]
V tomto článku byl použit překlad textu z článku FFmpeg na anglické Wikipedii.