FFmpeg
| Vývojář | FFmpeg tým |
|---|---|
| Aktuální verze | 1.2 (15. března 2013) |
| 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]
Obsah |
Součásti [editovat]
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 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í):
- 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.
Ukázka použití [editovat]
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]
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
Reference [editovat]
- ↑ 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)
Související články [editovat]
- 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 [editovat]
- Oficiální stránka projektu FFmpeg (anglicky)
- Oficiální stránka projektu Libav (anglicky)