FFmpeg

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
FFmpeg
Logo
Vývojář FFmpeg tým
Aktuální verze 2.3 (17. července 2014)
Operační systém multiplatformní software
Typ softwaru multimediální framework
Licence LGPL nebo GPL
Web ffmpeg.org

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]

Součásti[editovat | editovat zdroj]

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 je knihovna 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). Oficiální stabilní verze nejsou vydávány příliš často. Vývojáři FFmpeg doporučují použít poslední Git snapshot (je zde udržována stále stabilní verze).

Vývojáři FFmpeg rozkryli (reverzním inženýrstvím) a reimplementovali následující formáty (díky 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.

Ukázka použití[editovat | editovat zdroj]

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, charg *argv[])
{
	av_register_all();
 
	AVFormatContext *pFormatCtx;
 
	if(av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL) != 0)
		return -1;

Grafy filtrů[editovat | editovat zdroj]

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

Reference[editovat | editovat zdroj]

  1. A Group Of FFmpeg Developers Just Forked As Libav [online]. Phoronix, 2011-03-14, [cit. 2011-03-17]. Dostupné online. (anglicky) 
  2. Libav News [online]. Libav, 2011-03-13, [cit. 2011-03-17]. Dostupné online. (anglicky) 

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]