Multimediální frameworky

Podobné dokumenty
David Bařina. 3. listopadu David Bařina FFmpeg 3. listopadu / 28

SROVNÁNÍ MULTIMEDIÁLNÍCH FRAMEWORKŮ COMPARISON OF MULTIMEDIA FRAMEWORKS

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

GUI ke stavbe grafu filtru pro FFmpeg

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY BEZEZTRÁTOVÁ KOMPRESE VIDEA LOSSLESS VIDEO COMPRESSION

Digitální video, formáty a kódování. Jan Vrzal, verze 0.8

Seznam. Technologie Konfigurace. FFserver. Miroslav Slugeň. Teramos Multimedia, s.r.o. May 15, 2012

Datové formáty videa a jejich využití. Pavel Čejka, Michaela Koucká

Videosekvence. vznik, úpravy, konverze formátů, zachytávání videa...

Datové formáty videa a jejich využití. Tomáš Kvapil, Filip Le Manažerská informatika Multimédia

VIDEO DATOVÉ FORMÁTY, JEJICH SPECIFIKACE A MOŽNOSTI VYUŽITÍ SMOLOVÁ BÁRA

Datové formáty videa, jejich specifikace a možnost využití. Petr Halama

Formáty videa. David Bařina. 5. dubna David Bařina Formáty videa 5. dubna / 46

Z V U K 1 ANALOGOVÝ ZÁZNAM ZVUKU

Inteligentní řešení kamerového systému

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Tvorba zásuvných modulů pro Adobe Photoshop. Jiří Skála, 2006

Multimediální systémy. 10 Komprese videa, formáty

Obsah. Úvodem 9 Kapitola 1 Jaký počítač a jaký systém? 11. Kapitola 2 Obrázky a fotografie 21

Multimediální formáty

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Převody datových formátů

Video. Co je to video. Vlastnosti videa. Frame rate. Prokládání

Počítačová grafika a vizualizace I

KAPITOLA 13. Formáty videa. V této kapitole: DV (AVI) Formát videa MPEG HDV, High Definition AVCHD Porovnání formátů

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

BEZEZTRÁTOVÁ KOMPRESE VIDEA

Streaming a převod formátů

Obsah. Úvod 13. Kapitola 1. Kapitola 2. Předmluva 10 Poznámka editora 11 Poděkování 12

Vstupní a vstupní proudy v C++

Základní pojmy. Multimédia. Multimédia a interaktivita

Formáty videa. David Bařina. 31. března David Bařina Formáty videa 31. března / 50

DIGITÁLNÍ VIDEO. pokus o poodhalení jeho neskutečné obludnosti (bez jednosměrné jízdenky do blázince)

Algoritmizace a programování

Metody připojování periferií

IIS Media Services. David Gešvindr MSP MCT MCITP

Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace

AUDIO A VIDEO VYSÍLÁNÍ S VYUŽITÍM REAL-TIME PROTOKOLU AUDIO AND VIDEO STREAMING USING REAL-TIME PROTOCOL

Přehrávač pro interaktivní video. Mikuláš Krupička

Architektura DirectShow

Uživatelský manuál. Format Convert V3.1

RECORD IT. Uživatelská příručka

Charakteristiky zvuk. záznamů

Programování v Javě I. Leden 2008

Obsah OBSAH. Export videa 19. Jak číst tuto knihu 11. Album 16 Okno Film 16

Zpracování zvuku v prezentacích

Programování v Javě I. Únor 2009

Streaming multimediálního obsahu s

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

PREPROCESOR POKRAČOVÁNÍ

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

8.3 Popis dialogových oken

KAPITOLA 13. Grafika a zvuk. Linux a grafika

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

VYHLEDÁVÁNÍ V MULTIMEDIÁLNÍCH DATECH HETEROGENNÍCH SÍTÍCH A NA INTERNETU

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Videoformáty na internetu Ing. Jakub Vaněk KIT digital Czech a.s. Situation: Q4 09 and 2010 Budget

Digitální video v teorii

VIDEO MIXER/TRANSLÁTOR PRO WEBOVÉ VIDEOKONFERENCE

1. GRAFIKA. grafika vektorová - křivky grafika bitmapová (rastrová, bodová) pixely VLASTNOSTI BITMAPOVÉ GRAFIKY (FOTOGRAFIE)

Vzdělávací obsah předmětu

MATURITNÍ PRÁCE dokumentace

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

IUJCE 07/08 Přednáška č. 1

Konstruktory a destruktory

Operační systémy. Cvičení 3: Programování v C pod Unixem

Základy programování (IZP)

DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx

Operační systémy. Cvičení 4: Programování v C pod Unixem

Java a XML. 10/26/09 1/7 Java a XML

Tvorba krátkého videofilmu

Textové soubory. alg9 1

Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

, Brno Připravil: Ing. Jaromír Landa. Postprocessing videa

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Zápis programu v jazyce C#

Datové struktury. alg12 1

Střih a korekce videa ve formátu DivX

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Identifikátor materiálu: ICT-1-19

M a r t i n Z m r h a l

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

Záznamové zařízení AVH-800 Uživatelský manuál

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Programování v C++ 1, 1. cvičení

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Divar - Archive Player. Návod k obsluze

Úvod do programování v jazyce Java

Střih v Adobe Premiere. Dominik Franěk dominik.franek@avc-cvut.cz

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Java aplety. Předávání parametrů z HTML

1. Formáty grafických dat

Obsah. Úvod 15. Vše potřebné o psaní a plánování 27. Oddíl I Preprodukce

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Komprese videa

Práce s obrazovým materiálem CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Základy programování (IZP)

Návod k použití aplikace Reliview

Transkript:

Multimediální frameworky David Bařina 12. dubna 2013 David Bařina Multimediální frameworky 12. dubna 2013 1 / 36

Obsah 1 Multimediální frameworky 2 Přehrávač, kodek 3 Video for Windows 4 DirectShow 5 FFmpeg 6 GStreamer 7 Shrnutí David Bařina Multimediální frameworky 12. dubna 2013 2 / 36

Multimédia multimédia: text, zvuk, statický obraz, video, metainformace,... potřeba: získávat (kamera), ukládat (pevný disk, komprese), vyhledávat (podle popisu), přehrávat, upravovat (střih videa),... ukládání: kontejner + kodeky David Bařina Multimediální frameworky 12. dubna 2013 3 / 36

Multimediální framework vše zaobaluje knihovny (API), nástroje (přehrávač, CLI) formáty: kontejnery, kodeky, protokoly,... požadavky: modularita, široká podpora formátů, intuitivní použití, dokumentace, výkon, platforma,... problém: žádný neumí vše David Bařina Multimediální frameworky 12. dubna 2013 4 / 36

Multimediální framework nástroje přehrávače audia/videa editory videa streamovací server ripování CD/DVD VoIP/video telefonie Multimediální framework zachytávací zařízení přístupové protokoly renderovací zařízení kodéry a dekodéry muxery a demuxery filtry David Bařina Multimediální frameworky 12. dubna 2013 5 / 36

Graf filtrů dekodér videa změna rozměrů renderovací zařízení soubor clock.avi demuxer formátu AVI dekodér audia převzork. audia zvukový subsystém modely pro přenos dat push zdroj neustále produkuje data, další filtr pasivně přijímá pull filtr aktivně požaduje data (parser od zdroje) data předávána v bufferech stavy: zastaven, pozastaven, spuštěn David Bařina Multimediální frameworky 12. dubna 2013 6 / 36

Pojmy barevný model (RGB, Y C b C r ) formát pixelu (RGB24) framebuffer bajt pixel { skutečný obraz }řádek framebuffer:... šířka řádku délka kroku David Bařina Multimediální frameworky 12. dubna 2013 7 / 36

Formát pixelu RGB24 (RGB888), BGR24 podvzorkování planární formáty (odděleně) R 0 R 1 R 2... G 0 G 1 G 2... B 0 B 1 B 2... IYUV (4:2:0), I422 (4:2:2) prokládané formáty R 0 G 0 B 0 R 1 G 1 B 1... RGB24, YUY2 (4:2:2), UYVY (4:2:2) David Bařina Multimediální frameworky 12. dubna 2013 8 / 36

Multimediální framework některé významné frameworky: Video for Windows (VirtualDub, Media Player) DirectShow (WMP, BSPlayer, Media Player Classic) FFmpeg (MPlayer, VLC, ffdshow) QuickTime (QuickTime) Media Foundation (Windows Media Player 11/12) GStreamer xine, libvlc, Phonon a další... David Bařina Multimediální frameworky 12. dubna 2013 9 / 36

Přehrávač, kodek přehrávač videa: inicializace dekóduj snímek destrukce zobraz snímek funkce kodeku: inicializace (alokace paměti rozdílové snímky, parametry) odhad maximální velikosti zkomprimovaného snímku komprese snímku dekomprese snímku David Bařina Multimediální frameworky 12. dubna 2013 10 / 36

Kodek knihovna vs. plugin do frameworku kontext (veřejná a privátní část) funkce compress, decompress get_size query create, destroy David Bařina Multimediální frameworky 12. dubna 2013 11 / 36

Kodek příklad jádro + ovladač pro VfW + filtr pro DShow + patch na FFmpeg aplikace DShow VfW ffdshow DS filtr VfW ovl. FFmpeg patch core framework multiplatformní pouze Windows David Bařina Multimediální frameworky 12. dubna 2013 12 / 36

Video for Windows Video for Windows (VfW) / Video Compression Manager (VCM) vyvinul Microsoft jako reakci na QuickTime (Apple) první verze (verze 1.0), listopad 1992 vlastní souborový formát Audio Video Interleave (AVI) nástupcem se stal DirectShow dokumentace na MSDN Otevření souboru LONG hr; PAVIFILE pfile ; AVIFileInit (); hr = AVIFileOpen (& pfile, szfile, OF_SHARE_DENY_WRITE, 0L); if (hr!= 0) { return ; } AVIFileRelease ( pfile ); AVIFileExit (); David Bařina Multimediální frameworky 12. dubna 2013 13 / 36

Video for Windows Kostra kodeku # include <vfw.h> LRESULT WINAPI DriverProc ( DWORD dwdriverid, HDRVR hdrvr, UINT msg, LONG lparam1, LONG lparam2 ) { switch ( msg ) { case ICM_COMPRESS : // komprimuj snimek return Compress (( ICCOMPRESS *) lparam1, ( DWORD ) lparam2 ); } } case ICM_DECOMPRESS : // dekomprimuj snimek return Decompress (( ICDECOMPRESS *) lparam1, ( DWORD ) lparam2 ); kodek: zkompilovat jen plugin David Bařina Multimediální frameworky 12. dubna 2013 14 / 36

Video for Windows David Bařina Multimediální frameworky 12. dubna 2013 15 / 36

Video for Windows AVIFileInit inicializuje knihovnu AVIFileExit ukončí práci s knihovnou AVIFileOpen otevře soubor AVI AVIFileRelease zavře soubor AVIFileGetStream vrátí vybranou stopu AVIFileCreateStream vytvoří novou stopu AVIStreamInfo vrátí informace o stopě AVIStreamReadFormat vrátí informace o formátu stopy AVIStreamGetFrameOpen připraví dekompresor AVIStreamGetFrame dekomprimuje snímek AVIStreamGetFrameClose ukončí dekompresi AVIStreamOpenFromFile otevře vybranou stopu AVIStreamSetFormat nastaví formát stopy AVIStreamRead přečte komprimovaná data AVIStreamWrite zapíše data do stopy AVIStreamRelease uzavře stopu David Bařina Multimediální frameworky 12. dubna 2013 16 / 36

Video for Windows ICM_ABOUT zobrazit dialog s informacemi ICM_COMPRESS zkomprimovat snímek ICM_COMPRESS_BEGIN připravit se na kompresi podle parametrů ICM_COMPRESS_END konec komprese ICM_COMPRESS_GET_FORMAT informace o komprimovaném formátu ICM_COMPRESS_GET_SIZE max. velikost komprimovaného snímku ICM_COMPRESS_QUERY podpora dekomprimovaného formátu ICM_CONFIGURE konfigurační dialog ICM_DECOMPRESS dekomprimuje snímek ICM_DECOMPRESS_BEGIN připravit se na dekompresi ICM_DECOMPRESS_END konec dekomprese ICM_DECOMPRESS_GET_FORMAT info. o dekomprimovaném formátu ICM_DECOMPRESS_QUERY podpora komprimovaného formátu ICM_GETINFO informace o kodeku David Bařina Multimediální frameworky 12. dubna 2013 17 / 36

DirectShow DirectShow (DShow, DS) nástupce VfW; nástupcem Media Foundation založen na objektovém modelu COM (Component Object Model) graf složený z filtrů automatická konverze barevných modelů (proti VfW) filtry: zdrojové, transformační, renderovací pro vývoj nutno nainstalovat Windows SDK, dříve DirectX SDK utilita GraphEdit zpětná kompatibilita: VfW kodeky obaleny filtrem AVI Decompressor formáty identifikovány GUID (FourCC obalen) dokumentace na MSDN David Bařina Multimediální frameworky 12. dubna 2013 18 / 36

DirectShow David Bařina Multimediální frameworky 12. dubna 2013 19 / 36

DirectShow Dekompresor videa class CDBVDecoder : public CVideoTransformFilter, public IDBVDecoder { public : static CUnknown * WINAPI CreateInstance ( LPUNKNOWN punk, HRESULT *phr ); STDMETHODIMP NonDelegatingQueryInterface ( REFIID riid, void ** ppv ); DECLARE_IUNKNOWN ; CDBVDecoder ( LPUNKNOWN punk, HRESULT *phr ); HRESULT CheckInputType ( const CMediaType *mtin ); HRESULT GetMediaType ( int ipos, CMediaType *pmt ); HRESULT SetMediaType ( PIN_DIRECTION direction, const CMediaType *pmt ); HRESULT CheckTransform ( const CMediaType *mtin, const CMediaType * mtout ); HRESULT DecideBufferSize ( IMemAllocator *pima, ALLOCATOR_PROPERTIES * pproperties ); }; HRESULT Transform ( IMediaSample *pin, IMediaSample *pout ); kodek: zkompilovat jen plugin David Bařina Multimediální frameworky 12. dubna 2013 20 / 36

DirectShow David Bařina Multimediální frameworky 12. dubna 2013 21 / 36

FFmpeg svobodný multiplatformní software využívají jej MPlayer, VLC media player, Avidemux, ffdshow knihovny: libavutil (matematické rutiny, pro zjednodušení programování) libavcodec (audio a video kodeky) libavformat (muxery a demuxery/splittery pro kontejnery) libavdevice (grabování a renderování přes V4L(2), VfW, ALSA) libavfilter (filtry) libswscale (změna rozlišení a barevného modelu obrazu) podporované formáty na http://www.ffmpeg.org/general.html Libav (fork FFmpegu), http://libav.org/ David Bařina Multimediální frameworky 12. dubna 2013 22 / 36

FFmpeg ffmpeg ffserver ffplay ffprobe překódování multimediálních souborů streamovací server jednoduchý přehrávač založený na SDL zobrazí informace o multimediálních souborech Příklady ffmpeg - formats ffmpeg - codecs ffprobe clock. avi ffplay clock. avi ffplay - f video4linux2 / dev / video0 ffmpeg -i clock. avi -c:v ffv1 output. avi David Bařina Multimediální frameworky 12. dubna 2013 23 / 36

FFmpeg graf filtrů 1 jediný filtr ffplay -vf vflip clock.avi 2 parametry ffplay -vf crop=256:256:0:0 clock.avi 3 řetězec filtrů ffplay -vf "transpose, negate" clock.avi David Bařina Multimediální frameworky 12. dubna 2013 24 / 36

FFmpeg graf filtrů 1 pojmenované pady, větvení ffplay -vf "[in] split [T1], negate, [T2] overlay=0:h/2 [out]; [T1] crop=iw:ih/2:0:ih/2 [T2]" clock.avi in split [T1] crop [T2] overlay out negate David Bařina Multimediální frameworky 12. dubna 2013 25 / 36

FFmpeg Otevření video stopy # 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; if ( av_find_stream_info ( pformatctx ) < 0) return -1; AVCodecContext * pcodecctx ; if ( pformatctx ->streams [0] ->codec. codec_type!= CODEC_TYPE_VIDEO ) return -1; pcodecctx = & pformatctx ->streams [0] ->codec ; David Bařina Multimediální frameworky 12. dubna 2013 26 / 36

FFmpeg Smyčka přehrávače AVPacket pkt ; while ( av_read_frame ( pformatctx, &pkt ) == 0 ) { if ( pkt. stream_index == videostream ) { int framefinished = 0; if ( avcodec_decode_video2 ( pcodecctx, pframe, & framefinished, &pkt ) < 0 ) abort (); if ( framefinished ) { // sws_scale // avcodec_encode_video2 } //... } } av_free_packet (& pkt ); David Bařina Multimediální frameworky 12. dubna 2013 27 / 36

FFmpeg Kostra kodeku static int dbv1_decode_frame ( AVCodecContext *avctx, void *outdata, int * outdata_size, const uint8_t *buf, int buf_size ) { // dekoduj snimek } AVCodec dbv1_decoder = {. name = " dbv1 ",. type = CODEC_TYPE_VIDEO,.id = CODEC_ID_DBV1,. priv_data_size = sizeof ( DBV1Context ),. init = dbv1_decode_init,. close = dbv1_decode_close,. decode = dbv1_decode_frame,. long_name = NULL_IF_CONFIG_SMALL (" DaBler s Video codec v1"),. capabilities = CODEC_CAP_DR1, }; kodek: zkompilovat modul + libavcodec + libavformat David Bařina Multimediální frameworky 12. dubna 2013 28 / 36

FFmpeg av_register_all zaregistruje kodeky, muxery, demuxery, protokoly avformat_open_input otevře vstupní kontejner, přečte hlavičku avformat_find_stream_info načte z kontejneru informace av_dump_format zobrazí informace o kontejneru a stopách avcodec_find_decoder podle ID kodeku najde dekodér avcodec_find_encoder podle ID kodeku vrátí kodér avcodec_alloc_frame alokuje snímek av_read_frame přečte z kontejneru jeden paket (snímek) avformat_write_header zapíše do kontejneru hlavičku stopy av_write_frame zapíše do kontejneru paket av_write_trailer zapíše do kontejneru patičku stopy avcodec_decode_video2 z paketu dekóduje jeden snímek videa avcodec_encode_video zkomprimuje snímek videa do bufferu av_find_best_stream vrátí z kontejneru požadovanou stopu avformat_new_stream přidá do kontejneru novou stopu David Bařina Multimediální frameworky 12. dubna 2013 29 / 36

GStreamer svobodný multiplatformní, 1999 založen na GLib, primárně pro GNOME založen na grafu filtrů (pipeline), jako DirectShow nástroje: gst-launch, gst-inspect, gst-editor terminologie pads = spoje mezi filtry source pad se propojí do sink pad typ dat se zjistí pomocí capabilities element, bin, pipeline tři balíčky pluginů: The Good, the Bad and the Ugly David Bařina Multimediální frameworky 12. dubna 2013 30 / 36

GStreamer Sestavení pipeline export GST_PLUGIN_PATH=./.libs gst-launch-0.10 v4l2src device="/dev/video0"! videoscale! video/x-raw-yuv, width=160! ffmpegcolorspace! video/x-raw-gray! abr2! ffmpegcolorspace! videoscale! video/x-raw-rgb, width=640! ximagesink David Bařina Multimediální frameworky 12. dubna 2013 31 / 36

GStreamer Přehrávač gst - launch -0.10 playbin uri = file :/// tmp / clock. avi gst - launch -0.10 filesrc location =/ tmp / clock. avi! decodebin! colorspace! ximagesink gst - launch -0.10 filesrc location =/ tmp / clock - rle. avi! avidemux! ffdec_msrle! colorspace! ximagesink David Bařina Multimediální frameworky 12. dubna 2013 32 / 36

GStreamer GUI, XML Uložení/načtení pipeline gst_xml_write_file (GST_ELEMENT (pipeline), fopen ("xmltest.gst", "w")); xml = gst_xml_new (); ret = gst_xml_parse_file(xml, "xmltest.gst", NULL); g_assert (ret == TRUE); pipeline = gst_xml_get_element (xml, "pipeline"); g_assert (pipeline!= NULL); gst_element_set_state (pipeline, GST_STATE_PLAYING); David Bařina Multimediální frameworky 12. dubna 2013 33 / 36

GStreamer omezení vstupu a výstupu Capabilities gst-inspect vorbisdec Pad Templates: SRC template: src Availability: Always Capabilities: audio/x-raw-float rate: [ 8000, 50000 ] channels: [ 1, 2 ] endianness: 1234 width: 32 buffer-frames: 0 SINK template: sink Availability: Always Capabilities: audio/x-vorbis David Bařina Multimediální frameworky 12. dubna 2013 34 / 36

GStreamer Plugin $ git clone git://anongit.freedesktop.org/gstreamer/gst-template.git $../tools/make_element abr2 static gboolean abr2_init (GstPlugin * abr2) { //... } static GstFlowReturn gst_abr2_chain (GstPad * pad, GstBuffer * buf) { //... GstStructure *structure = gst_caps_get_structure (pad->caps, 0); gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); //... img.imagedata = (char*) GST_BUFFER_DATA(buf); //... } $./autogen.sh $ make $ export GST_PLUGIN_PATH=./.libs $ gst-launch-0.10 v4l2src device="/dev/video0"! videoscale! video/x-raw-yuv, width=160! ffmpegcolorspace! video/x-raw-gray! abr2! ffmpegcolorspace! videoscale! video/x-raw-rgb, width=640! ximagesink kodek: zkompilovat jen plugin David Bařina Multimediální frameworky 12. dubna 2013 35 / 36

Shrnutí multimediální framework (graf filtrů, framebuffer, formát pixelu) stavba přehrávače (diagram), kodeku (funkce) Video for Windows DirectShow FFmpeg GStreamer David Bařina Multimediální frameworky 12. dubna 2013 36 / 36