Share to: share facebook share twitter share wa share telegram print page

FFmpeg

FFmpeg
Logo
Vývojářtým FFmpeg
První vydání20. prosince 2000
Aktuální verze8.0 (22. srpna 2025)
Operační systémGNU/Linux
macOS
Microsoft Windows
Android
BSD
Platformax86
architektura ARM
PowerPC
Architektura MIPS
DEC Alpha
Blackfin
AVR32
SPARC
Vyvíjeno vC, jazyk symbolických adres a C++
Typ softwarumultimediální framework
LicenceGNU GPL 2.0 nebo vyšší
GNU Lesser General Public License, version 2.1 or later
Webffmpeg.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]

Historie

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

Součásti

Projekt se skládá z několika komponent.

Nástroje
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.
  • 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í):

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[7]

Hardwarová podpora

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í

Ukázka použití

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;

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.

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

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 první vydání poslední vydání aktivní vývoj
7.1 Péter 2024-09-30 2025-03-03 ano
7.0 Dijkstra 2024-04-05 2024-08-03 ano
6.1 Heaviside 2023-11-10 2024-08-02 ne
6.0 Von Neumann 2023-02-28 2023-11-10 ne
5.1 Riemann 2022-07-22 2024-08-05 ne
5.0 Lorentz[9] 2022-01-17 2022-04-04 ne
4.4 Rao[9] 2021-04-08 2022-04-14 ne
4.3 4:3[9] 2020-06-15 2022-04-16 ne
4.2 Ada[9] 2019-08-05 2022-04-16 ne
4.1 al-Khwarizmi 2018-11-06 2022-04-17 -
4.0 Wu 2018-04-20 2020-07-03 ne
3.4 Cantor 2017-10-15 2022-04-22 -
3.3 Hilbert 2017-04-13 2018-11-18 ne
3.2 Hypatia 2016-10-27 2022-04-23 -
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

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.[10]

Reference

V tomto článku byl použit překlad textu z článku FFmpeg na anglické Wikipedii.

  1. FFmpeg: Lavf: I/O and Muxing/Demuxing Library [online]. [cit. 2016-10-21]. Dostupné online. 
  2. Libavfilter Documentation [online]. [cit. 2021-10-07]. Dostupné online. 
  3. ijkplayer. [s.l.]: bilibili, 2021-10-05. Dostupné online. 
  4. A Group Of FFmpeg Developers Just Forked As Libav [online]. Phoronix, 2011-03-14 [cit. 2011-03-17]. Dostupné online. (anglicky) 
  5. Libav News [online]. Libav, 2011-03-13 [cit. 2011-03-17]. Dostupné v archivu pořízeném dne 2011-06-05. (anglicky) 
  6. MICHALOVIČ, Robert. Lekce 1 - Framework FFmpeg - Představení a nastavení. www.itnetwork.cz [online]. [cit. 2021-04-16]. Dostupné online. 
  7. a b HWAccelIntro – FFmpeg. trac.ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online. 
  8. a b c d FFmpeg. ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online. 
  9. MAKI, J. N.; GRUEL, D.; MCKINNEY, C. The Mars 2020 Engineering Cameras and Microphone on the Perseverance Rover: A Next-Generation Imaging System for Mars Exploration. Space Science Reviews. 2020-11-24, roč. 216, čís. 8, s. 137. Dostupné online [cit. 2021-04-16]. ISSN 1572-9672. doi:10.1007/s11214-020-00765-9. PMID 33268910. (anglicky) 

Související články

Externí odkazy

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya