FFmpeg

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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), 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):  

ASICPodpora v FFmpeg
UVDDekódování
VCEKódování
Crystal HDDekódování
HexagonKódování a dekódování
Intel Clear VideoDekódování
Intel Quick Sync VideoKódování a dekódování
PureVideo/NVDECDekó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

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top