FFmpeg
Author
Albert FloresFFmpeg 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), knihovna pro multiplexování audio/video kontejnerů, a libavfilter, knihovna pro vylepšování a úpravu filtrů přes filtrgraf, podobný Gstreameru.
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. 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. +more0 či novější), podle toho, které možnosti jsou povoleny.
Historie
Projekt založil vývojář Fabrice Bellard (pod pseudonymem Gerard Lantau) a v současnosti jej udržuje Michael Niedermayer. 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).
Součásti
Projekt se skládá z několika komponent.
Nástroje * ffmpeg je [url= a RTSP multimediální streamovací server pro živá [[Broadcast|broadcastová vysílání][utilita]] pro příkazový řádek pro konverzi video formátů. Podporuje také grabování a kódování v reálném čase z TV karty. +more * ffplay je jednoduchý multimediální přehrávač založený na SDL a knihovnách FFmpeg. * ffprobe je jednoduchý analyzátor multimediálních streamů. *Odstraněno od verze 4. 0: ffserver je[/url]]. Podporuje také posun času.
Knihovny * libavcodec je knihovna obsahující všechny audio a video kodéry a dekodéry. Většina kodeků byla vyvinuta s úsilím pro maximální výkon a znovupoužitelnost kódu. +more * libavformat je knihovna obsahující demuxery a muxery pro audio/video kontejnerové formáty. * libavutil je pomocná knihovna obsahující rutiny společné pro jednotlivé části kolekce FFmpeg. * libavdevice je knihovna umožňuje komunikovat se zařízeními přes mnoho multimediálních rozhraní (Video4Linux, Video4Linux2, Video for Windows, ALSA). * libpostproc je knihovna obsahující rutiny pro postprocessing videa. * libavfilter je knihovna obsahující filtry (efekty, filtry OpenCV a frei0r). * libswscale je knihovna obsahující rutiny pro změnu rozlišení a barevného modelu videa. * libswresample, libavresample jsou knihovny implementující optimalizované převzorkování audia a změnu jeho formátu.
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í): * Sorenson 3 Codec použitý v mnoha filmech pro QuickTime * Advanced Streaming Format * Windows Media Audio * Windows Media Video * QDesign Music Codec 2, použitý v mnoha filmech pro QuickTime před verzí QuickTime 7.
Standardní MPEG-4 kodek použitý v FFmpeg má přiřazen FourCC kód FMP4.
Funkce FFmpeg
Kódování - zakóduje data podle kompresního algoritmu * Dekódování - dekóduje data zakódované kompresním algoritmem * Překódování (transcode) - překóduje soubor do jiného kontejneru * Spojování stop (mux) - kombinuje několik stop do jednoho kontejneru * Odstraňování stop (demux) - odstraní nebo rozdělí soubor na více stop * Vysílání na síť - vysílá soubor ve formě proudu * Úprava přes filtry - provede filtry na soubory * Přehrávání - přehrává soubory
Hardwarová podpora
FFmpeg je vícevláknový program. Podporuje akceleraci přes grafické karty. +more 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):
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í |
Ukázka použití
Následující kód demonstruje použití FFmpeg na otevření souboru s videem.
#include #include
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; …
Grafy filtrů
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. +more 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 256\times256 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.
Historie vydání
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 . +more první vydání . poslední vydání . aktivní vývoj |
---|
5. 0 |
4. 4 |
4. 3 |
4. 2 |
4. 1 |
4. 0 |
3. 4 |
3. 3 |
3. 2 |
3. 1 |
3. 0 |
2. 8 |
2. 7 |
2. 6 |
2. 5 |
2. 4 |
2. 3 |
2. 2 |
2. 1 |
2. 0 |
1. 2 |
1. 1 |
1. 0 |
0. 11 |
0. 10 |
0. 9 |
0. 8 |
0. 7 |
0. 6 |
0. 5 |
Zajímavost
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.
Reference
Související články
MPlayer a MEncoder (využívající libavcodec a libavformat) * ffdshow (využívající libavcodec) * xine (využívající libavcodec) * VLC media player (využívající libavcodec)
Externí odkazy
[url=https://www. root. +morecz/clanky/ohlednuti-za-historii-projektu-ffmpeg/]Ohlédnutí za historií projektu FFmpeg: čtvrt století digitálního videa[/url] * [url=http://ffmpeg. org/]Oficiální stránka projektu FFmpeg[/url] (anglicky) * [url=http://libav. org/]Oficiální stránka projektu Libav[/url] (anglicky).
Kategorie:Video kodeky Kategorie:Audio kodeky Kategorie:Svobodný multimediální software Kategorie:Multimediální frameworky Kategorie:Svobodné kodeky Kategorie:Svobodný software v C Kategorie:Software v Jazyce symbolických adres