0:00:15 | dobrý den |
---|
0:00:17 | takže už víte jak se menuju |
---|
0:00:20 | dnešní přednáška je vlastně určená pro ty kteří se s multimediálními chrie bortí a kafem |
---|
0:00:26 | pekáči streamery ještě nesetkali |
---|
0:00:29 | a které zajímají právě multimédia to jaksi napsat vlastní přehrávač editoru vydá kodek nebo něco |
---|
0:00:37 | podobného |
---|
0:00:38 | a pokud už jste se s nimi setkali pokud chci píšete aplikace tak |
---|
0:00:43 | možná že nakonec neska poučíte vy mě |
---|
0:00:48 | já bych vás na začátek uvedl do kontextů co to vlastně ty multimediální které morky |
---|
0:00:55 | jsou a proč bysme měli použít co nám to přinese |
---|
0:01:02 | co jsou to multimédia existuje obrovská spousta definic |
---|
0:01:08 | pro nás to mohou být data jako máte napsaný tady na tom prvním řádku tech |
---|
0:01:14 | zvuková data statický obraz animace té sekvence obrazů nebo video T je to znamená zvuk |
---|
0:01:21 | i obraz |
---|
0:01:23 | případně nějaké tři D data medicínská data cokoli takového a ještě k tomu přidáme metainformace |
---|
0:01:31 | to znamená nějaké informace o autorech já nevím název filmu název skladby kapitoly prostě metainformaci |
---|
0:01:41 | k těm datům |
---|
0:01:43 | a ty multimediální data se typicky vyznačují tím že sou jednak obrovská |
---|
0:01:49 | a to znamená jsou to gigabajt i dat nekomprimované formě |
---|
0:01:55 | a |
---|
0:01:56 | jednak jsou nestrukturovaná za to znamená že to nejsou nijak že bysme mohli jednoduše parsovat |
---|
0:02:04 | takže jak se s tímhle vypořádat se bysme snímat chtěli dělat potřebujeme získávat znamená zachytávací |
---|
0:02:11 | ňáké ve kamery S nějakého mikrofonu nebo ze sítě rádi bysme si je uložili na |
---|
0:02:18 | disk co se něco sebou přináší ten problém že nechceme aby nám pár minutové video |
---|
0:02:24 | zabralo C D |
---|
0:02:26 | třeba půl té roviny s takže je zde potřeba nějaké komprese ram může být buď |
---|
0:02:31 | pomalá bezeztrátová nebo rychlá a ztrátová účinná |
---|
0:02:36 | tak dále bysme mohli chtět těchhle datech vyhledávat to znamená chtěli bysme rozumět těm metadatům |
---|
0:02:42 | tady se bavim o vyhledávání podle popisu nikoli podle obsahu |
---|
0:02:47 | a můžeme chtít ale data přehrát napsat si přehrávač videa nebo M P třicet přehrávat |
---|
0:02:53 | případně nějaké větší editace aplikace to true extrakci nějakých kde snímků přeházení znovu uložení do |
---|
0:03:00 | kontejneru prostě nějaké náročnější úpravy Á kdybysme si tohle všechno měli psát ručně parsovat tady |
---|
0:03:08 | ty multimediální kontejnery byte po bajtů tak bysme vtom jedna nadělali spoustu chyba jednak by |
---|
0:03:13 | nám to zabralo spoustu času takže k tomuto máme ty multimediální prej morky když si |
---|
0:03:19 | chcete psát přehrávač tak je výhodné ho postavit na nějaký multimediální ten korkem a tady |
---|
0:03:25 | ten gregory by měl zastřešit tady tyhle naše požadavky a to zejména to Ú tu |
---|
0:03:32 | práci s kontejnerem a tu kompresi |
---|
0:03:35 | tady je rozebráno ještě jednou to ukládání máme nějaký kontejner firem třeba dejme tomu a |
---|
0:03:42 | víčko nebo má trošku které jsou uloženy jednotlivé stopy video stopy audio stopy cokoli i |
---|
0:03:48 | ta meta data jsou tam uloženy a ten multimediální kterému rok musí tohle umět otevřít |
---|
0:03:53 | a vytáhnout toho push jako nekomprimované ty snímky případně pozpátky umět zabalit do toho kontejneru |
---|
0:04:00 | zkomprimovat takže k tomuhle to je |
---|
0:04:05 | to sou multimédia teďka co to vlastně ty multimediální které morky sou já dneska budu |
---|
0:04:11 | hovořit o dvou první polovině o tom T M P Q a ve druhé polovině |
---|
0:04:16 | očí streamerů |
---|
0:04:18 | že multimediální které more veškerou tuhle funkcionalitu za obaluje |
---|
0:04:23 | a ve |
---|
0:04:25 | žádný jaksi neumí všechno |
---|
0:04:28 | žádný neběží na každé platformě takže je to potom takové musíme si vybrat podle našich |
---|
0:04:33 | omezení |
---|
0:04:34 | ten borec je typický několik knihoven které mají svoje rozhraní |
---|
0:04:40 | a plus je to několik jednoduchých nástrojů typicky pro příkazovou řádku které mě umožňují takovouto |
---|
0:04:46 | rychlou práci zbyde já nevím triviální přehrávač nebo jednoduchý nástroj který vyplivne do koncové informace |
---|
0:04:54 | o tom hlavičku vote matroš co nějakém webů jako je délku trvání použitou kompresi a |
---|
0:05:01 | tak dál takže je to soubor nějakých knihoven případně jednoduchých nástrojů |
---|
0:05:06 | multimediálních nebo |
---|
0:05:10 | to je s čím umí pracovat musí umět otevřít různé kontejnery to znamená já nevím |
---|
0:05:15 | případě statického obrazu by to bylo třeba kdysi nebo J fí případě toho videa to |
---|
0:05:23 | bude to a dýčko ten přímo tak program stream pak transport stream prostě spousta těch |
---|
0:05:29 | kontejnerů dneska populárním a troška |
---|
0:05:32 | bude muset umět pracovat z různě s komprimovanými datovými stopami obdiv kontejneru to znamená třeba |
---|
0:05:39 | video je uložen dvě stě šedesát čtverce ten pro ten port musí k sobě mít |
---|
0:05:44 | kodek aby tady tu a dvě stě šedesát čtverku dekódoval a nebo naopak při ukládání |
---|
0:05:49 | aby to není uměl zabalit uložit |
---|
0:05:52 | takže to sou kodeky a video budeme ještě zachytávat dejme tomu z vysílání přes síť |
---|
0:05:58 | takže měl by obsahovat různé přístupové protokoly jednak jako k té síti a také jinak |
---|
0:06:05 | různým subsystémům já nevím video for linux třeba případě toho linuxu abych se dostal teda |
---|
0:06:11 | kameře nebo o se skoro bych se dostal k tomu mikrofonu nebo abych to zpátky |
---|
0:06:16 | třeba pustil do ty reproduktorů takže tohle všechno musí umět zařízení protokoly kodeky kontejnery s |
---|
0:06:23 | různými musím ně pracovat |
---|
0:06:25 | a jaké nebo máme požadavky |
---|
0:06:28 | jednak by měl být modulární ale toff tohle myslím v tom smyslu že by měl |
---|
0:06:33 | umožňovat do sebe zasouvaly další a další moduly nějaké planiny |
---|
0:06:39 | například ten R T M P který bude za chviličku té jednolitý from borec do |
---|
0:06:46 | kterého nic nepřidáme li ven dopřidat svůj filtr svůj kodek tak musíme modifikovat zraky překompilovat |
---|
0:06:54 | hrozná otrava naopak ten druhý číst riemann normální zkompiluje modul nemusíme mě dání nějaké administrátorské |
---|
0:07:01 | oprávnění zaběhlo za běhu uživatel načte modul a frymburk mi pracovat s mým novým formátem |
---|
0:07:08 | nebo aplikovat můj nový filtr a tak dál |
---|
0:07:11 | potřebovali bysme by měl co nejširší podporu formátu například takle mpeg ten implementuje kodér dekodér |
---|
0:07:19 | boxerem user opravdu téměř ke každému formátu naopak ten R G stream R tak širokou |
---|
0:07:25 | podporu nemá ale umožňuje nám je takový propracovanější to vidíte dál nemá ale takovou širokou |
---|
0:07:32 | podporu |
---|
0:07:33 | těch formátu tady bysme ho jednoduše použili dokumentace výkonů by běžel na té naší platformě |
---|
0:07:41 | takové další požadavky a jak jsem říkal ne ani jeden neumí vše tenhleten mpeg třeba |
---|
0:07:48 | není asi tak stabilní jako jeho for clip a ve pak máme další pro linux |
---|
0:07:53 | limbor ti já nevím C nalito délce von on máme pro jiné platformy je F |
---|
0:07:59 | morky třeba pro windows je to direct show nebo starší videa video for windows |
---|
0:08:05 | nebo novější mít jak tamější jejich obrovská spousta tohle okýnko přehrávače který je postavený na |
---|
0:08:13 | horkém diktální |
---|
0:08:15 | například takže |
---|
0:08:20 | teď graficky co to ten multimediální firmware je pro nás je to teda nějaký soubor |
---|
0:08:26 | nějakých knihoven které mají nějaké rozhraní a po z nějaké jednoduché nástroje pro práci s |
---|
0:08:32 | tím vlakem horkem |
---|
0:08:34 | teď nut tímhle kterém horké mívají registr S vystavěny |
---|
0:08:39 | různé aplikace tady máme například přehrávač videa editor dá nebo ji streamovací server a tak |
---|
0:08:44 | dál dejme tomu nějaký vojtek klient a naopak poctím to horkem bývají nějaké těch přístupové |
---|
0:08:52 | moduly jako chtěl mu renderovací zařízení sokolem subsystému prosí nějaké filtry já nevím odstranění prokládání |
---|
0:09:00 | odstranění šumu a změna snímkové frekvence těch filtrů může být spousta a stejně tak kodér |
---|
0:09:07 | dekodér nějaké audiovideo stopě planina a tak dále takže byly vidíme že ty rozhraní toho |
---|
0:09:13 | multimediálního F morku sou vlastně dvě jedno je takový pohled z vrchu s pohledu té |
---|
0:09:19 | aplikace co využívají a druhé rozhraní je tak nějak interně zespodu s pohledu nějakých N |
---|
0:09:27 | nových zásuvných modulů C rozšiřují funkcionalitu to from vodku aby to třeba mělo být zvědavi |
---|
0:09:33 | tou mělo nás dvě stě šedesát čtverku |
---|
0:09:36 | takhle dál se tam za souvají nějaké tu pluginy a využívají odlišné části toho a |
---|
0:09:41 | P to rozhraní těch knihoven |
---|
0:09:45 | takže T nějakých globální pohled na ten frame bod a teď se pojďme podívat dovnitř |
---|
0:09:50 | toho from dvorku |
---|
0:09:51 | uvnitř toho from horku závislosti na té naší aplikaci tečou nějakým způsobem data toho lze |
---|
0:09:58 | znázornit tak zvaný mega ten filtru který vidíte tady |
---|
0:10:03 | jinak se tomu taky říká pipeline třeba terminologii točí streamerů |
---|
0:10:08 | a tohle je velmi jednoduchý přehrávač na začátku máme nějaký je zdroj dat |
---|
0:10:15 | prostě zdrojový filtr těm krabičkami se říká filtry nebo elementy |
---|
0:10:20 | podle toho v jakém F morku se pohybujeme zdrojový je teda označený zeleně ten posíláte |
---|
0:10:26 | data tlačíte data dal do té pipeliny dále tu máme nějaké filtry to co provádí |
---|
0:10:32 | transformaci dat větví ten top spojují převádí to třeba dekomprimují nebo naopak komprimují nebo mění |
---|
0:10:39 | vzorkovací frekvenci audia to sou transformačních filtry ty modré tohle zrovna demu X R a |
---|
0:10:46 | vyčká to je prostě takový element černá krabička do které tečou ty bajty ty binární |
---|
0:10:53 | data kterým nerozumíme aby teče S toho už zvlášť audio stopa zvlášť video sto a |
---|
0:10:59 | ale zkomprimovaná tatí nerozumíme tak proto to máme dekodér videa audia lichnov teče ten tam |
---|
0:11:06 | si ten exist a binární data aby tečou s toho de komprimované frame nevydáváš si |
---|
0:11:12 | můžeme s a na ty pixely push to můžeme vyrendrována obrazovku nebo bys bychom to |
---|
0:11:17 | mohli poslat zvukové karty |
---|
0:11:20 | ale je to jeden problém že to pravděpodobně nebude zrovna té formě jaké bysme to |
---|
0:11:26 | mohli poslat do toho renderovacího zařízení například to bude ve formátu pixelu Y move a |
---|
0:11:33 | renderovací zařízení bude jenom dvě B tak je třeba provést nějaký převody dát změnou rozměrů |
---|
0:11:40 | videa formátu to bych s a nebo převzorkování audia a teprve pak to můžeme poslat |
---|
0:11:45 | do té zvukové karty nebo vyrenderování někam na obrazovku takže tohle velmi typickým jsou teda |
---|
0:11:52 | cílové filtry velmi typicky graf filtru pro nějaký triviální přehrávač |
---|
0:11:57 | tak tady sem zároveň už značnou ty pojmy kontejnerových formát jemu se váže teda ten |
---|
0:12:05 | demu X který umí parsovat ty data s osou uložené ten kontejneru a poslední na |
---|
0:12:12 | výstupu šli jednotlivé stopy |
---|
0:12:14 | jaký se mu říká split R a naopak mu X různý chtít audio stoků dvě |
---|
0:12:19 | video stopy a zabalit to do kontejneru třeba matroš K nebo aby ten se rád |
---|
0:12:24 | user |
---|
0:12:25 | a naopak kodér dekodér kodéru umí je zakódované komprimované video nebo audio a dekodér naopak |
---|
0:12:32 | dekomprimovat kodér i dekodér dohromady říká se tomu kodek |
---|
0:12:37 | a takové dva typické to tedy T neboli téčko který to není na tom obrázku |
---|
0:12:44 | ten nedělá vůbec nic že prostě jenom větví na více tady těch výstupů ten vstupní |
---|
0:12:49 | datový tok ano pokornej ten víci zvés spojí je překryje nějakým způsobem do jednoho s |
---|
0:12:57 | tím se můžete setkat všude kde je to postavené na tom grafu filtrů typ nymburk |
---|
0:13:01 | i |
---|
0:13:02 | že máme zdrojové transformační a cílové elementy a speciální případ těch transformační je třeba týmu |
---|
0:13:10 | se R over jej nebo nějaké převody tou sou konkrétní nějaké filtry nějaké elementy |
---|
0:13:17 | takže pojďme na ten let F M P |
---|
0:13:20 | tak jako template je hrozně používaným známý profláknutý multimediální kterém word |
---|
0:13:26 | když existuje když řadu let ale dva a půl roku zpátky se stala taková věci |
---|
0:13:32 | se tam ty vývojáři nějakým způsobem znesvářených a for krysy to vzniklo projektily a V |
---|
0:13:38 | fork toho takle mpeg Ú alt té doby se ten takle mpeg při vydal takovou |
---|
0:13:42 | cestou že jsou tam komentovány zběsile nějaká nová funkcionalita naopak ten líp a ve se |
---|
0:13:49 | vydal takovou cestou pomalého vývoj stability tady klade důraz co se na stabilitu ale nicméně |
---|
0:13:55 | to co tady jiří tam mělo být společné pro oba tyhle chirurg i když budu |
---|
0:13:59 | mluvit o tom jaké ten webů jinak ten efekt M P můžeté znát je na |
---|
0:14:03 | něm postaven přehrávačem player |
---|
0:14:06 | ve L C je vevnitř využívá třeba editor aby demu cesty znáte nebo na platformě |
---|
0:14:12 | windows je ji možné využít pomocí takle kde show T takový balíček který si nainstalujete |
---|
0:14:18 | a pak ve vašich direct show nebo video for windows aplikací můžete využívat funkcionalitu prvkem |
---|
0:14:24 | P Q je to multiplatformní frame border a |
---|
0:14:28 | a teď z čeho se skládá máte tady vypsané nějaké knihovny |
---|
0:14:32 | nejzajímavější s toho je táhli a V kodek které sou implementace těch kodeků kodérů dekodéru |
---|
0:14:40 | je tam dekodér M P trojky je tam dekodér tech videa M P Q dva |
---|
0:14:47 | videa nentek čtyři videa potom se ten umožňuje samozřejmě ten from horní už nějaké externí |
---|
0:14:54 | knihovny |
---|
0:14:55 | a další část další knihovna je tady a ve formátem jsou ty museli nemuseli to |
---|
0:15:00 | znamená je ta část co umí pracovat s kontejnerem já nevím aby matroš K který |
---|
0:15:05 | vás napadne účinnější třeba dejme tomu |
---|
0:15:08 | tak to ten že teda ne ale aby matroš K je implementováno tady v tom |
---|
0:15:13 | vybaven formát danej dvě nejdůležitější části knihovny |
---|
0:15:18 | a další zajímavé je levá V D Y spíš jsme třeba brát video sto video |
---|
0:15:23 | for windows nějaké ve kamery budeme potřebovat pracovat s touhle knihovnou tady a ve filtr |
---|
0:15:28 | tam sou nejrůznější audiovideo filtry já nevím překlopení videa odstranění šumu do střední hran na |
---|
0:15:35 | co si vzpomenete |
---|
0:15:37 | a líp ve své scale to je ta změna jako rozlišení a formátů pixelu se |
---|
0:15:44 | týče videa ve své rysem to je naopak co sedíš audia změna to formátů takže |
---|
0:15:50 | to jsou takové základní knihovny ještě tu vybavení to jde všechno co se co nepasovalo |
---|
0:15:57 | někam jinam nějaké logování zprávu šetření chyb a tak dále |
---|
0:16:01 | že můžete se podívat na tady tu adresu |
---|
0:16:05 | poďme se podívat na ty nástroje příkazové řádky můžete si to resetu máte nulu normálně |
---|
0:16:09 | zkoušet D práci s tím |
---|
0:16:12 | takový základní program je jaké lejte triviální přehrávač který otevře zde looking o a co |
---|
0:16:19 | mu předáte jako parametr to začne přehrávat velice jednoduché použití tady vidíte jak L jméno |
---|
0:16:25 | toho videa je to přehrávač triviální postavený na ctíme tak ten takže |
---|
0:16:30 | potom F proud má naopak za úkol vyplit do koncové tady ty informace o T |
---|
0:16:35 | M P trojce všechno co to obsahuje sto o tom je schopné zjistit podle těch |
---|
0:16:40 | parametrů kterým tomu přidáte předáte tak nějak informace vypíše to koncové jater servery jednoduchý já |
---|
0:16:47 | T P streamovací server ukážu jeho použití a ta nejdůležitější části pro ten vektor konvertor |
---|
0:16:54 | ono mi převést |
---|
0:16:56 | nějaké vstupy předáte tomu deset vstupů s touto vezme audio s toho video nějak to |
---|
0:17:01 | vevnitř kura mixu je a uloží do několika výstupů prostě umí to trans kódovat tady |
---|
0:17:05 | ty multimediální data |
---|
0:17:08 | podporované formáty záleží na tom jestli si ten takle mpeg zkompilovaný ale můžete vypsat pomlčka |
---|
0:17:14 | formát schodek chtěl pro s co to umí dycky tam máte téčko déčko to znamená |
---|
0:17:19 | jestli to umí N kódovat nebo dekódovat do tady toho formátu můžete si to zkusí |
---|
0:17:24 | napsat do konzole je to takové základní použití |
---|
0:17:29 | a všechny ty příkazy |
---|
0:17:31 | mají takovoudle následující syntaxi někdy mírně odlišnou třeba u toho pole se nedává pomlčka input |
---|
0:17:40 | protože on nemá žádné výstupy tak všechno je vstup ale funguje to takle |
---|
0:17:45 | dáte T M P krát teď nějaké globální volby nějaké základní parametry ukážu dál všechno |
---|
0:17:52 | vysvětlení dál a teď následuje sekvence nějakých voleb to co se týkají vstupu |
---|
0:17:58 | pak název vstupů třeba pomlčka Í moje video tečka vy tam dáte a ten následuje |
---|
0:18:04 | další vstup další vstup další vstup a vše k tomu předáte všechny vstupní kontejnery nebo |
---|
0:18:09 | zařízení ve kamery a tak dál tak zase následují výstupy vtom formátu volby pro výstup |
---|
0:18:15 | výstupu bodu pro výstup další výstup |
---|
0:18:18 | dobré si na to pamatovat pro že je potom podstatné kam který kterou volbu dáte |
---|
0:18:24 | takže pomlčka jí předáte název vstupního souboru |
---|
0:18:28 | jenom tak když tam napíšete méno nějakého soubor tak bude výstupní pomlčka F T takový |
---|
0:18:34 | zajímavý parametr je můžete přidat formát toho vstupu výstupu a to buď takže mu dáte |
---|
0:18:40 | jméno toho kontejnerů a nebo jméno vstupního zařízení třeba pomlčka jako S a méno lomeno |
---|
0:18:49 | D je co budete zachytávací mikrofonu nebo naopak posílat todle nějaké zvukové karty když tam |
---|
0:18:57 | dáte pomlčka X video for linux lomeno D V lomeno video nula tak budete číst |
---|
0:19:03 | data z glib kamery |
---|
0:19:05 | a nebo tomu dáte pomlčka F aby a budete očekávané no aby souboru jako vstup |
---|
0:19:11 | že teda K základní syntaxe všech pak těch |
---|
0:19:15 | nás true příkazu příkazové řádky |
---|
0:19:18 | a teď |
---|
0:19:19 | je důležité znát několik takových parametru co se opakují napříč a můžete dát jako parametr |
---|
0:19:27 | vstupu výstupu audia videa prostě na chcete napříč všemi tady země volbami co vstup pro |
---|
0:19:33 | výstup |
---|
0:19:33 | pomlčka B určujete datový tok jako bitrate to jednoduché pomačkat se určujete kodek |
---|
0:19:40 | to vstupu výstup |
---|
0:19:42 | pomlčka S skočí na pozici a pomačkáte určuje jak dlouhou část toho audia videa bude |
---|
0:19:51 | ten jako ten tak zpracovávat třeba chcete jenom dvou mi to minutové video svědka miriam |
---|
0:19:56 | výztuž nechcete můžete tam zadat sekundy youngův takovémhle formátu ten čas |
---|
0:20:02 | takže tohle je dobré mít na paměti přes za celou |
---|
0:20:07 | před všechny ty parametry a teď poďme si to upřesním když pracujete zbyde tak můžete |
---|
0:20:13 | to video vypnout vybrat kodek videa vybrat betray videa můžete použít nějakou snímkovou frekvenci rozměry |
---|
0:20:22 | videa ve formátu jejich krát Y můžete tady napsat že na to se dá aplikovat |
---|
0:20:28 | nějaký řetězec filtrů větvit to a tak dál si ještě ukážeme pro samé platí u |
---|
0:20:34 | audia jiná audio sedej aplikoval nějaké nechat ty filtry takže to jsou pak do speciální |
---|
0:20:39 | ty volby ušil podle toho jestli pracujete zbyde nebo sandy je |
---|
0:20:44 | a teď je nejdůležitější asi parametry tady u tohoto sem se hodně často setkal s |
---|
0:20:50 | tím že lidi si myslí že compact něco neumí že neumí skočit na nějakou pozici |
---|
0:20:55 | auto přítomní jenom oni nevědí tam to dát jestli jako parametr vstupů nebo jako parametr |
---|
0:21:01 | výstup |
---|
0:21:03 | takže když trans koledujete |
---|
0:21:07 | řekněme nějaký vstupní na nějaký výstup tak můžete vtom vstupů skočit zhruba na nějakou pozici |
---|
0:21:15 | a to funguje tak že to pomlčka je ze znáte jako parametr vstupu tomu F |
---|
0:21:19 | M P Q to říká |
---|
0:21:22 | skoč je na ňákou dobrou pozici před tady tím časem a případně videa on pojede |
---|
0:21:29 | po klíčových snímcích po king režimech a zastaví ste na něj pozdějším klíčovém snímku ještě |
---|
0:21:35 | před tím časem takže ono to neskočí na tu pozici tří minut ale skočí to |
---|
0:21:41 | někam přední |
---|
0:21:43 | ale je to rychlé pro že to skáče nebo klíčových snímcích |
---|
0:21:47 | nebo to můžete dát jako parametr výstupu znamená celý ten vstup se valí do té |
---|
0:21:52 | pipeliny úměře tak pinů dekóduje se jeden snímek po druhém a až se najde přesně |
---|
0:21:58 | čas který odpovídá přeměnu tam takto začne valid do výstupu ale je to pomalé přesné |
---|
0:22:04 | a pomalé a nebo to můžete zkombinovat |
---|
0:22:07 | koči rychle na někam před dvěma minutama třiceti sekunda má to pojede po klíčových snímcích |
---|
0:22:14 | skočí na tu pozici a pak ty dalších třicet sekund už budete skutečným dekódovat snímek |
---|
0:22:19 | po snímku ale zato to začne generovat ten výstup přesně a přitom to bude je |
---|
0:22:24 | celkem rychle pro že ty dvě minuty tři ste se const přeskočili v rychlosti |
---|
0:22:29 | takže takhle sou tam skoky na nějakou pozici tady je ukázka toho příkazu proud prostě |
---|
0:22:36 | tomu předáte jako parametr to vaše a víčko ano to vypíše trvání informace o video |
---|
0:22:42 | stopách audio stopa rozlišení můžete si zobrazím informace o jednotlivých režimech to znamená je díra |
---|
0:22:50 | audio i video tohle je příkládek jako nějakého to ono to vyplivlo mnohem víc já |
---|
0:22:56 | jsem tady od mazal všechno nechal tady jenom jádro tohle příklad co vy informace o |
---|
0:23:02 | nějakém frameů s toho videa koka vy někde uprostřed k a že to tady nějaký |
---|
0:23:07 | formát pixelů palo osum nějakou výšku šířku takovéto vypsal takže tak asi rychlost příkazové řádky |
---|
0:23:14 | zjistíte informace o vašem video u |
---|
0:23:17 | tak přehrávání videa jednoduše F play kulkami nebo zašel do přehrávat prvního kterému jo tady |
---|
0:23:25 | to kdo začíná jedničkou N nulou takže to je jednička je ten je počáteční trému |
---|
0:23:31 | nebo skočim na pozici šest sekund to trvá dycky ten frame jednu sekundu a vidíte |
---|
0:23:36 | že to začalo cen vičky tady v tomhle případě je to každý je z nich |
---|
0:23:40 | klíčový takže tady nemusíte nějak krát |
---|
0:23:44 | že ten graf filtrů letectvem peklo ne není postavený takže byste si v něm libovolně |
---|
0:23:49 | jakýkoli výraz filtrů udělali ale umožňuje na ty jednotlivé větve audia videa ty grafy filtrů |
---|
0:23:56 | aplikovat takže když máme ten klok aby a chceme vertikálně překlopit dozvídal |
---|
0:24:04 | vertikálně takhle |
---|
0:24:06 | a napíšete pomlčka víte filtr videa ve chtěli a to video zobrazí se tohle |
---|
0:24:14 | vy můžeté přidat parametry těm filtrům třeba krovy nějakých filtr co provádí výřez tady tomu |
---|
0:24:21 | ztěží tam udělej mě výřez dvě stě padesát šest krát dvě stě padesát šest pixelů |
---|
0:24:25 | odpor sice nula krát nula pixelů ty parametry najdete samozřejmě dokumentaci a zobrazí se tohle |
---|
0:24:32 | takový výřezy jenom |
---|
0:24:34 | můžete řetězit ty jednotlivé elementy ty jednotlivé filtry tady proveďte transponuje to video pak ho |
---|
0:24:41 | negují |
---|
0:24:42 | vidíte to výstup tohoto je vstupem tohoto filtru a na výstupu se zobrazí tohleto to |
---|
0:24:48 | sou takové základy teď můžete také větvit a zpátky spojovat ten byla graf filtrů tady |
---|
0:24:56 | už je takový složitější případ |
---|
0:24:59 | protože k tomu abyste ho se správně napojili tak si musíte některé ty přípojné body |
---|
0:25:06 | to znamená tady tyhle body |
---|
0:25:08 | pojmenovat |
---|
0:25:10 | a to se dělá takhle |
---|
0:25:13 | z jméno toho filtru se uvádí do hranatých závorek ty názvy výstupních připojení bodů a |
---|
0:25:20 | přes jméno toho filtru se uvázání do hranatých závorek názvy těch vstupních naopak |
---|
0:25:26 | takže když se podíváte na tento příklad tak máme tady jeden řetězec |
---|
0:25:31 | střední a středník odděluje větve a druhý řetězec to znamená máme dvě větve ty jsou |
---|
0:25:38 | tady a |
---|
0:25:40 | jak to funguje |
---|
0:25:42 | uděláme |
---|
0:25:44 | filtr split pojmenujeme jeho první výstup druhý zůstane pojmenovaný |
---|
0:25:50 | teď je ten tak veděl automaticky propojuje to znamená první nepojmenovaný výstup na první nepojmenovaných |
---|
0:25:56 | vstup takže ten nepojmenovaný dál na tony gate stejně to sem udělal u toho overlay |
---|
0:26:02 | je a spojová se mně tady ta spodní větev takhle a teď vezmu ty dva |
---|
0:26:08 | pojmenované tady a mezi ně vsunul ten filtr krok |
---|
0:26:12 | a říkám že se jenom tu spodní polovinu vyříznout a tady k tomu v roli |
---|
0:26:17 | říkám šturcu dát právě octet poloviny |
---|
0:26:20 | a vznikne mi na výstupu tohle to znamená celou tu negaci jsem ve spodní půlce |
---|
0:26:26 | jako že před vás nultou ořezanou půlkou a je to posunuté to znamená pasuje to |
---|
0:26:31 | přesně a to místo kde to má být |
---|
0:26:34 | takže to je taková se takový složitější graf filtru |
---|
0:26:38 | tak těch jejich celá řada můžete například jenom posíláte klíčové snímky a to použijete filtr |
---|
0:26:45 | select |
---|
0:26:46 | řeknete typ snímku je i snímek tak ho pošle dál můžete na to aplikovat detektor |
---|
0:26:52 | hran normální neuvidíte to video vidíte černobílé hrany mají strašně moc tady vidíte nějakou negaci |
---|
0:26:59 | horizontální překlopení odstranění o tady jo rozmazání zostření hrozně moc těch filtrů je tam podle |
---|
0:27:06 | to jestli to zkompilujte čím vším sto zkontrolujete tady k tomu máte dokumentaci takže můžete |
---|
0:27:12 | si s tím dá aplikovat nějaké rakety na to video |
---|
0:27:16 | teď ukázky jaksi převedete na příkazové řádce video napíšete jako temp pomlčka výstupní video a |
---|
0:27:24 | teď kodek videa je třeba tady ten bezeztrátový F R T jedna kodek audia je |
---|
0:27:29 | tohleto a kam uložit výstup a je to překóduje se to můžete určit betray že |
---|
0:27:35 | šedesát čtyři kilobitů za sekundu u videa a bude to mít takový bitrate tavidel |
---|
0:27:41 | můžete vybrat kodér kodeků videa H dvě stě šedesát čtverka jako formát nenávisti šedesát čtyři |
---|
0:27:48 | kodek je tolik X dvě stě šedesát čtyři a nějaké přednastaveného obytná fast rychle kódování |
---|
0:27:56 | tady je to funguje tak že ten prvek obsahuje pouze dekodér to formátu hlavičce set |
---|
0:28:02 | šedesát čtyři a na ten na ten kódovaný symbol to knihovnu líp X dvě stě |
---|
0:28:07 | šedesát čtyři a vlastně ty další parametry příslušný té knihovně zaznamená reset vás bude předána |
---|
0:28:15 | tech jo měli byly X dvě stě šedesát čtyři takže tu dokumentaci získáte když napíšete |
---|
0:28:20 | do konzole X dvě stě šedesát čtyři pomačkané a uvidíte co tomu všechno můžete předat |
---|
0:28:26 | takže taky to není komentuje všechno taky to vy může využívat nějaké externí knihovny pro |
---|
0:28:31 | ty kodeky typicky třeba šedé D R pro ten formát dear a tak dál |
---|
0:28:37 | jaksi zobrazit co máte tady ve kameru na notebooku jaksi sto zobrazit to vaše video |
---|
0:28:44 | zadáte pomlčka pech tady zadáte název toho vstupního zařízení a jako ten parametr |
---|
0:28:51 | jako input vstupní soubor zadáte lomeno D ta vaše ve kamera |
---|
0:28:57 | a teď jak si to zaznamenáte kamery a ty se zvukem tak po zařízení vstupním |
---|
0:29:03 | bude S |
---|
0:29:05 | tady můžete letech unpack takže tady předávám to pomlčka jímku lomeno D R lomeno D |
---|
0:29:10 | S zvukovka |
---|
0:29:13 | teďka si dám to samé ten obraz dat kamery a uložím to do nějakého kontejneru |
---|
0:29:19 | output na to byl to automaticky detekuje co to tam a udělal co ty |
---|
0:29:24 | podle přípony detekuje co je to za ty kontejneru když tam dáte teďka vy zjistí |
---|
0:29:28 | že to má použít muset travičko a taktéž to automaticky navrhne dyž to by sme |
---|
0:29:34 | specifikujete nějaký kodek audia videa co se jako že použije |
---|
0:29:41 | teď ukázka jednoduchého streamování po síti přes Ú D F téčko |
---|
0:29:46 | takže otevřu si vstupní soubor file K D jako kodeků videa vyberu aha dvě stě |
---|
0:29:52 | šedesát čtverku té nějaký rádia se taky to bude kódovat |
---|
0:29:57 | asi tou jsme si šedesát štyrkou když nevím a vyberu si že to chce do |
---|
0:30:01 | kontejneru tak transport stream a jako název ve výstupu nám bude C dvojtečka jo není |
---|
0:30:08 | tam ten soubor ale je tam název toho sítového protokolu to Ú D P a |
---|
0:30:12 | teď push nějaké ty parametry jo lokálností nějaký pod raz dva tři čtyři a začne |
---|
0:30:18 | to běžet na tom portu otevře stop odvysílána portu a teď já napíšu B C |
---|
0:30:23 | nebo nějaký váš oblíbený přehrávač co používáte třeba pole nebo cokoli jiného a teď tu |
---|
0:30:29 | adresu toho streamu a zpátky do chytám přesto Ú D P velice rychle během jediného |
---|
0:30:34 | příkazu sem začalo stimulovat přes síť přes Ú D P a zvolil jsem si do |
---|
0:30:39 | toho kdo či lotosu kódovat nezklamat osu brát |
---|
0:30:42 | teď na takové složitější když mám několik těch vstupních toků dat které chcu streamovací dát |
---|
0:30:50 | dohromady a stimulovat je na několik výstupů v několika formáty na různých adresách taky k |
---|
0:30:55 | tomu slouží jako server |
---|
0:30:58 | tomu je třeba jeho použití vytvořit si nějaký konfigurační soubory kde je zadán jednak na |
---|
0:31:04 | kterém portu na které adrese má naslouchat a ty tam se nám adresy všech těch |
---|
0:31:10 | stupních toku co do něho tečou a naopak všech těch streamů které má poskytovat obojího |
---|
0:31:16 | tam může být několik nějaké ty parametry |
---|
0:31:19 | spustíme ten server potom co ever server běží spustíme ve tempem zase tomu přidám nějaké |
---|
0:31:26 | parametry a řeknu to může výstupem má být H T L tady tohleto souš je |
---|
0:31:33 | jeden s těch vstupů vtom jaké serveru on se propojí s tím server a hotovo |
---|
0:31:39 | dodává tomu eclipse rodu vstup krevního tím super takle můžu spustí několik těch jako ten |
---|
0:31:44 | pojmů a teď naopak v nějakém vašem oblíbeném přehrávači budete chtět jeden s těch streamu |
---|
0:31:50 | chytat tak napíšete délce nebo co používáte a zadáte tam tuhle adresu za má tam |
---|
0:31:56 | kde naslouchá ten server na tom portu a adresu sto jedno s těch streamů co |
---|
0:32:03 | poskytuje a vidíte video přes T P |
---|
0:32:06 | takže to je takové složitější použití streamování |
---|
0:32:11 | jestli ten si jako hráli s těmi nástroji jednoduchými příkazové řádky tak poďme se podívat |
---|
0:32:17 | jak se vlastně ten chcete mpeg použije když ho chcete začlenit do svojí aplikace |
---|
0:32:22 | takže první nestáhnou zvrátí nakonfigurovat přeloží na nebo to máte vaší distribuci už jako balíček |
---|
0:32:30 | a |
---|
0:32:31 | pro zjištění těch parametrů se máte předávat překladači na systémech to unixového typu můžete použít |
---|
0:32:37 | pokud o konflikt |
---|
0:32:39 | asi jasné na tom není co vysvětlovat a jak jsem na začátku řekl ten testem |
---|
0:32:44 | to je jenom balíček nějaký knihoven a vy musíte uvažovat kterou tu knihovnu potřebujete sice |
---|
0:32:50 | T je využít kodeky videa a nebo chcete zrušit třeba max erbem X v nějakém |
---|
0:32:56 | kontejneru vám formátu a tak dále tak podle toho si prostě tři linkuje ten a |
---|
0:33:02 | konec té vaší aplikaci nějaké ty knihovny přikládáte to normálně tam kde to máte nainstalované |
---|
0:33:10 | jo tady jsem nepoužil ten pokud o konflikt a kterou tu knihovnu použít těch vašich |
---|
0:33:16 | laviček těch vašich rastrových soubory studujete hlavičkové soubory které taktéž odpovídají těm násobíte |
---|
0:33:24 | knihoven znamená mohl bych tam napsal if a ve kodek a tady je no a |
---|
0:33:27 | ve kodek kdybych měl zájem třeba o ty kodér i dekodér videa |
---|
0:33:32 | a není to připravené na C plus takže pokud používáte C plus tak obalit tu |
---|
0:33:37 | inkluzi tady těchto souboru do toho externí C aby se vám to pak slinkováno takže |
---|
0:33:43 | C plus poznají ty identifikátory ty symboly nějakou dekoraci |
---|
0:33:48 | ale to je v céčku napsané tenhleten tady tak pozor na to |
---|
0:33:52 | a když teda ste tohle udělali na includován je správně to budete linkovat tak na |
---|
0:33:57 | začátku to programu vašeho zavoláte a ve registroval to zaregistruje všechny dostupné kodeky museli nemuseli |
---|
0:34:06 | všechno co ten frame border do zkompilován co poskytuje ad hoc tohoto místa můžete směla |
---|
0:34:12 | nula používat tady ty funkce s toho si vaši knihoven v tomhle případě zde dále |
---|
0:34:17 | forma jenom |
---|
0:34:19 | tak jak vypadá takový začátek takový jednoduchý příklad includu je pesi v tomhle případě to |
---|
0:34:26 | byl kodeky a ty kontejnerové formáty vyplave kodek byly v formát zaregistruje té všechno a |
---|
0:34:34 | už můžete volat funkce to znamená já si otevřu nějaký vstupní soubor který byl předán |
---|
0:34:40 | jako první parametr u todleto tomu mému programu |
---|
0:34:44 | a ošetřím jestli se to podařilo |
---|
0:34:48 | najdu nějaké informace to není podstatné a push si šahám na ten první tok to |
---|
0:34:53 | znamená to mohlo být audiovideo stopa jo tady si všimněte ani ne ošetřuju jestli tam |
---|
0:34:58 | existuje by správně měl ošetřit je to jenom takový příklad jak to vypadá to programování |
---|
0:35:03 | tome M P Q je to volání strašné spoustě k unk si ošetřování toho jestli |
---|
0:35:09 | ty funkce ne zcela tady prostě takové hodně nízkoúrovňové programování jako strašně moc řádků kódu |
---|
0:35:15 | napíšete proto abyste sto dostali jediný krém videa nebo byste měli ten přehrávač |
---|
0:35:21 | a můžete tomu taky pak udělat hodně těch i ale zas na druhou stranu nás |
---|
0:35:25 | to nechá šamana všechny ty interní informace jo máte rodinnému ty beránkem word já nevím |
---|
0:35:31 | von on tam napíšete přehrávač videa na tři řádky ale zase se nedostanete k tolika |
---|
0:35:36 | těmi inter mostem takže tady je to takový nízkoúrovňových frame or |
---|
0:35:41 | takže T otevření video stopy |
---|
0:35:44 | tohleto jako příklad pro že tady jestli vestou ve se je to je koupit té |
---|
0:35:49 | stopě video když jo tak s tím dalo pracoviště tak skončí |
---|
0:35:54 | tak teď když si budu chtěli napsat takový jednoduchý přehrávač tak co musím udělat na |
---|
0:36:00 | začátku musím potom co otevřu ten kontejner inicializovat nějaký ten dekodér |
---|
0:36:08 | vyjde to znamená ten kodexy alokuje nějaké informace nějaké interní datové struktury podle informací co |
---|
0:36:15 | že to má dekódovat jak veliké to je video a tak dál |
---|
0:36:20 | a potom tomu u |
---|
0:36:23 | dekodéru přidávám jednotlivé pakety které jsem obdržel sto bodem dceru a nic těchle binárních informací |
---|
0:36:30 | dekóduje dekomprimuje ty snímky já obdržíme komprimovaný snímek strážců ho třeba z obrazu na obrazovce |
---|
0:36:37 | a požádám o další a tak ale furt hážou tomu pakety amber úvod toho dekodéru |
---|
0:36:42 | snímky a na konci požádám aby uvolnil všechno co měl alokované týká se to jenom |
---|
0:36:49 | té video stopy tady tohle všechno ta přednáška je zaměřena na to vydal |
---|
0:36:53 | teď když sem obdržel oni ho honil ten dekódovaný snímek tak můžu zobrazíte na obrazovku |
---|
0:37:00 | nebo se mně můžu nějaké rabat zpracovaného |
---|
0:37:04 | k tomu potřebuju vědět jak je formátu to mi řekne ten from word |
---|
0:37:08 | takové základní formát je třeba R G V dvacet čtyři vy máte prokládaně na jednom |
---|
0:37:15 | bajtu normálně R G P za sebou složku a pixely jsou takové za sebou za |
---|
0:37:24 | každým řádkem nějaká výplní a pak následuje další řádek a je to paměť uložené odporu |
---|
0:37:29 | návrh jo |
---|
0:37:31 | pozor na tom obrácenou orientaci první je poslední řádek to je velice typické uložení snímku |
---|
0:37:38 | sto dekodéru to pravděpodobně ale dostanete v nějakém Y move něco záleží co to je |
---|
0:37:45 | můžete tam je podvzorkované ty barvonosné složky |
---|
0:37:48 | taky typické pro všechny ty tady říká se tomu framebufferu nebo jeden že máte takle |
---|
0:37:54 | uloženy tak takhle vypadá prostě ten dekomprimovaný snímek move |
---|
0:38:00 | a teď jak vypadá to jádro ta smyčka to přehrávače budu potřebovat nějaký jeden paket |
---|
0:38:06 | načtu s kontejneru jeden paket jestli eště nevíme si to příslušel P moji video vstup |
---|
0:38:12 | jestli to příslušel nějaké jiné audio stopě nebo nějakým informacím |
---|
0:38:17 | takže porovnám |
---|
0:38:19 | jestli ten paket |
---|
0:38:20 | patří do video stopě když ano |
---|
0:38:23 | požádám push inicializovaný dekodér o dekompresi jednoho paketu do té formy tohoto deko dekomprimovaného snímku |
---|
0:38:33 | a o D když je set samozřejmě nepovede teda port |
---|
0:38:37 | ale když se to povede tak to neznamená že jo mně ten snímek dál prože |
---|
0:38:42 | různé ty kompresní formáty obsahují nejenom klíčové snímky ale ní nějaké s jiné typy snímků |
---|
0:38:49 | a on může ten dekodér požírá ty snímky desítky snímků před tím než ně vůbec |
---|
0:38:56 | na výstup vy produkuje jeden dekomprimovaných takže já musím zjišťovali si právě vtom ale kroku |
---|
0:39:03 | zrovna mě vyprodukoval ten dekodér nějaký dekomprimovaný snímek když ano tak si změním jeho formát |
---|
0:39:10 | jeho velikost podle toho co s tím co dělat a třeba ho znovu uložím do |
---|
0:39:14 | jiného kontejneru anebo ho pásku na obrazovku šestý může dělat co chcu |
---|
0:39:18 | a takhle dál ta jádro té ta smyčka hlavní to přehrávače takže takle vypadá jednoduchý |
---|
0:39:25 | přehráváš toho |
---|
0:39:28 | videa |
---|
0:39:29 | a když si naopak budu psát aplikaci která využívá ten frymburk zespodu budu dolního chtět |
---|
0:39:35 | zasunout nějaký zásobený modul třeba nějaký filtr videa nebo kodek tak to bude vypadat trošku |
---|
0:39:42 | jinak budu využívat jiné části to rozhraní tohle je zrovna příklad kostry nějakého video dekodéru |
---|
0:39:50 | tedy nějaké část nějakého kodeku |
---|
0:39:53 | takže základem je vyplnění ňáké struktury a V kodek vyplním identifikátor kodeku řek můžete kodeků |
---|
0:40:02 | videa nějaké jeho názvy a vkládám tady prostě ukazatele na nějaké funkce co má za |
---|
0:40:09 | úkol inicializovat ten dekodér D inicializovat a co má za úkol dekomprimovat ten jeden snímek |
---|
0:40:17 | a tak funkce je někde v tom samém modulu jak to překládám obdrží jako parametr |
---|
0:40:23 | ukazatel na ten zkomprimovaných stoupá a ukazatel kam a uložit ten dekomprimovaný snímek tom nějakém |
---|
0:40:29 | našem formátu |
---|
0:40:31 | a provede nějaký ten svůj dekompresní algoritmus uloží to skončí a nelze komprimovaný snímek |
---|
0:40:38 | bohužel ten jaké ten tak není nijak modulární když co přidat ten můj kodek do |
---|
0:40:44 | něho musím tady ten modul tam správně přidat musím následně upravit |
---|
0:40:50 | některé části toho lipami kodeku a tím líp a ve formátu pro že při potřebu |
---|
0:40:55 | přidat mapování z nějakého for C kódů řekněme dobového jedna na tady ten náš kodek |
---|
0:41:02 | double dva jedna takže budu muset upravit zdrojové kódy jelita B kodek vybaven formát a |
---|
0:41:08 | všechno to znovu přeložit nainstalovat do systému jo není to takové jednoduché do to přidávat |
---|
0:41:14 | i zásuvné moduly |
---|
0:41:16 | takže tady vidíte nějaký přehled nějakých do funkcí s toho nejpodstatnější je prostě dekódují mi |
---|
0:41:24 | jeden video frame zakódují mi jeden video from tohle s nějakého paketu udělá dekomprimovaný snímek |
---|
0:41:30 | a tohle já přesně to opačné |
---|
0:41:33 | je to nějaké otevření toho vstupního kontejneru podle identifikátorů kodeku to najde vodní kodér dekodér |
---|
0:41:41 | nějaké pomocné funkce nějaké čtení jednoho paketu |
---|
0:41:46 | což bude odpovídat případě video stop jednomu snímku zkomprimovanému ve takle pak funkcí se musíte |
---|
0:41:52 | naučit pak si to přičtete dokumentaci do přesné použití |
---|
0:41:57 | A zdroje s který jsem vyčerpal jsou tady tyhle |
---|
0:42:03 | a |
---|
0:42:05 | teď by měla smývat ještě druhá část máte k tomu nějaké dotazy k tomu R |
---|
0:42:10 | T M P Q |
---|
0:42:13 | ano |
---|
0:42:17 | nějákej asi tenis mistně si to neznamenalo to lásko robert to se dyžtak podívejte na |
---|
0:42:23 | ty ze stránky jo otázka byla co to znamená F M P kdo by chtěl |
---|
0:42:27 | zopakoval máte eště dotaz nějaký |
---|
0:42:35 | nevím okradl výstřel to střel to pochází |
---|
0:42:39 | tady ten název mám dojem že to původně do to vás forvard tech |
---|
0:42:45 | proč to pojmenoval takle dyž to umí mnoho těch formátu pracovat těžko říct no |
---|
0:42:51 | já bych teda v rychlosti proletěl eště tu druhou část té |
---|
0:42:55 | přednášky a to je G stream R |
---|
0:42:58 | takový kterém word |
---|
0:43:02 | tedy opravdu push obsahuje ten graf filtru k sobě a kterém si tu funkcionalitu ty |
---|
0:43:07 | krabičky o propojuje té jakkoli potřebujete jo ten efektem takto ste museli pomocí nějakých funkcí |
---|
0:43:16 | přesně definované |
---|
0:43:18 | rostě pořadí používat když to tady temží stream R umožňuje vám poskládat si funkcionalitu co |
---|
0:43:26 | dělá tady ve otvíráme kameru a takhle s těch krabiček s těch elementů propojit to |
---|
0:43:33 | přesně libovolně podle vašich potře |
---|
0:43:36 | tak |
---|
0:43:37 | tady tohle bych přeskočil a teď |
---|
0:43:40 | případně číst trimrů se tady tyhle filtry nazývají elementy jeho ty přípojné body si nazývají |
---|
0:43:47 | tady |
---|
0:43:48 | a pečou mezíny nějaký data ty data mohou být jako |
---|
0:43:54 | posílá na tom té pipeline je v tom grafu filtrů dvěma takovými modely model můžete |
---|
0:44:01 | znamená že zdrojových kill která neustále produkuje T data a tlačí je do té pipeliny |
---|
0:44:07 | a ty dán následující tatry prostě přímej znáte spra pasivně to zpracovávají transformují naopak model |
---|
0:44:15 | půl je že typicky to dělá nějaký ten parseru ten mixer aktivně požaduje od zdroje |
---|
0:44:22 | dat ty data a zdroj sám o sobě nic neprodukuje jenom na požadavek pod ty |
---|
0:44:27 | data putují pak dal té pipeliny to znamená aby se ty data ty pipe ani |
---|
0:44:32 | pohybovali aby toto tou pipeline utekli tak tam musí být použit jeden s těch dvou |
---|
0:44:38 | modelů bodě zdroj tlačítky data a nebo parseru tahá ty data ten zbytek filtru už |
---|
0:44:44 | normálně příde k ústupu vyprodukuje plus výstupu tam není problém |
---|
0:44:48 | ty data mezi těmi elementy mezi těmi krabičkami se předávají tak zvaný makrech ale té |
---|
0:44:53 | prostě pole bajtů kterém je třeba komprimovaný s nimi nebo dekomprimovaný snímaným pokus audia a |
---|
0:44:59 | tak dále ale říká se tomu že se předávají bufferech |
---|
0:45:04 | a každý s těch elementů může být v jednom z několika stavu buď zastaven znamená |
---|
0:45:10 | nic nedělá pipelinu ne tečou žádná data nebo pozastaven pipeliny jsou data ale elementy zase |
---|
0:45:17 | nic nedělají anebo spuštěn a data tečou a přehrává s |
---|
0:45:21 | smyslem toho stavu pozastavený je naplnit tu pipeline daty aby následné spuštění bylo okamžité to |
---|
0:45:29 | znamená když si za pauzu je ten bod kdy startujete přehrávání tak nechcete čekat třeba |
---|
0:45:35 | půl sekundy mash po stisku tlačítka play to začne hrát tak proto je ta pipeline |
---|
0:45:40 | a udržována potom pozastaveném stavu po tady tu dobu |
---|
0:45:44 | tak teď je ten G stream netypický spíše pro gnome prože postavena digilib je odpovídá |
---|
0:45:51 | tloukl jak napovídá po unk názvu a je hodně podobný které morku direkt show který |
---|
0:45:58 | taktéž umožňuje libovolně si postavit ten váš graf filtrů |
---|
0:46:03 | a tady sou vyjmenovány nějaké ty nástroje které ty v rychlosti proberu a nějaká ta |
---|
0:46:08 | terminologie co nás pole jsou tedy zdrojový sync do kterého tečou naprosto zdrojového type byly |
---|
0:46:17 | these to sou nějaká omezení protože ne jak a každá krabička ne každý element do |
---|
0:46:23 | něho můžete prát jakékoli data tak má na tom vstupním pevnou nějaké omezení a jenom |
---|
0:46:29 | když se rozhodne ten výstupy ten soubor spec ten výstupní ten vlastně toho prvního elementu |
---|
0:46:39 | na typu dat s tím do kterého ty data tečou s tím vstupním toho druhého |
---|
0:46:45 | elementu tak teprve se to propojí tady ty dva elementy takže k tomu jsou tam |
---|
0:46:50 | ty K to byly these |
---|
0:46:51 | a jinak několik elementu může být sdruženo do nějakého koše tomu se říká B na |
---|
0:46:57 | celá pipeline tak je speciálním případem koše a co je zajímavé že tady ty balíčky |
---|
0:47:03 | všech těch ladinou všech těch elementů ty elementy jsou obsaženy pluginech jsou od vývojářů rozdělený |
---|
0:47:11 | do takového takových třech |
---|
0:47:14 | skupin podle to ve filmu hodný zlý a ošklivý |
---|
0:47:21 | tomu balíčků kladinou boot tam jsou stabilní provádění z dobrou licenci |
---|
0:47:27 | to má který jsou stabilní se špatnou kde sou nějaké licenční problémy a vtom bad |
---|
0:47:33 | sou nějaké pluginy které nejsou tak dobře otestované řekněme nestabilní |
---|
0:47:39 | tak ten takové zajímavé ty vývojáři to rozdělili |
---|
0:47:44 | tak teďka ta terminologie tou jsem vlastně řekl ještě typy nebyly these ty typy dat |
---|
0:47:49 | jsou identifikovány mají typy třeba zakódované kodekem tvorby si je takhle dekódované pak co zvukovou |
---|
0:47:58 | kartu sou přímo flouty jsou označeny takhle |
---|
0:48:01 | takže je třeba aby se shodli ty propojované elementy |
---|
0:48:06 | takle vypadá nějaká jednoduchá pipeline a kde se si otevřou nějaký kontejner vůči G vydáno |
---|
0:48:15 | z něho video audio a video a pošlou to do zvukovky |
---|
0:48:20 | a na obrazovku |
---|
0:48:23 | sestavení té pipeliny na příkazové řádce spolu slouží ten nástroj to se to |
---|
0:48:30 | a normálně případě toho jako ten dobu tady specifikujete pomocí nějaké syntaxe tu pipelinu propojuje |
---|
0:48:39 | té ty elementy pojmenovávat ty vstupní výstupní body a C dobré u toho čísly může |
---|
0:48:46 | si můžete napsat vlastní platim třeba kodek nebo filtr zkompilovat ho umístit silně kam nohou |
---|
0:48:52 | a nastavíte nějakou proměnnou a tady všechno s toho čísly muru i ten konzolový nástroj |
---|
0:49:00 | pak může použít normálně hledá tam ten váš hladin |
---|
0:49:04 | takže takovéto umožňují obyčejnému uživateli tam něco přidat |
---|
0:49:08 | S T inspect slouží šíření informací jednak o planiny |
---|
0:49:14 | a jednak o elementech těch pluginech obsažený to znamená tady to vypli je že tam |
---|
0:49:19 | jsou vtom ale planinu a lze dva elementy a za signál se soustředí ramen takle |
---|
0:49:25 | a dyž jestli nám pan informace přímo v nějakém element oni to řekne informace o |
---|
0:49:30 | těch se sou rozpadech si vede a nějaké ty parametry co přijímají |
---|
0:49:35 | a co produkují nebo naopak |
---|
0:49:40 | tak jednoduché příklady spojení dvou elementů |
---|
0:49:44 | S video se dat se pošlu to do okýnka na obrazovce zřetězí se ty filtry |
---|
0:49:49 | takovým vykřičníkem prože nemohli použít svislý jako pipe u |
---|
0:49:54 | na příkazové řádce nebo zářením filtr |
---|
0:49:58 | překlad video horizontální vertikálně push tomu předávat parametry pro |
---|
0:50:04 | přehrávač jaksi postavit přehrávač |
---|
0:50:07 | normálně použiju bůčku šplhají by na už tomu šeda moc to sestaví sám to pipeline |
---|
0:50:13 | nic |
---|
0:50:14 | a nebo použiju zdroj dát použiju nějaký koš ve kterém se sestaví dekodér a už |
---|
0:50:21 | jenom napojím na výstupu konvertor brno prostoru a pošlu to no já to okýnka na |
---|
0:50:27 | obrazovce |
---|
0:50:28 | a nebo si to postavení celé sám zdroj dát demu X hlavička dekodér video stopy |
---|
0:50:35 | konvertor barevného prostoru a teprve pošlu na obrazovku tady to poslední vidíte na kolika N |
---|
0:50:41 | vtom editoru deset editor |
---|
0:50:45 | tady je eště no ukázat deset editor a co je dobrá věc můžete si tu |
---|
0:50:50 | pipelinu se rizik serializovat dobrých sem velká a pak du ve vaší aplikaci načíst příště |
---|
0:50:56 | takhle |
---|
0:50:57 | že tady je nějaký příklad jak to udělat |
---|
0:51:00 | tak a teď zase jak tu vaší aplikaci je to stejné jako případě toho lépe |
---|
0:51:06 | tam venku na začátku zavoláte nějakej byl se to init a pak voláte jenom funkce |
---|
0:51:11 | storočí streamerů |
---|
0:51:14 | tady je taková kostra máte netriviální aplikace |
---|
0:51:19 | že ho inicializuju a vše touž to můžu spustit |
---|
0:51:23 | tady je nějaká kostra jater sestavit jednoduchou pipelinu vytvořím pipelinu vytvoříme zdroj dát zdroj by |
---|
0:51:34 | dodat vytvořím okýnko a propojím je zdroj dat z okýnkem |
---|
0:51:40 | u s tímto a probíhá přehrávání nakonec to dej mi celý jsou a hotovo |
---|
0:51:47 | tak tady tohle ty slajdy budou asi k dispozici dete stažení takže já už nebudu |
---|
0:51:53 | probírat tady ty další příklady tady máte jak si napsat zásobený modul třeba tady máte |
---|
0:51:59 | jako vytvořit smyčku ste zprávu kdo dělal pohybu tak to asi z na |
---|
0:52:04 | a tady máte nějaký přehled to by a |
---|
0:52:07 | nějaké zdroje s tady jsem čerpal doporučuju přečíst tyhle větší ručky jedna které pěknější nebo |
---|
0:52:15 | na nula a jedna tu příručku pro psaní planinu ta velice pomůže pochopit intern dosti |
---|
0:52:21 | toho jak to je skutečně polem implementované nic |
---|
0:52:26 | takže máte nějaké dotazy teď k tomu číst primeru |
---|
0:52:32 | bez dotazů |
---|
0:52:35 | tak |
---|
0:52:37 | ode mě krát všechno děkuju za pozornost |
---|