FFmpeg: Porovnání verzí
Odstraněna poněkud irelevantní sekce (extrémně starý, dávno neudržovaný a prakticky mrtvý software, který ale především není FFmpeg, nýbrž externí projekt, tedy není tématem článku) |
aktualizace tabulky a oprava chyb značka: editace z Vizuálního editoru |
||
Řádek 108: | Řádek 108: | ||
}}</ref> Podporuje architektury x86, PPC (PowerPC), ARM, DEC Alpha, SPARC, a MIPS. |
}}</ref> 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)<ref>{{Citace elektronického periodika |
FFmpeg podporuje následující [[Zákaznický integrovaný obvod|aplikačně specifické integrované obvody]] (anglicky application-specific integrated circuit)<ref>{{Citace elektronického periodika |
||
| titul = HWAccelIntro – FFmpeg |
| titul = HWAccelIntro – FFmpeg |
||
| periodikum = trac.ffmpeg.org |
| periodikum = trac.ffmpeg.org |
||
Řádek 123: | Řádek 123: | ||
|VCE |
|VCE |
||
|Kódování |
|Kódování |
||
|- |
|||
|DeckLink |
|||
|Kódování a dekódování |
|||
|- |
|- |
||
|Crystal HD |
|Crystal HD |
||
Řádek 142: | Řádek 139: | ||
|Dekódování |
|Dekódování |
||
|} |
|} |
||
== Rozšíření pro práci v FFmpeg == |
|||
ffmpeg-php je rozšíření pro PHP, které přidává jednoduše použitelné API pro přistup k informacím a načítání informací z videa a audia. ffmpeg-php je použitelné pro načítání trvání a datového toku (bitrate) audio souborů.<ref>{{Citace elektronického periodika |
|||
| titul = ffmpeg-php |
|||
| periodikum = ffmpeg-php.sourceforge.net |
|||
| url = http://ffmpeg-php.sourceforge.net/ |
|||
| datum přístupu = 2021-04-16 |
|||
}}</ref> |
|||
== Ukázka použití == |
== Ukázka použití == |
||
Řádek 174: | Řádek 179: | ||
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. |
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. |
||
<!-- poslední aktualizace |
<!-- poslední aktualizace 2021–04–24 --> |
||
{| class="wikitable" |
{| class="wikitable" |
||
! větev |
! větev |
||
Řádek 201: | Řádek 206: | ||
}}</ref> |
}}</ref> |
||
|2020-06-15 |
|2020-06-15 |
||
| |
|2021-02-20 |
||
|ano |
|ano |
||
|- |
|- |
||
Řádek 212: | Řádek 217: | ||
}}</ref> |
}}</ref> |
||
|2019-08-05 |
|2019-08-05 |
||
| |
|2020-07-09 |
||
|ano |
|ano |
||
|- |
|- |
||
| 4.1 || [[Al-Chorezmí|al-Khwarizmi]] || 2018–11–06 || |
| 4.1 || [[Al-Chorezmí|al-Khwarizmi]] || 2018–11–06 || 2020–07–04 || ano |
||
|- |
|- |
||
| 4.0 || [[Chien-Shiung Wu|Wu]] || 2018–04–20 || |
| 4.0 || [[Chien-Shiung Wu|Wu]] || 2018–04–20 || 2020–07–03 || ano |
||
|- |
|- |
||
| 3.4 || [[Georg Cantor|Cantor]] || 2017–10–15 || |
| 3.4 || [[Georg Cantor|Cantor]] || 2017–10–15 || 2020–07–03 || ano |
||
|- |
|- |
||
| 3.3 || [[David Hilbert|Hilbert]] || 2017–04–13 || 2018–11–18 || ano |
| 3.3 || [[David Hilbert|Hilbert]] || 2017–04–13 || 2018–11–18 || ano |
||
|- |
|- |
||
| 3.2 || [[Hypatia z Alexandrie|Hypatia]] || 2016–10–27 || |
| 3.2 || [[Hypatia z Alexandrie|Hypatia]] || 2016–10–27 || 2020–07–02 || ano |
||
|- |
|- |
||
| 3.1 || [[Pierre-Simon Laplace|Laplace]] || 2016–06–27 || 2017–09–25 || ne |
| 3.1 || [[Pierre-Simon Laplace|Laplace]] || 2016–06–27 || 2017–09–25 || ne |
||
Řádek 229: | Řádek 234: | ||
| 3.0 || [[Albert Einstein|Einstein]] || 2016–02–15 || 2018–10–28 || ne |
| 3.0 || [[Albert Einstein|Einstein]] || 2016–02–15 || 2018–10–28 || ne |
||
|- |
|- |
||
| 2.8 || [[Richard Feynman|Feynman]] || 2015–09–09 || |
| 2.8 || [[Richard Feynman|Feynman]] || 2015–09–09 || 2020–07–07 || ano |
||
|- |
|- |
||
| 2.7 || [[John Forbes Nash|Nash]] || 2015–06–10 || 2016–04–30 || ne |
| 2.7 || [[John Forbes Nash|Nash]] || 2015–06–10 || 2016–04–30 || ne |
Verze z 24. 4. 2021, 09:48
Vývojář | FFmpeg tým |
---|---|
První vydání | 20. prosince 2000 |
Aktuální verze | 7.0.1 (26. května 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 kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku (audia) a obrazu (videa). Kolekce zahrnuje libavcodec – nejdůležitější knihovnu pro kompresi audia a videa. 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ě Windows). Projekt založil vývojář Fabrice Bellard (pod pseudonymem Gerard Lantau) a v současnosti jej udržuje Michael Niedermayer. Mnoho vývojářů FFmpeg zároveň pracuje na projektu MPlayer. FFmpeg dokonce sídlil na serveru projektu MPlayer. Kvůli sporům mezi vývojáři vznikl 13. března 2011 fork projektu s názvem Libav.[1][2]
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.[3]
Součásti
Projekt se skládá z několika komponent.
- Nástroje
- ffmpeg je 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.
- ffserver je HTTP a RTSP multimediální streamovací server pro živá broadcastová vysílání. Podporuje také posun času.
- 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ů.
- 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í):
- 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[4]
Hardwarová podpora
FFmpeg je vícevláknový program. Podporuje akceleraci přes grafické karty.[5] 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)[6]:
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í |
Rozšíření pro práci v FFmpeg
ffmpeg-php je rozšíření pro PHP, které přidává jednoduše použitelné API pro přistup k informacím a načítání informací z videa a audia. ffmpeg-php je použitelné pro načítání trvání a datového toku (bitrate) audio souborů.[7]
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 |
---|---|---|---|---|
4.4 | Rao[8] | 2021-04-08 | 2021-04-08 | ano |
4.3 | 4:3[9] | 2020-06-15 | 2021-02-20 | ano |
4.2 | Ada[10] | 2019-08-05 | 2020-07-09 | ano |
4.1 | al-Khwarizmi | 2018–11–06 | 2020–07–04 | ano |
4.0 | Wu | 2018–04–20 | 2020–07–03 | ano |
3.4 | Cantor | 2017–10–15 | 2020–07–03 | ano |
3.3 | Hilbert | 2017–04–13 | 2018–11–18 | ano |
3.2 | Hypatia | 2016–10–27 | 2020–07–02 | 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 | 2020–07–07 | ano |
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 |
Reference
- ↑ A Group Of FFmpeg Developers Just Forked As Libav [online]. Phoronix, 2011-03-14 [cit. 2011-03-17]. Dostupné online. (anglicky)
- ↑ Libav News [online]. Libav, 2011-03-13 [cit. 2011-03-17]. Dostupné online. (anglicky)
- ↑ 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)
- ↑ MICHALOVIČ, Robert. Lekce 1 - Framework FFmpeg - Představení a nastavení. www.itnetwork.cz [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ HWAccelIntro – FFmpeg. trac.ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ HWAccelIntro – FFmpeg. trac.ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ ffmpeg-php. ffmpeg-php.sourceforge.net [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ FFmpeg. ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ FFmpeg. ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online.
- ↑ FFmpeg. ffmpeg.org [online]. [cit. 2021-04-16]. Dostupné online.
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
- Obrázky, zvuky či videa k tématu FFmpeg na Wikimedia Commons
- Oficiální stránka projektu FFmpeg (anglicky)
- Oficiální stránka projektu Libav (anglicky)