Diplomová práce Návrhy metod přehrávání videí pro webový e-learningový systém
Vypracoval: Bc. Filip Daněk Vedoucí: doc. Ing. Michal Brandejs, CSc. 2012
Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením odkazu na příslušný zdroj.
Filip Daněk V Brně, dne 5. 1. 2012
i
Poděkování Mé poděkování patří vedoucímu práce, doc. Ing. Michalovi Brandejsovi, CSc., za cenné rady a podporu v mé práci. Dále děkuji za spolupráci a pomoc členům vývojového týmu IS MU, jmenovitě RNDr. Miroslavu Křipačovi, Ph.D., Bc. Tomáši Zábojníkovi, Mgr. Tomáši Obšívačovi, RNDr. Janu Kasprzakovi a ostatním, bez jejichž pomoci a spolupráce by nemohl být systém nasazen do ostrého provozu. Děkuji také Jirku Bočkovi a ostatním členům uživatelské podpory IS MU za cenné informace o potřebách uživatelů Informačního systému a otevřenosti k diskusi. Na závěr děkuji mé manželce za podporu, povzbuzení i rady pro psaní mé diplomové práce.
ii
Shrnutí Přehrávání video souborů prostřednictvím webu je cenným nástrojem elektronické podpory výuky. Zejména pokud je přehrávání řešeno komplexním systémem, který zohledňuje otázky přístupových práv, legislativní omezení, ochranu vlastních autorských práv a maximalizuje počet uživatelů, kteří budou schopni si video soubor přehrát. Tato práce popisuje všechny aspekty vývoje systému na přehrávání video souborů a zohledňuje je při tvorbě vlastního návrhu. Návrh je cílen na potřeby a požadavky uživatelů Informačního systému Masarykovy univerzity. Autor vychází z analýzy existujících služeb, svých zkušeností a dokumentací diskutovaných formátů, technologií a software. Správnost navrhovaných postupů ověřuje testováním na prototypu. Hlavním přínosem je vznik konkrétního a komplexního návrhu systému včetně návrhů na začlenění do Informačního systému Masarykovy univerzity. Na základě výsledků práce a četných konzultací je systém v současnosti realizován. I když je návrh systému vytvářen s ohledem na začlenění do IS MU, tak vzhledem k diskusi nad různými technologiemi a nástroji je možno z práce vycházet i při přípravě návrhu pro jiná prostředí, než je prostředí Masarykovy univerzity.
Klíčová slova Informační systém Masarykovy univerzity, e-learning, video, video online, video formát, konverze, FFmpeg, Adobe Flash, MP4.
iii
Obsah 1
Úvod do problematiky .............................................................................................................................................. 1 1.1
Jak se problém řeší ve světě a v České republice ......................................................................................................4 Analýza současného stavu...................................................................................................................................................5 Důvody pro zavedení vlastního systému na přehrávání videí ............................................................................6 Aspekty autorského zákona ...............................................................................................................................................6 2.4.1 Ochrana vlastních autorských děl vyučujících a Masarykovy univerzity ................................... 7 2.4.2 Dodržování autorského zákona při využívání cizích autorských děl ........................................... 7 2.4.3 Závěr ...................................................................................................................................................................... 8 Vymezení cílů návrhu systému .........................................................................................................................................8 Rozdělení návrhu systému do fází ...................................................................................................................................9
Základní pojmy .........................................................................................................................................................................2 Download vs. Progressive download vs. Streaming .............................................................................................. 2 Video kodek ........................................................................................................................................................................... 3 Video kontejner .................................................................................................................................................................... 3 Poměr stran videa ............................................................................................................................................................... 3 Způsob psaní textu .................................................................................................................................................................3
Formát videa .......................................................................................................................................................................... 10 3.1.1 On2 VP6 ............................................................................................................................................................. 10 3.1.2 H.264................................................................................................................................................................... 11 3.1.3 Theora ................................................................................................................................................................ 11 3.1.4 WebM/VP8 ....................................................................................................................................................... 12 3.1.5 Windows media video .................................................................................................................................. 12 3.1.7 Shrnutí a výběr formátu .............................................................................................................................. 12 Výběr technologie pro přehrávání videí .................................................................................................................... 13 3.2.1 Adobe Flash ...................................................................................................................................................... 13 3.2.2 Microsoft Silverlight ..................................................................................................................................... 14 3.2.3 HTML5................................................................................................................................................................ 14 3.2.4 Vyhodnocení .................................................................................................................................................... 14 Software na konverzi videa ............................................................................................................................................. 15 3.3.1 Výběr kandidátů ............................................................................................................................................. 15 3.3.2 Výběr vhodného software na základě testování ................................................................................ 16 Konverze videí ....................................................................................................................................................................... 18 3.4.1 Vlastnosti videa nastavované při konverzi .......................................................................................... 18 3.4.2 Skript pro generování příkazů pro konverzi videí ............................................................................ 20 3.4.3 Testování výsledků konverze na prototypu ......................................................................................... 20
Návrh a realizace přehrávače ............................................................................................................................. 22 4.1 4.2
Princip zabezpečení videí uložených v Informačním systému MU ................................................................ 22 Návrh funkcionality přehrávače .................................................................................................................................... 23
iv
4.3
4.4
5
4.2.1 Zjištění současných trendů v oblasti internetových přehrávačů ................................................. 23 4.2.2 Funkcionalita vycházející z průzkumu přehrávačů ......................................................................... 25 4.2.3 Funkcionalita vycházející z přehrávače Servisního střediska ..................................................... 25 4.2.4 Funkcionalita zajišťující spolupráci s Informačním systémem MU ........................................... 26 Návrh vzhledu přehrávače ............................................................................................................................................... 27 4.3.1 Zjištění požadavků na vzhled .................................................................................................................... 27 4.3.2 Tvorba návrhu vzhledu přehrávače ....................................................................................................... 28 4.3.4 Finalizace vzhledu přehrávače................................................................................................................. 30 Realizace přehrávače .......................................................................................................................................................... 31 4.4.1 Použité objekty, základní nastavení a sestavení rozvržení prvků .............................................. 31 4.4.2 Realizace funkcionality vycházející z průzkumu přehrávačů ...................................................... 33 4.4.3 Realizace funkcionality vycházející z přehrávače Servisního střediska .................................. 35 4.4.4 Realizace zabezpečení a funkcionality zajišťující spolupráci s IS MU ...................................... 35
Návrh začlenění do IS MU ..................................................................................................................................... 38 5.1 5.2
5.3
5.4
Nabízená funkcionalita ...................................................................................................................................................... 38 HTML kód pro zobrazení přehrávače s videem ...................................................................................................... 38 5.2.1 Varianta A ........................................................................................................................................................ 38 5.2.2 Varianta B ........................................................................................................................................................ 39 5.2.3 Shrnutí ............................................................................................................................................................... 40 Výběr vhodných agend ...................................................................................................................................................... 40 5.3.1 Studijní materiály .......................................................................................................................................... 41 5.3.2 Odpovědníky .................................................................................................................................................... 41 5.3.3 Interaktivní osnovy ....................................................................................................................................... 41 5.3.4 Dril ....................................................................................................................................................................... 42 5.3.5 Pošta ................................................................................................................................................................... 42 5.3.6 Diskusní fórum ................................................................................................................................................ 42 5.3.7 Setkávání a spolužáci ................................................................................................................................... 42 5.3.8 Absolventi ......................................................................................................................................................... 43 5.3.9 Můj web ............................................................................................................................................................. 43 5.3.10 Shrnutí ............................................................................................................................................................... 43 Návrh uživatelského rozhraní ........................................................................................................................................ 43 5.4.1 Správce souborů ............................................................................................................................................. 44 5.4.2 Odpovědníky .................................................................................................................................................... 48 5.4.3 Interaktivní osnovy ....................................................................................................................................... 50 5.4.4 Náš web v agendě Kruhy ............................................................................................................................. 51
Literatura.................................................................................................................................................................... 54 Seznam používaného software .................................................................................................................................................. 58 Seznam obrázků ............................................................................................................................................................................... 58 Seznam tabulek ................................................................................................................................................................................. 59 Seznam zkratek ................................................................................................................................................................................. 59
Příloha A .............................................................................................................................................................................. 61 Příloha B .............................................................................................................................................................................. 71 Příloha C .............................................................................................................................................................................. 72 Příloha D .............................................................................................................................................................................. 73 Příloha E .............................................................................................................................................................................. 75 Příloha F .............................................................................................................................................................................. 78 Příloha G .............................................................................................................................................................................. 80 Příloha H.............................................................................................................................................................................. 83 Příloha I ............................................................................................................................................................................... 84
vi
1
Úvod do problematiky
Video je pro mnoho oborů na Masarykově univerzitě důležitým prvkem výuky. Díky videonahrávkám lze studentům prezentovat postupy, které jsou jen těžko znázornitelné jiným způsobem, případně je složitá či nemožná jejich opakovatelnost. Záznamy studentských výstupů jsou nezbytnou součástí sebereflexe. Studenti si mohou postupy přehrávat i opakovaně a distančně. Proto se jedná se o důležitou součást e-learningu. Vývoj technologií snižuje cenu záznamové techniky a zpřístupňuje tak možnosti tvorby videa mezi stále větší skupinu uživatelů. Zatím se však videonahrávky ještě nestaly plnohodnotným prvkem výuky, důvodem je obtížnost začlenění do studijních materiálů pro laika. Vyučující musí využívat projektů a omezených služeb středisek a techniků, což v dlouhodobém výhledu není udržitelné řešení. To potvrzují i četné požadavky na systémovou podporu zpřístupňování videí online nejen od vyučujících Masarykovy univerzity, ale i od vyučujících škol pronajímajících si Informační systém Masarykovy univerzity1. Řešení pomocí externích služeb např. YouTube.com nebo Stream.cz není v univerzitním prostředí použitelné. Vyučující potřebují mít možnosti jednoduchého a přesného vymezení přístupových práv a to nejen z pohledu zpřístupnění daným osobám, ale i z pohledu zpřístupnění určitém v čase. Typicky se jedná o elektronické zkoušení studentů daného předmětu, kdy vyučující potřebuje zpřístupnit test pouze studentům předmětu a pouze v danou dobu. Vyučující také potřebuje zamezit zkopírování videa, tedy části zadání testu. Cílem této práce je na základě studia a vyhodnocení dostupných možností navrhnout systém na přehrávání videí tak, aby řešil požadavky a potřeby uživatelů akademického prostředí. Navržený systém bude implementován do Informačního systému Masarykovy univerzity, a proto musí být plně přizpůsoben jeho potřebám a omezením. Systém bude jednou z mnoha služeb poskytovaných IS MU, je tedy nezbytné, aby návrh respektoval omezené finanční prostředky, které lze pro implementaci poskytnout. Vývoj by měl znamenat minimální finanční zátěž, provoz by měl být v podstatě bezúdržbový a provozní náklady by neměly přesahovat výši nákladů spojených se zvýšenou spotřebou energie na strojích obsluhující navržený systém. Při navrhování i samotné realizaci systému je základem úzká spolupráce s vývojáři IS MU, aby byla zajištěná maximální míra přizpůsobení Informačnímu systému MU. Nedílnou součástí návrhu systému je analýza z pohledu autorského zákona, jejíž součástí je i řešení zabezpečení autorských děl vyučujících proti zneužití. Následující kapitoly budou věnovány jednotlivým aspektům návrhu a realizace systému pro přehrávání videí.
Informační systém Masarykovy univerzity je formou outsourcingu provozován i na jiných vysokých školách a univerzitách v České republice [1] 1
1
1.1
Základní pojmy
V této části vysvětluji pojmy, se kterými dále v práci pracuji. Některé mnou uváděné pojmy se mohou zdát zřejmé, ale ze své praxe jsem zjistil, že uživatelé si je vykládají nepřesným způsobem, což by v kontextu mé práce mohlo způsobit nejasnosti.
Download vs. Progressive download vs. Streaming Popis těchto tří hlavních způsobů přenosu videa mezi serverem a klientem vychází z článku Video Learning Guide for Flash: Progressive and streaming video [2]. Pojem download je uveden zejména proto, aby byly zdůrazněny rozdíly mezi jednotlivými způsoby přenosu videa. Uživatel, který si chce tímto způsobem přehrát video, tak si video nejprve stáhne na disk a poté jej otevře libovolným přehrávačem videa. Hlavní nevýhoda z pohledu autora videa je, že v podstatě ztrácí kontrolu nad video souborem, uživatel má k dispozici celý soubor a může jej například dále šířit. Hlavní výhodou je možnost práce offline. Hlavní nevýhodu metody download částečně odstraňuje progressive download. Jedná se o způsob přenosu video souboru mezi serverem a uživatelem takový, že video je načítáno na pozadí do vyrovnávací paměti přehrávače a v určitém okamžiku je možné začít video přehrávat, i když ještě není načtený celý soubor. V danou chvíli je uživateli dostupná ta část videa, která je již načtená v paměti. Pro tento způsob je potřebné pouze využít vhodný formát videa a přehrávač, který umí s touto metodou pracovat. Hlavní výhodou je, že uživatel nemusí čekat na stažení celého souboru, aby mohl video začít přehrávat. Nevýhodou je, že pro přehrání poslední části videa je nutné přenést ze serveru k uživateli celý video soubor – tzn., že v konečném důsledku musí uživatel načíst celý video soubor. Progressive download je někdy mylně, či v rámci zjednodušení, označována jako streaming. Poslední variantou je streaming a odstraňuje zmíněnou nevýhodu progressive download. Při tomto způsobu přenosu videa se otevírá obousměrná komunikace mezi přehrávačem a serverem. K uživateli je doručována pouze ta část videa, kterou požaduje. Server může na základě informací od klienta optimalizovat přenos, např. tím, že uživatelům s pomalejším připojením poskytne video v nižší kvalitě. Význam tohoto způsobu roste zejména s velikostí videa – například dvouhodinová přednáška, kdy student potřebuje vidět pouze látku probíranou v posledních 15 minutách. Nevýhodou jsou však výrazně vyšší nároky na server a to jak z pohledu specializovaného software, tak z pohledu výkonu. Jedná se tak o nejdražší variantu. Příklad: student požaduje zhlédnutí učiva probíraného posledních 15 minut dvouhodinové přednášky. Při použití metody download student čeká na stažení celého souboru, poté si může přednášku prohlédnout. Při použití metody progressive download začne přehrávač přehrávat video od začátku, student ale musí čekat, než se načte prvních 1:45, poté vidí požadovanou část. K požadované části se dostane o něco dříve, než v případě metody download. U metody streaming se studentovi začne bez prodlení přehrávat video přesně od požadované části. Reálně je mezi studentem a serverem přeneseno jen posledních 15 minut záznamu. Jedná se tedy o nejefektivnější způsob.
2
Video kodek Kodek je zkrácené označení pro kodér-dekodér (z anglického codec, coder-decoder) [3], jedná se o program umožňující kódovat a dekódovat video data, obvykle za účelem snížení velikosti výsledného souboru. Data jsou kódována do určitého formátu (např. H.264, WebM, WMV).
Video kontejner Video kontejner popisuje strukturu souboru, ve kterém je uloženo více druhů různého obsahu (pro video typicky audio a video stopa). Popisuje vztah mezi obsahem (např. jak synchronizovat zvuk s obrazem) a jaký audio a video kodek má být použit pro přehrání [4]. Příkladem video kontejneru je MP4, AVI, ASF a další.
Poměr stran videa V počítačích je jakýkoli obraz složen z pixelů, které mají čtvercový tvar. To znamená, že poměr šířky a výšky udávané v pixelech odpovídá poměru šířky a výšky skutečně zobrazeného obrazu. U televizního standardu PAL se pro uložení obrazu používají pixely obdélníkové. To znamená, že poměr stran udávaného rozlišení neodpovídá poměru stran skutečně zobrazeného obrazu. V případě zobrazování na zařízeních (např. monitory počítačů), které obdélníkové pixely nepodporují, je nutné provést přepočítání obrazu na čtvercové pixely. Poměr stran videa (Display aspect ratio, DAR) udává poměr mezi šířkou a výškou skutečně zobrazeného videa a je uložen spolu s ostatními informacemi o videu. Některé přehrávače videí tuto vlastnost respektují a automaticky provádí korekci rozlišení, aby nedošlo při přehrávání k deformaci obrazu.
1.2
Způsob psaní textu
Text je obvyklým způsobem strukturován a číslován. Citace jsou uváděny v odděleném zúženém odstavci s označením zdroje. Kurzíva v textu slouží pro vyznačení odborných termínů, použita je pouze pro první označení daného termínu. Dále v textu z důvodu přehlednosti a dobré čitelnosti je od použití kurzívy v dříve představených pojmech upuštěno. Části zdrojového kódu jsou psány v rámečcích neproporciálním písmem. Syntaxe odpovídá jazyku, ve kterém je kód psaný, včetně psaní komentářů. Zvolená barevnost písma vychází z barevnosti písma v programech, ve kterém byl kód psán. Jedná se o programy Adobe Flash CS3.3 Professional pro zdrojové kódy jazyka ActionScript a Notepad2 pro ostatní. V některých případech byla z důvodu přehlednosti kódu barevnost upravena.
Obrazový materiál, tabulky a části zdrojových kódů v textu i přílohách jsou zpracovány autorem textu, pokud není uvedeno jinak.
3
2
Analýza problému
Následující kapitola bude věnována otázce, jak se přehrávání videí řeší na jiných serverech, jak se řeší v Informačním systému Masarykovy univerzity nyní a jaké jsou požadavky na nový systém.
2.1
Jak se problém řeší ve světě a v České republice
V úvodu byl zmíněn světový server YouTube.com. Tento server obsahuje obrovské množství videí, které vkládají jak samotní uživatelé, tak i společnosti. Vytváří se dvě roviny, rovina uživatelských videí a rovina oficiálních kanálů. Uživatelé nahrávají svá videa přes rozhraní v běžných formátech2, server se postará o jejich převod, nabídne výběr snímků z videa pro náhled a obsahuje i další nastavení, dokonce i editaci videa. Video je posléze uživatelům nabízeno v několika kvalitativních úrovních (v závislosti na kvalitě zdroje) pomocí technologie Flash. Prezentovaná videa jsou formátu MP4, F4V, nebo FLV. Pro přenos videa k uživateli je využíváno metody streaming. Jedná se o nejpropracovanější systém pro sdílení, se kterým jsem se setkal. Podobným serverem je Vimeo.com [5], služba funguje podobně jako YouTube.com, uživatelé mohou vkládat videa v mnoha formátech3. Videa jsou konvertována do MP4 formátu a uživatelům zpřístupňována pomocí technologie Flash. Hlavním rozdílem je, že Vimeo.com pro přenos videa k uživateli používá metodu progressive download. V České republice působí server Stream.cz, který využívá metodu streaming, ovšem nebylo tomu tak vždy. V době, kdy v roce 2006 Stream.cz začínal [8], tak přenášel videa k uživatelům pomocí progressive download. Uživatelé zde mohou nahrávat svá videa v mnoha formátech a server se sám postará o jejich převod do formátu FLV, nebo MP4. Videa jsou přehrávána technologií Flash. YouTube.com, Vimeo.com i Stream.cz sami spravují videa a nabízejí službu správy videí ostatním uživatelům a společnostem. Příkladem společnosti využívající takovou službu je televizní společnost FTV Prima, spol. s r.o. Televize Prima upustila od používání vlastní služby pro zveřejňování svých pořadů na internetu a v roce 2008 [9] uzavřela spolupráci se společností provozující Stream.cz. Nyní plně využívá jejich služeb. V prostředí českých vysokých škol a univerzit se problém přehrávání videí také řeší. Žádná škola však zatím nemá systém, který by tuto problematiku řešil komplexně. Na školách řeší vyučující přehrávání videí individuálně, případně jednotlivé fakulty disponují některými systémy na streaming videí, ale jen pro určitou skupinu videí – obvykle přednášky. Příkladem může být Ostravská univerzita v Ostravě [10], nebo Technická univerzita v Liberci [11]. Obě nabízí studentům streaming přednášek pomocí LX Serveru. Videa jsou formátu MP4 a uživatelům pre-
zentovány technologií Silverlight. Dle autorů příspěvku Cyrila Klimeše a Pavla Smolky z Ostravské univerzity [10] se jedná o nákladné řešení.
2.2
Analýza současného stavu
Uživatele prezentující videa v rámci Masarykovy univerzity lze rozdělit do tří skupin podle metody, kterou pro prezentaci videí používají. Většina uživatelů zpřístupňujících videa jsou vyučující, či jejich pomocníci a proto pro účely této podkapitoly budou označováni jako vyučující. Uživatelé, kteří si videa přehrávají, budou označováni jako studenti. První skupina První skupinu tvoří vyučující, kteří svá videa vloží do Informačního systému a následně studentům poskytnou odkaz ke stažení. Pro vyučující je tento způsob nejjednodušší. Častým problémem, se kterým se vyučující setkávají, jsou stížnosti studentů, že nemohou videa přehrát. To je způsobeno tím, že video soubory jsou v různých formátech a tedy pro každé video je potřeba jiný video kodek. Druhá skupina Druhá skupina vyučujících zpřístupňuje svá videa pomocí metody progressive download. Tato skupina se dále dělí na dvě podskupiny – vyučující využívající služeb středisek a vyučující řešící situaci svépomoci. První podskupina se při řešení otázky zpřístupnění videí studentům obrátila na některé ze středisek, které poskytují pomoc se zpracováním videí. Na Masarykově univerzitě například působí celouniverzitní pracoviště Servisní středisko pro e-learning na MU [12], na Lékařské fakultě se vyučující mohou obracet na Centrum výpočetní techniky LF [13], vyučující Fakulty sportovních studií na Oddělení informačních technologií [14]. S výsledky práce středisek jsou vyučující spokojeni. Střediska však nejsou primárně zaměřena na pomoc vyučujícím s prezentací videí, ale nabízejí větší škálu služeb. Jejich kapacity jsou omezené a vzniká tak prodleva mezi zadáním a realizací, v čemž vidí vyučující největší nevýhodu. Vyučující řešící situaci svépomoci využívají svých zkušeností, případně jim pomáhají specializované návody a pomůcky – například návod zveřejněný na Elportále, serveru o e-learningu na Masarykově univerzitě, konkrétně v části „Nástroje pro výuková multimédia“. Tato podskupina se nejčastěji potýká s problémem nedostupnosti vhodného software, či s problémy s kvalitou výsledných videí způsobených neznalostí při nastavení programů při konverzi. Výhodou je soběstačnost. Do této skupiny jsou řazeni i vyučující, kteří otázku prezentace videí řeší v rámci řešení projektů, kdy mají pro technické řešení vyhrazené finanční prostředky a obvykle si platí technika, který zpracování videí řeší. Do skupiny jsou zařazeni proto, že zejména v případech, kdy projekt není primárně zaměřen na zpracování videí, řeší stejné problémy. Třetí skupina Poslední skupinou jsou vyučující, kteří využívají metody streaming. Vzhledem k tomu, že na Masarykově univerzitě není vyučujícím k dispozici streamovací server, tak se jedná a vyučující využívající veřejně dostupných služeb mimo MU – například YouTube.com, či Stream.cz. Jejich motivací není primárně streaming videa, ale obecně jednoduchost použití. To znamená, že vyučující libovolné video nahraje například na YouTube.com a okamžitě získává odkaz, který 5
zpřístupní studentům. Hlavní nevýhodou je, že služby mimo MU nabízejí jen omezené možnosti nastavení přístupových práv, je tak téměř nemožné nastavit právo pro čtení pouze studentům daného předmětu.
2.3
Důvody pro zavedení vlastního systému na přehrávání videí
Z analýzy současného stavu na MU a nastíněných výhod a nevýhod usuzuji, že pro uživatele by bylo nejpřínosnější, kdyby systém na přehrávání videí z pohledu uživatele pracoval podobně jako veřejně dostupné služby (YouTube.com, Stream.cz, Vimeo.com, …) a zároveň umožňoval dostatečně jemné nastavení přístupových práv napojené na univerzitní systém. Existují dvě možnosti, jak toho docílit. První je propojit univerzitní systém s existující službou a druhou možností je vytvoření vlastního systému. Propojení s existující službou přináší velkou výhodu v tom, že je dopředu přesně známo, jak se služba bude chovat, uživatelé ji znají, vývojáři mají odladěné chyby. Nejdůležitější nevýhodu vidím ve finanční stránce. Jedná se totiž v podstatě o pronájem, přičemž cenou mohou být peníze, nebo výměnný obchod (obvykle reklama). Pro návrh systému pro přehrávání videí nemohu počítat s pravidelnými náklady na pronájem a z etických důvodů není možné využít výměnného obchodu, reklama je na akademické půdě nevhodná. Z důvodu finanční stránky je propojení s existující službou vyhodnoceno jako nevhodné. Pro vytvoření vlastního systému by v optimálním případě bylo využití know-how existujícího a fungujícího systému. Problémem je, že společnosti provozující systémy na přehrávání videí si podrobnosti ke svým systémům chrání jako obchodní tajemství. Možnost, jak získat již hotové řešení, je jeho nákup od specializovaných společností, což je finančně nákladné. Zbývá tedy navrhnout a vytvořit vlastní systém postavený na volně dostupných technologiích. Výhodou takového systému je maximální míra přizpůsobení univerzitním potřebám, nevýhodou pak nutnost ladění chyb. Při zhodnocení výhod i nevýhod jednotlivých způsobů a vzetí do úvahy dostupné finanční možnosti byla vyhodnocena jako nejvhodnější varianta vytvoření vlastního systému na přehrávání videí.
2.4
Aspekty autorského zákona
Problematika autorského zákona je velice složitá a na konkrétní věci se právní názory různých právníků často liší. Masarykova univerzita má vlastní Právní odbor [15], který zastupuje univerzitu v otázkách práva. Proto je nutné brát v úvahu jako závazný právní názor vyjádření Právního odboru Masarykovy univerzity a v případě nejasností situaci konzultovat s jeho pracovníky. Dále jsou uvedeny základní myšlenky, které vycházejí ze zákona 121/2000 Sb. autorský zákon a také z konzultací s Právním odborem Masarykovy univerzity. Pro návrh systému v této práci jsou důležité důsledky dvou pohledů na aspekty autorského zákona. Z jednoho pohledu se jedná o ochranu vlastních autorských děl vyučujících a Masarykovy univerzity. Z druhého pohledu jde o dodržování autorského zákona při využívání celých nebo částí cizích autorských děl charakteristických pro univerzitní prostředí.
6
2.4.1 Ochrana vlastních autorských děl vyučujících a Masarykovy univerzity Z pohledu autorského zákona vzniká autorské právo vznikem díla, právo je nepřevoditelné a autorství se nelze vzdát. Autorský zákon tedy automaticky chrání všechna díla, jedná se o základní ochranu spoléhající se na dodržování autorského zákona dalšími stranami. Kdokoli splňující zákonné podmínky může dílo legálně využívat, vytvářet si rozmnoženiny pro vlastní potřebu. Dílo, například výukové video, však samo o sobě nemá žádnou efektivní ochranu proti zneužití, proto autoři – vyučující – požadují od navrhovaného systému zvýšenou ochranu svých materiálů. Informační systém aktuálně poskytuje ochranu systémem přístupových práv, kdy vyučující může omezit přístup pouze na určitou skupinu uživatelů, např. studenty daného předmětu. Prostřednictvím omezení práv se k souboru, v případě této práce video souboru, dostanou pouze studenti daného předmětu, čímž se výrazně sníží riziko zneužití díla. Studenti však v současnosti mají stále možnost vytvořit rozmnoženinu díla tím, že si video z daného umístění legálně stáhnou. Následně záleží pouze na svědomí studenta, zda s dílem bude nakládat v mezích zákona, tedy že video využije výhradně ke své osobní potřebě a nebude jej dále šířit. Proto je jedním z požadavků na návrh systému i možnost zamezit stažení video souboru na disk počítače. Důležitým faktem je, že plná ochrana proti zneužití video záznamů je prakticky nerealizovatelná. Vždy když je video soubor nějakým způsobem zpřístupněn uživateli, tak uživatel má, byť jen se specializovaným zařízením, možnost video zkopírovat. Záměrem navrhovaného systému na přehrávání videí je vytvoření takových překážek, aby byla pravděpodobnost zkopírování či jiného zneužití co nejmenší.
2.4.2 Dodržování autorského zákona při využívání cizích autorských děl Vyučující smí při výuce využít část, nebo i celé autorské dílo jiné osoby. Tuto možnost mu poskytuje přímo autorský zákon. Předpokladem k užití díla při výuce je souhlas autora, uzavření licence s autorem díla nebo splnění podmínek zákonných licencí. Očekává se, že vyučující nabyl dané dílo zákonným způsobem. Tato možnost užití cizích děl ve výuce klade další požadavky na navrhovaný systém, konkrétněji budou popsány níže. Souhlas autora a uzavření licence Nejspolehlivější způsob z pohledu dodržení autorského zákona je mít při využívání cizího autorského díla souhlas autora díla, nebo s ním mít uzavřenu licenční smlouvu. I v takovém případě je však nutné dbát na ochranu autorských práv. Z tohoto důvodu je nezbytné zabezpečit dílo proti zneužití, což obnáší zejména zamezení možnosti dalšího šíření díla. Důraz na navrhovaný systém je tak i v tomto případě kladen na zamezení možnosti stažení video souboru uživatelem na disk počítače. Zákonné licence Jedná se o licence vymezené v § 31 Citace a § 37 Knihovní licence zákona č. 121/2000 Sb. autorský zákon. Licence určují specifické podmínky, při jejichž dodržení lze bezúplatně a bez souhlasu autora užít výňatky i celá autorská díla, aniž by došlo k poškození cizích autorských práv. I v tomto případě je nezbytné v navrhovaném systému zabezpečit užité dílo či jeho část proti zneužití, to znamená omezit přístupová práva a zabránit ve stažení souboru. 7
Obvyklým problémem při využívání zákonných licencí pro zveřejňování cizích autorských děl, je nabytí daného díla. Aby bylo možné dílo, nebo jeho část využít, je nutné získat jeho rozmnoženinu legální cestou. Zákon sice umožňuje zhotovit kopii díla, ale jen takového díla, které není proti zkopírování chráněno. V případě video souborů to v praxi znamená, že uživatel při stažení video souboru (tedy zhotovení rozmnoženiny) nesmí překonat žádné překážky, které mu ve stažení bránily. Pokud tedy na stránce s video souborem není přímý odkaz stáhnout video apod., tak uživatel video nesmí stáhnout, byť mu stažení souboru nečiní problém. Zároveň nesmí pro stažení souboru využít prostředků třetích stran (např. specializované programy), byť v těchto programech tlačítko stáhnout je, pokud se nejedná o autorem povolený způsob stažení video souboru. Popsaný problém zároveň poskytuje návod, jak v rámci navrhovaného systému legislativně zabezpečit video soubory proti zneužití. Postačí, pokud navržený systém neposkytne uživateli odkaz na stažení videa a bude implementovat překážky, které budou ve stažení souboru bránit. Pokud i přes implementované překážky uživatel video soubor zkopíruje, poruší zákon a stává se právně postihnutelným.
2.4.3 Závěr Z popsaných aspektů vyplývá potřeba zanesení jemného nastavení přístupových práv do navrhovaného systému na přehrávání video souborů. To znamená, že pro každý video soubor musí být majiteli souboru umožněno přesně specifikovat, kdo smí video soubor přehrát a kdo smí video soubor stáhnout. Informační systém Masarykovy univerzity aktuálně implementuje nastavení přístupových práv a s tím související zabezpečení proti neoprávněnému přístupu. Nyní však neumožňuje rozlišit mezi přehráním a stažením video souboru, to bude součástí navrhovaného systému na přehrávání videí.
2.5
Vymezení cílů návrhu systému
Hlavním cílem navrhovaného systému je usnadnění zpřístupňování videí pro uživatele. Navržený systém by měl být pro uživatele intuitivní a musí spolupracovat s e-learningovou agendou IS MU. Vedlejším cílem je řešit otázku zabezpečení videí a to jednak zabezpečení proti stažení, což souvisí s otázkou autorských práv, a jednak zabezpečení v rámci elektronických testů, tedy aby se studenti nemohli dostat k videu dříve než v rámci testu. Princip fungování systému Uživatel nahraje video do IS MU v libovolném formátu, video označí jako video určené přehrávání. Systém označené video automaticky konvertuje do vhodného formátu a posléze uživateli nabídne možnost přehrát či sdílet video. Přehrát video spustí přehrávání videa přímo v prohlížeči, odkaz sdílet nabídne přímý odkaz na video a kód pro vložení do jiných materiálů uživatele, tzv. embed. Video nepůjde běžnými prostředky stáhnout. Přehrát video smí jen uživatel, který bude mít dostatečná přístupová práva. Přehrávač videa bude umět pracovat jak s autentizovaným, tak neautentizovaným videem. Technologie použitá pro přehrávání videí zajistí co největší pravděpodobnost, že se video libovolnému uživateli přehraje. 8
2.6
Rozdělení návrhu systému do fází
Samotný návrh a řešení problému je rozdělen do 3 fází, které odpovídají následujícím třem kapitolám. První fáze popisuje „Výběr vhodného formátu videa“, ve které je na základě průzkumu dostupných formátu vybrán nejvhodnější formát, následně je vybrán vhodný nástroj pro konverzi do vybraného formátu a nakonec je celý postup otestován. Výstupem jsou podklady (pseudokód) pro realizaci programu, který s použitím vybraného nástroje bude automatizovaně konvertovat videa do vybraného formátu. Následující kapitola „Návrh a realizace přehrávače“ obsahuje popis tvorby grafického návrhu a realizace přehrávače. Při realizaci proběhly konzultace s grafikem a vývojáři IS MU, čímž byla zajištěna patřičná spolupráce přehrávače s IS MU. Výstupem této fáze je plně funkční přehrávač, který se využívá při přehrávání video souborů v IS MU. Zdrojové kódy a přesný popis zabezpečení videí zůstanou z důvodů zachování bezpečnosti a obchodního tajemství utajeny. Poslední fáze „Návrh začlenění do IS MU“ popisuje vytvoření návrhů rozhraní, které uživatelům zpřístupňují funkce spojené se systémem na přehrávání videí. Výstupem jsou návrhy obrazovek konzultované s pracovníky uživatelské podpory, grafikem a vývojáři Informačního systému MU.
9
3
Výběr vhodného formátu videa
S výběrem vhodného formátu videa souvisí i výběr vhodného software pro konverzi do vybraného formátu a určení technologie použité pro přehrávání videí.
3.1
Formát videa
Na formát videa lze pohlížet dvěma způsoby. Prvním pohledem nahlížíme na formát videa jako na formát celého video souboru, který se dále dělí na obrazovou a zvukovou část. Z druhého pohledu je za formát videa považována jen obrazová část, ke které přidáváme zvukovou část, obojí dohromady tvoří video soubor. V této kapitole je na formát videa pohlíženo druhým způsobem. Zvukovou část (formát audia) přímo určuje zvolený formát videa a technologie použitá pro přehrávání (Tabulka 3.1), proto není formát audia podrobně rozebírán. Pro výběr formátu videa bylo na základě zkušeností a možností přehrávání v rámci technologií Flash, Silverlight a HTML5 (viz kapitola 3.2) vybráno pět kandidátů: On2 VP6, H.264, Theora, WebM/VP8, Windows media video. Následující podkapitoly jsou věnovány jednotlivým formátům, včetně uvedení výhod a nevýhod podstatných pro návrh systému. Nakonec v podkapitole 3.1.7 je na základě uvedených výhod a nevýhod vybrán nejvhodnější formát.
3.1.1 On2 VP6 Formát On2 VP6 byl v roce 2007 primárním kodekem [16] pro kódování videí s následným použitím technologie Flash pro přehrávání. V současnosti společnosti, které využívaly formát On2 VP6, postupně přecházejí na formát H.264. Například Youtube.com, Stream.cz. Na Masarykově univerzitě formát On2 VP6 od roku 2007 využívá Servisní středisko pro e-learning a postupně se použití v rámci MU rozšířilo. V současnosti se jedná o nejrozšířenější formát videa v rámci e-learningových materiálů4 na MU. Pro přehrání formátu On2 VP6 na webu je nutné využít technologie Flash, s čímž souvisí nutnost nainstalování zásuvného modulu prohlížeče Adobe Flash Player.
Mezi e-learningové materiály jsou řazeny ucelé publikace, procvičovací testy, osnovy předmětů, které využívají progressive download, nebo streaming. Mezi e-learningové materiály nejsou řazeny takové publikace, které obsahují pouze videa ke stažení – typicky záznamy přednášek. 4
10
Výhodou On2 VP6 je rozšířenost jeho použití na MU. Nevýhody jsou dvě. První nevýhodou je nutnost použití speciálního komerčního software5 pro konverzi videí do tohoto formátu. Druhou nevýhodou je, že tento formát lze obecně přehrát pouze specializovaným přehrávačem. Videa v tomto formátu tak lze nabízet pouze k přehrání na webu, nikoli ke stažení, a to použitím výhradně technologie Flash.
3.1.2 H.264 Jedná se o rozšířený formát pro komprimaci videa, který byl v roce 2003 uznán jako ISO/IEC standard [17] a zároveň standard ITU-T [18]. Je používán jako jeden z formátů pro Bluray disky, používá jej server YouTube pro videa ve vysokém rozlišení. Některé video kamery zaznamenávají video v tomto formátu. Na Masarykově univerzitě se formát H.264 používá pro záznamy přednášek [19]. Existuje široká škála komerčních i volně šiřitelných nástrojů, které zvládají konverzi videí do H.264. Příkladem může být FFmpeg šířený pod licencí GPL [20]. Dříve se jednalo o licencovaný formát, pro který platila výjimka, která osvobozovala od licenčních poplatků. Výjimka platila do roku 2015, po té by však každý, kdo by chtěl používat formát H.264, musel zaplatit licenční poplatek. V roce 2010 společnost MPEG LA, LLC oznámila, že pro internetové video, které je pro koncového uživatele zdarma, bude osvobozeno od licenčního poplatku navždy [21]. Výhodou je široká podpora napříč různými technologiemi pro přehrávání videa na webu. Jedná se například o podporu v technologiích Adobe Flash, Microsoft Silverlight i značkovacím jazyce HTML5. Při procházení vlastností a možností formátu H..264 nebyly nalezeny žádné nevýhody, které by ovlivňovaly návrh systému na přehrávání videí.
3.1.3 Theora Dalším kandidátem je video formát Theora. První zmínky o formátu Theora byly už v roce 2002, plně vydán byl však až v roce 2008. Dle oficiálních stránek [22] se jedná o formát vhodný pro internet pro jeho snadné streamování. Výhodou je, že Theora je kompletně zdarma, veškerá dokumentace je dobře přístupná, stejně jako software pro konverzi videí do tohoto formátu. Možný problém vzniká v rozšířenosti podpory Theory na počítačích uživatelů. V operačním systému Linux je podpora formátu, dle oficiálních stránek [22], považována za standard. Systémy Microsoft Windows a Mac OS podporu zabudovanou nemají. V těchto systémech je možné videa přehrát pomocí některých internetových prohlížečů, konkrétně formát Theora podporují prohlížeče FireFox, Opera a Chrome [23]. Na Masarykově univerzitě nepatří formát Theora mezi využívané. Výhodou je, že prohlížeče podporující formát Theora, přehrávají tato videa přímo ve stránce, není potřeba programovat přehrávač videa. Nevýhodou je, že uživatelé pracující s prohlížečem Internet Explorer, nebo Safari nemají možnost videa přehrát přímo v prohlížeči.
Adobe Flash Video Encoder, od verze CS4 pak po názvem Adobe Media Encoder. Oba programy jsou samostatně neprodejné, jsou součástí některých programů od firmy Adobe, např. Adobe Flash Professional, Adobe Premiere Pro, … 5
11
3.1.4 WebM/VP8 Čtvrtým kandidátem je formát WebM, který je vyvíjený přímo pro použití na internetu. WebM je plně zdarma a s otevřeným kódem [24]. Formát je podporován prohlížeči FireFox, Opera a Chrome. Stejně jako u formátu Theora chybí podpora pro Internet Explorer a není ani plánovaná pro následující verze [23]. Nabízí však plugin do programu Windows Media Player (WMP), díky čemuž je možné přehrát video i v prohlížeči Internet Explorer právě pomocí WMP. Server YouTube.com v budoucnu počítá s využitím formátu WebM a H.264 po přechodu na HTML5. Formát již využívá ve své zkušební verzi [25]. Na Masarykově univerzitě není formát WebM běžně využíván. Výhodou je přímá podpora formátu prohlížeči FireFox, Opera, Chrome i Android Browser a možnost podpory pro Internet Explorer pomocí pluginu. Nevýhodou je dostupnost v prohlížeči Safari.
3.1.5 Windows media video Posledním uvažovaným formátem je WMV (Windows media video). Tento formát byl dříve často využíván a to zejména pro rozšířenost operačního systému Windows, který v základní instalaci nabízel dostatečnou podporu pro přehrávání videí v tomto formátu. S rozšířením jiných operačních systému, poklesem podílu prohlížeče Internet Explorer na trhu a hlavně rozšířením jiných technologií začal formát WMV ustupovat. Mezi největší servery u nás, které používaly formát WMV, patřilo iVysílání České televize. Dne 4. května 2011 Česká televize upustila od formátu WMV a nadále nabízí videa pouze ve formátu H.264 [26]. Nyní je formát WMV kompatibilní s technologií Silverlight [27]. Na Masarykově univerzitě je možné setkat se s tímto formátem u některých starších publikací, zejména na Fakultě sportovních studií. V současnosti se však na MU nevyužívá. Výhodou je přímá podpora v operačních systémech Windows. Nevýhodou je problematická dostupnost v ostatních operačních systémech.
3.1.7 Shrnutí a výběr formátu Hlavním kritériem pro výběr formátu je z pohledu této práce míra podpory formátu napříč různými technologiemi pro přehrávání videí. Podpora více technologií umožní ve svém důsledku zpřístupnění systému co nejširšímu spektru uživatelů. Vedlejším kritériem je míra používání daného formátu u nás a ve světě. Z četnosti využívání daného formátu se dá předpokládat připravenost uživatelů daný formát přehrát na svém počítači. Shrnutí popisovaných formátů je zpracováno do následující tabulky. Používaný kontejner FLV
Formát videa On2 VP6
Formát audia MP3
MP4, MOV, F4V
H.264
AAC, MP3
6 7
Kompatibilita s technologiemi Flash Silverlight HTML5 Ano Ne Ne 6 IE , Chrome, Safari, Ano Ano Android Browser7
Podpora až od verze Internet Explorer 9 Částečná podpora
12
OGG
Theora
Vorbis audio
Ne
Ne
WebM
VP8
Vorbis audio
Ne
Ne
ASF, WMV
WMV
WMA
Ne
Ano
FireFox, Chrome, Opera FireFox, Chrome, Opera, Android Browser IE8
Tabulka 3.1 Shrnutí formátů videa, zdroj dat: [23], [27]
Z tabulky vyplývá, že nejuniverzálnějším formátem je H.264, který má podporu v technologiích Flash, Silverlight a podporu některých prohlížečů v rámci HTML5. Z průzkumu webových stránek serverů zpřístupňujících videa veřejnosti vyplývá, že se jedná o nejvíce používaný formát v oblasti zveřejňování videí na internetu. H.264 je využíván například na serveru YouTube.com, kde s tímto formátem počítají i do budoucna v rámci přechodu na HTML5. V České republice jej využívá dle [26] největší český video archiv, iVysílání České televize. Na Masarykově univerzitě se formát H.264 využívá pro záznamy přednášek [19]. Na základě vyhodnocení zvolených kritérií byl jako nejvhodnější formát videa vybrán formát H.264. Formát audia a použitý kontejner je zvolen shodný, jako používá YouTube.com a Česká televize, tedy formát audia AAC a kontejner MP4.
3.2
Výběr technologie pro přehrávání videí
Univerzitní prostředí je specifické tím, že uživatelé, tedy učitelé a studenti, využívají pro přístup na internet univerzitní počítače. Tyto počítače jsou obvykle chráněny proti instalaci nového software. Z tohoto důvodu je při výběru technologie nezbytné uvažovat takovou technologii, která nebude vyžadovat instalaci speciálního software, nebo tento software bude na univerzitních počítačích již běžně instalován. Optimálním případem je nabízet videa k přehrání pomocí více technologií. Použití více technologií však znamená více vynaloženého úsilí a to zejména v otázce integrace do Informačního systému. Více úsilí sebou nese i větší finanční zátěž na platy vývojářů. Z tohoto důvodu je vhodné zavést systém s použitím jedné technologie a počítat v budoucnu s rozšířením na další technologie. Hlavním kritériem pro výběr technologie pro účely této práce je dostupnost dané technologie na univerzitních počítačích. Při jejím hodnocení jsem vycházel zejména ze zkušeností Servisního střediska. Uvažovanými technologiemi jsou Adobe Flash, Microsoft Silverlight a HTML5.
3.2.1 Adobe Flash Adobe Flash je technologie pro tvorbu a prezentaci bohatého9 obsahu. K přehrání se využívá multiplatformního aplikačního prostředí Adobe Flash Player [28]. Flash Player je integrován do prohlížeče. Pro tuto práci je podstatnou vlastností schopnost práce s videem ve formátu H.264. V současnosti se uživatel může s touto technologií setkat nejčastěji u reklamních banne-
V případě WMV se jedná o podporu pomocí programu Windows Media Player, nikoli o HTML5 Bohatým obsahem je myšlena kombinace textu, obrazu, animace, videa a zvuku s možností interakce s uživatelem. 8 9
13
rů a přehrávačů videa (např. YouTube.com). Studenti Masarykovy univerzity také u výukových animací. Dle statistik společnosti Adobe má 98,7 % počítačů v Evropě nainstalovaný Adobe Flash Player 10, který je dostatečný pro přehrání videa [29]. Statistiky na stránkách RIAStats.com [30] ukazují, že v České republice má Flash Player verze 9+ nainstalováno 97,56 % uživatelů. Dle zkušenosti Servisní střediska podpora technologie Flash je i na Masarykově univerzitě vysoká. Svědčí o tom množství podnětů od vyučujících, kteří měli v učebnách s podporou problém. V roce 2007 středisko zaznamenalo 8 podnětů, v prvních třech čtvrtletích roku 2011 nezaznamenalo žádný podnět.
3.2.2 Microsoft Silverlight Microsoft Silverlight je technologie pro tvorbu dynamického obsahu a interaktivní práci s ním [31]. Technologie je uživatelům zpřístupněna pomocí instalace komponenty do webového prohlížeče, tzv. plug-in. Komponenta je dostupná pro nejrozšířenější prohlížeče běžící na platformě Microsoft Windows a Mac OS. Pro operační systém Linux je podpora umožněna pomocí plug-inu Moonlight od společnosti Novell. Technologie umí pracovat s videem ve formátech H.264, WMV a dalších [27]. Statistiky RIAStats.com [30] ukazují, že v České republice má nainstalovánu podporu technologie 63,97 % uživatelů. Při průzkumu výukových publikací Masarykovy univerzity nebylo zjištěno, že by někteří vyučující využívali technologii Silverlight, nepodařilo se tak zjistit zkušenosti s podporou na univerzitních počítačích.
3.2.3 HTML5 Jedná se o pátou verzi značkovacího jazyka HTML5 přinášející nové možnosti vývojářům webových aplikací [32]. Pro tuto práci podstatnou novinkou je zavedení podpory pro práci s video objekty. Pro uživatele to znamená možnost přehrávat videa přímo v prohlížeči bez nutnosti instalace komponent a doplňků do svých prohlížečů. Podpora videa je přímo závislá na verzi a typu prohlížeče, nikoli na operačním systému. V současnosti jsou v závislosti na typu prohlížeče podporovány formáty H.264, Theora a WebM, neexistuje však formát videa, který by byl podporován všemi prohlížeči podporující práci s videem. Formát H.264 je podporován prohlížeči Internet Explorer, Chrome a Safari [23]. Rozšíření technologie podle RIAStats.com [30] mezi uživateli v České republice je 88,35 %. Vzhledem k tomu, že formát H.264 není podporován například prohlížeči FireFox a Opera, bude skutečná rozšířenost podpory HTML5 mezi uživateli nižší. Na Masarykově univerzitě nebylo při výzkumu výukových publikací zjištěno, že by vyučující využívali jazyka HTML5 pro zpřístupňování videí.
3.2.4 Vyhodnocení Na základě zmíněných vlastností je v současnosti nejvýhodnější použít technologii Flash, která má nejen v prostředí Masarykovy univerzity největší podporu. Velmi perspektivní technologií je HTML5. V horizontu několika let, až dojde k většímu rozšíření jeho podpory a zejména sjednocení podporovaných formátů napříč všemi prohlížeči, je pravděpodobné překonání technologie Flash. Bude tak výhodné uvažovat nasazení HTML5 jako alternativu k technologii Flash.
14
3.3
Software na konverzi videa
V této podkapitole je vybírán vhodný kandidát na software pro konverzi videí do formátu videa H.264 a formátu audia AAC vložených do kontejneru MP4, dále jen MP4. Cílem je vybrat spolehlivý software, který bude umožňovat práci s různými typy videí bez nutnosti lidského zásahu. V praxi to znamená, že součástí software bude modul, který zvládne automaticky nastavit převod videa z libovolného formátu do vybraného formátu, nebo nastavení půjde realizovat externím skriptem.
3.3.1 Výběr kandidátů Při výběru kandidátů na software pro konverzi videí je potřeba zohlednit platformu, na které vybraný software poběží. Z konzultace s vedoucím vývojářem Informačního systému, který má zavedení přehrávání videí v IS MU na starosti, vyplynulo, že je možné uvažovat o libovolné platformě. Pro výběr software, dle konzultace, není nezbytně nutné, aby umožňoval práci přes příkazovou řádku. Kritéria pro výběr kandidátů byla: nulové náklady na pořízení, schopnost převést videa různých formátů10 do MP4, schopnost aplikovat filtry: resize a deinteralce11. Možní kandidáti jsou vybráni na základě zkušeností Servisního střediska a vyhledávání klíčových slov na internetu, procházení článků a diskusí, například [33]. Servisní středisko má zkušenosti s programy Adobe Media Encoder CS5, FFmpeg, Avidemux a MEncoder. Vyhledávání pomocí klíčových slov ukázalo na programy, které lze rozdělit do 3 skupin: 1. programy vyhovující kritériím, se kterými Servisní středisko má zkušenosti. Jsou to Adobe Media Encoder CS5, FFmpeg, Avidemux a MEncoder; 2. programy vyhovující kritériím, se kterými Servisní středisko nemá zkušenosti. Jsou to například divxenc [34], Konverter [35], Movieconvert [36], SMSG [37], h264enc [38], WinFF [39], Hyper Video Converter [40], Convert AVI to MP4 [41] a další. Programy této skupiny modifikují, či rozšiřují programy první skupiny. Z tohoto důvodu nebudou uvažovány jako možní kandidáti; 3. programy nevyhovující některému z kritérií. Jsou to například Prism Video Converter Software [42], Sony Vegas [43], WinAVI Video Converter [44] a další, které nesplňují kritérium nulové náklady na pořízení. Případně VirtualDub [45], který nesplňuje podmínku schopnost převést videa různých formátů do MP4. Adobe Media Encoder CS5 Media Encoder je samostatný program pro konverzi videí, který je nedílnou součástí komerčního software. Ve výběru je zařazen proto, že Centrum výpočetní techniky Fakulty informatiky, které vyvíjí Informační systém MU, má k dispozici licenci na tento software a proto
10 11
Schopnost akceptovat vstupy souborů s koncovkou .avi, .mpg, .mp4, .wmv, .vob, .mts Filtr odstraňující prokládání snímků videa
15
vyhovuje kritériu pořizovacích nákladů. Program má grafické uživatelské rozhraní a je nabízen pro platformu Microsoft Windows a Mac OS. Program vyhovuje kritériu na vstupní formáty [46], umožňuje aplikovat filtry na změnu rozlišení videa i odstranění prokládání. Vyhovuje všem kritériím. FFmpeg Jedná se o multiplatformní řešení pro konverzi videí do různých formátů. Ovládá se pomocí příkazové řádky. Implementuje knihovnu kodeků libavcodec [47] a pro konverzi videí do H.264 využívá knihovnu x264. Použití nevyžaduje žádné pořizovací náklady na pořízení licence [20]. Program vyhovuje kritériu na vstupní formáty a také umožňuje aplikovat požadované filtry. Vyhovuje všem kritériím. Avidemux Avidemux je multiplatformní řešení pro konverzi videí. Nabízí ovládání přes grafické rozhraní i příkazovou řádku. Pro konverzi videí do MP4 využívá knihovny x264. Je šířen pod GNU GPL licencí, splňuje kritérium nulových nákladů na pořízení. Umožňuje aplikovat požadované filtry a vyhovuje kritériu na vstupní formáty. MEncoder MEncoder je součástí programu MPlayer. Podporuje operační systém Linux a Microsoft Windows. MEncoder se ovládá přes příkazovou řádku. Pro konverzi videí do MP4 využívá knihovny x264. Je šířen pod GNU General Public License version 2 [48], splňuje kritérium na pořizovací náklady. Umožňuje aplikovat požadované filtry a vyhovuje kritériu na vstupní formáty. Shrnutí Čtyři zmíněné programy vyhovují zvoleným kritériím. Programy FFmpeg, Avidemux a MEncoder využívají pro konverzi videí do MP4 knihovnu x264. Dá se očekávat, že výsledky dané těmito programy budou shodné a rozdíl bude zejména v rozhraní. Servisní středisko má ze zmíněných tří programů největší zkušenosti s programem FFmpeg. Z tohoto důvodu bude pro následné testování omezen výběr kandidátů pouze na Adobe Media Encoder CS5 a FFmpeg.
3.3.2 Výběr vhodného software na základě testování Kritéria pro výběr vhodného software byla chybovost a automatizace postupu. Pro hodnocení chybovosti jsem vytvořil vzorek 21 videí v různých formátech a rozlišeních. Vzorek je vybrán z videí, které zpracovávalo Servisní středisko při realizaci zakázek pro vyučující na MU. Jedná se tedy o typy videí, se kterými se navržený systém bude setkávat. Výpis vlastností a formátů videí je vypsán v příloze A. V této práci je chybovost hodnocena ve 4 stupních: převedeno, převedeno s chybou, nepřevedeno, havárie. Celková chybovost je vyjádřena v procentech jako poměr počtu chyb12 a celkového počtu videí. Automatizaci hodnotím udělováním bodů. Program může získat body za splnění vlastností uvedených v následující tabulce.
Jako chyba je považováno, pokud program havaruje, video není převedeno, nebo je převedeno s chybou. 12
16
Vlastnost programu Ovládání příkazovou řádkou Automatické nastavení Možnost ovlivnit nastavení konverze zadáním vstupních podmínek (obejití automatického nastavení) Ochrana proti špatnému nastavení rozlišení videa (nerespektování poměru stran obrazu) Ochrana řešena úpravou rozlišení
Převedená videa jsou dále testována v přehrávači vytvořeném technologií Flash, dále jen přehrávač. Při přehrávání je sledováno, zda jsou videa přehrána a zda funguje progressive download. Testování probíhalo s programy Adobe Media Encoder CS5 a FFmpeg. Pro testování nebylo možné zajistit zcela shodné podmínky, protože testované programy byly testovány na odlišné platformě a jiném stroji. Hardwarová konfigurace obou testovaných počítačů byla shodná a je vypsána v příloze B. Během testování byly v systémech vypnuté nepotřebné aplikace. Vzorek videí byl konvertován dvakrát. Mezi prvním a druhým pokusem proběhl restart počítače. Adobe Media Encoder CS5 Program Media Encoder byl k dispozici ve verzi pro operační systém Microsoft Windows. Testování proběhlo v systému Microsoft Windows 7 Professional 64 bit anglické verze s nainstalovaným Service pack 1. Při načtení videí program automaticky nastaví formát výstupu z předdefinovaných nastavení (1 bod za vlastnost Automatické nastavení). Uživatel může změnit nastavení dvěma způsoby. Prvním je výběr nového formátu z předdefinovaných formátů, v tomto případě si program nastavení zapamatuje a příště pro vstup stejného typu volí nově nastavený formát. Druhým způsobem je ruční nastavení (1 bod za vlastnost Možnost ovlivnit nastavení konverze zadáním vstupních podmínek), v tomto případě si program nastavení pro další vstupy nepamatuje, pokud uživatel nové nastavení neuloží jako nový předdefinovaný formát. Při konverzi Media Encoder respektuje poměr stran videa (0,5 bodu za vlastnost Ochranu proti špatnému nastavení rozlišení videa) a v případě, že cílové rozlišení nevyhovuje, tak do videa vloží černé pruhy. V hodnocení kritéria automatizace získává celkem 2,5 bodů. Při konverzích videí program u 3 videí opakovaně havaroval, u dalších 2 videí byla oznámena chyba a videa se nepřevedla. Zbylých 16 videí bylo převedeno v pořádku a byla bez problémů přehrána přehrávačem s použitím progressive download. Opakování testu vykázalo stejné výsledky. Celková chybovost je 31,3 %. FFmpeg FFmpeg byl testovaný pro operační systém Gentoo linux 64 bitová verze, jádro 2.6.36-gentoo-r5. Verze programu FFmpeg byla ffmpeg-0.7. Program je ovládán příkazovou řádkou (2 body za vlastnost Ovládání příkazovou řádkou), což umožňuje automatizaci pomocí externího skriptu generujícího příkazy individuálně každému videu (1 bod za vlastnost Automatické nastavení). Externí skript není závislý na progra17
mu a může být v budoucnu snadno modifikován či rozšířen o nové možnosti (1 bod za vlastnost Možnost ovlivnit nastavení konverze zadáním vstupních podmínek). Program neimplementuje ochranu proti špatnému nastavení rozlišení videa, video se převede ve zvoleném rozlišení a může tak dojít k deformaci obrazu. V hodnocení kritéria automatizace program FFmpeg získal 4 body. Při konverzi testovacích videí se 21 videí převedlo do zvoleného formátu v pořádku, jedno video bylo převedeno s chybou. Opakování testu přineslo stejné výsledky. Chybovost na zvoleném vzorku videí je 4,8 %. Všechna videa byla přehrána přehrávačem, ovšem nefungoval progressive download. To znamená, že videa se začala přehrávat až po načtení celého souboru. Vysvětlení a řešení problému je na Blogu osoby jménem Stoimen [49]. Podle něj je příčinou umístění hlavičky na konci souboru. Přehrávač může začít přehrávat video až v okamžiku načtení informací o souboru, tedy v tomto případě po načtení celého souboru. Řešením problému je po konverzi do MP4 přesunout hlavičku souboru z konce na začátek souboru. Pro tento účel lze využít programu qt-faststart.c od autora jménem Mike Melanson [50]. Po přesunu hlavičky všech souborů a opětovném vyzkoušení videí v přehrávači progressive download fungoval. Vyhodnocení Porovnáním zvolených kritérií vychází jako nejvhodnější pro konverzi videí do MP4 program FFmpeg doplněný o program qt-faststart.c. Podrobnější rozpis jednotlivých hodnocení testovaných programů je uveden v přehledné tabulce v příloze C. Nastavení parametrů převodu bude realizováno externím skriptem.
3.4
Konverze videí
Pro konverzi videí bude používán program FFmpeg, převedená videa se poté upraví program qt-faststart.c. FFmpeg umožňuje individualizovat nastavení převodu jednotlivých videí pomocí úpravy spouštěcího příkazu. Spouštěcí příkaz se skládá z parametrů ovlivňujících určité vlastnosti videa, ty jsou děleny do dvou skupin. První skupinou jsou vlastnosti nastavitelné bez znalosti vstupního video souboru. Mezi tyto vlastnosti jsou zařazeny formát videa a audia, požadovaná kvalita videa a audia a další. Druhou skupinou jsou vlastnosti, jejichž nastavení závisí na hodnotě vlastnosti vstupního video souboru. Vlastnosti jsou uvedeny v hlavičce souboru, pro jejich získání se využije výstup z programu MediaInfo [51]. Hlavička souboru nemusí obsahovat hodnoty všech vlastností, což je nutné zohlednit při práci s výstupem z programu MediaInfo. Příkladem druhé skupiny je rozlišení videa, prokládání snímků a další.
3.4.1 Vlastnosti videa nastavované při konverzi Pro určení hodnot nastavení vlastností videa při konverzi je potřeba určit požadavky na výsledné video. Při konzultaci s vývojovým týmem IS MU byly dohodnuty následující požadavky: videa budou konvertována do maximální šířky 640 pixelů, o větší videa budou zmenšena, o menší rozměrově zůstanou;
18
u kvality videa by měla být nalezena rovnováha mezi kvalitou obrazu, zvuku a velikostí výsledného video souboru. Výsledný soubor by v 70 % případů neměl být větší, než původní soubor; videím s prokládanými snímky bude prokládání odstraněno, protože přehrávač s takovými videi neumí korektně pracovat; bude prováděna korekce poměru stran obrazu změnou rozlišení, protože přehrávač neumí pracovat s videi s obdélníkovými pixely.
Zmíněné požadavky jsou v programu FFmpeg realizovány následujícími příkazy. Hodnoty uvedené u příkazu jsou použity pro nastavení převodu. -aq 60 // kvalita audia -qmin 1 // minimální hodnota quantizéru -crf 22 // metoda kontroly datového toku udržující nastavenou úroveň kvality -vpre fast // nastavení kvality komprimace -deinterlace // filtr na odstranění prokládání -s WIDTHxHEIGHT // změna rozlišení obrazu
Uživatel při zavádění požadavku na konverzi videa bude moci zvolit úroveň kvality ve třech krocích – nízká, střední, vysoká. Doporučenou hodnotou bude střední kvalita, hodnoty vlastností pro jednotlivá nastavení jsou: // nízká kvalita -aq 35 -crf 30 // střední kvalita -aq 60 -crf 22 // vysoká kvalita -aq 90 -crf 12
Nastavení filtru pro odstranění prokládání a změnu rozlišení videa závisí na vlastnostech vstupního souboru. Pro generování příkazu pro konverzi videí bude nutné vytvořit skript, který bude příkaz generovat, viz kapitola 3.4.2. Příklad příkazu pro konverzi videa programem FFmpeg:
Po dokončení konverze je nutné ještě přesunout hlavičku souboru z konce na začátek pomocí programu qt-faststart.c. Příkaz obsahuje pouze jeden parametr a to název video souboru, u kterého se má přesun provést. Přesun hlavičky proběhne v rámci zadaného souboru, nevzniká nový soubor. Příkaz vypadá následovně:
qt-faststart VYSTUP.mp4
3.4.2 Skript pro generování příkazů pro konverzi videí Úkolem skriptu je zajištění konverze vstupního videa do MP4 s použitím programů MediaInfo, FFmpeg a qt-faststart.c. Skript na základě vlastností vstupního videa získaných pomocí výstupu z programu MediaInfo sestaví vhodný příkaz pro konverzi videa do MP4 pomocí FFmpeg a následně pomocí qt-faststart.c přesune hlavičku souboru z konce na začátek. Skript je v této práci realizován jako pseudokód, podle kterého je možné jej naprogramovat v požadovaném jazyce, s požadovaným přizpůsobením technologii použité na serverech a s požadovaným napojením na další systémy. Pro účely této práce nebyl skript autorem práce realizován v konkrétním jazyce pro konkrétní server, neboť toto bylo již součástí práce programátorů IS MU. Pseudokód používá základní operace a příkazy, je řádně komentován a je přiložen v příloze D.
3.4.3 Testování výsledků konverze na prototypu Prototyp byl postaven na základě simulace běhu skriptu psaném v pseudokódu s využitím externích programů, se kterými je počítáno při konverzi. Simulaci běhu zajišťoval autor práce. Vstupem skriptu bylo postupně 21 videí různých formátů (výpis vlastností testovaných videí je v příloze A). Při běhu skriptu došlo ke třem volání externích programů: 1. program MediaInfo $ MediaInfo FileName.Extension
2. program FFmpeg volaný příkazovou řádkou generovanou skriptem na základě výstupu z programu MediaInfo, seznam příkazových řádků vygenerovaných pseudokódem je uveden v příloze E $ command_line
3. program qt-faststart.c $ qt-faststart FileName.mp4
Výstupem skriptu byla videa ve formátu MP4. Následné testování videí se zaměřilo na následující aspekty: 20
1. 2. 3. 4.
úspěšnost převedení do MP4 (ano/ne); odstraněné prokládání u prokládaných videí (ano/ne/–); správnost formátu obrazu (ano/ne); viditelné/slyšitelné chyby v obrazu/zvuku, které nebyly v původním videu (ne/málo/středně/hodně/nepoužitelné); 5. rozdíl velikosti souboru (rozdíl v procentech); 6. pocitová změna kvality obrazu a zvuku vůči originálu (známka 1–5): o 1 znamená nepozorovatelný rozdíl, o 5 znamená velmi špatná kvalita; 7. správná funkčnost při použití metody progressive download (ano/ne). Hodnocení sledovaných aspektů je přehledně sepsáno do tabulky v příloze F. Shrnutí výsledků: 1. 100 % bylo úspěšně převedeno do MP4; 2. prokládání bylo odstraněno všem videím s deklarovaným prokládáním (19 %), u 9 % videí nebyl údaj o prokládání k dispozici; 3. 100 % videí mělo na výstupu správně upravený formát obrazu; 4. u žádného videa nebyly zaznamenány viditelné, nebo slyšitelné chyby; 5. velikost výstupního souboru u 86 % videí byla menší než velikost vstupního souboru; 6. u 81 % videí nebylo pozorováno zhoršení kvality obrazu ani zvuku, ve zbylých 19 % videí bylo zhoršení pouze nepatrné; 7. u 100 % videí fungovala metoda progressive download. Z výsledků vyplývá, že skript pro konverzi videí do MP4 dává výsledky. Výsledky odpovídají požadavkům, které byly určeny v kapitole 3.4.1.
21
4
Návrh a realizace přehrávače
Kapitola Návrh a realizace přehrávače se věnuje návrhu funkcionality, vzhledu a následné realizaci přehrávače včetně napojení na funkcionalitu Informačního systému MU. Přehrávač je realizován technologií Flash s použitím programu Adobe Flash CS3 Professional.
4.1
Princip zabezpečení videí uložených v Informačním systému MU
Pro ukládání a zpřístupňování videí v rámci Informačního systému MU byla ve spolupráci s vývojáři IS MU navržena a realizována nová aplikace. Aplikace vznikla zejména za účelem účinného zabezpečení videí proti zneužití a neoprávněnému přístupu. Princip fungování aplikace je nezbytný pro návrh přehrávače, který bude s touto aplikací provázaný. U každého videa uloženého v Informačním systému MU je k dispozici funkce připravit video k přehrávání. Funkce připravit video k přehrávání je dostupná skupině uživatelů, kteří mají k videu nastavené přístupové právo spravovat. Převedením videa se k původnímu videu přiřadí nový soubor MP4 a zároveň se vytvoří tzv. přehrávač videa s unikátním ID. Přehrávač videa je samostatný soubor a má oddělená přístupová práva od původního videa. Uživatel, který má právo číst soubor přehrávač videa a nemá právo číst původní video soubor, si může video přehrát, ale nemůže jej stáhnout. Příklad: 1. Vyučující: a. nahraje video pascal.avi do složky předmětu Programování; b. vloženému videu nastaví přístupové právo číst na nikdo; c. použije funkci připravit video k přehrávání, k původnímu souboru se přiřadí soubor pascal.mp4 se stejnými právy, jako původní soubor (právo číst: nikdo), ve stejné složce také vznikne nový soubor Přehrávač videa: pascal.avi; d. nastaví právo číst na studenti předmětu Programování. 2. Studenti: a. mohou otevřít soubor Přehrávač videa: pascal.avi, který zobrazí přehrávač s videem o Pascalu; b. nemají přístup k souboru pascal.avi ani pascal.mp4, nemají tak možnost video stáhnout; c. pokud přepošlou odkaz na soubor Přehrávač videa: pascal.avi někomu, kdo nestuduje předmět Programování, video se mu nepřehraje. Podpora zabezpečení ze strany přehrávače Aplikace zobrazující videa v Informačním systému MU předává přehrávači tři parametry uvedené v tabulce 4.1. Rozebrání funkcionality spojené s parametry je uvedené pod tabulkou. 22
Jméno parametru id type is
Obsah parametru unikátní ID video souboru typ přístupu na server: autentizovaný/neautentizovaný přístup server, na kterém je video uložené
Nabývané hodnoty unikátní kód
Iniciální hodnota –
auth / noauth
auth
část URL
"is.muni.cz"
Tabulka 4.1 Parametry předávané aplikací IS MU přehrávači
Přehrávač obdržený parametr id modifikuje tajným algoritmem a výsledek použije pro přístup k videu na serveru. Modifikované id zůstává uživateli skryté, uživatel tak nemá možnost získat přímou adresu videa. Základem pro modifikaci je hash funkce a operace s tajným 128 bitovým klíčem. Z důvodu zajištění bezpečnosti provozu systému na přehrávání videí v IS MU není možné zveřejnit přesný algoritmus modifikace ID. Předání parametru id je tedy bezpečnějším způsobem odkazování videa, než pomocí parametru klip. Informační systém MU umožňuje dva přístupy – autentizovaný a neautentizovaný. Parametr id neobsahuje informaci o tom, jaký přístup má přehrávač použít při přístupu k videu, proto je zaveden parametr type, který umožní specifikovat typ přístupu. V souvislosti s provozem Informačního systému na jiných školách [1] a s možností testování v rámci testovací verze IS MU je potřebné umožnit přístup k videu pod různými adresami serverů. Parametr is umožňuje zadat adresu serveru, na kterém je video uloženo.
4.2
Návrh funkcionality přehrávače Návrh funkcionality lze rozdělit do čtyř částí: 4.2.1 Zjištění současných trendů v oblasti internetových přehrávačů 4.2.2 Funkcionalita vycházející z průzkumu přehrávačů, 4.2.3 Funkcionalita vycházející z přehrávače Servisního střediska, 4.2.4 Funkcionalita zajišťující spolupráci s Informačním systémem MU.
4.2.1 Zjištění současných trendů v oblasti internetových přehrávačů Součástí tvorby návrhu bylo zjištění současných trendů v oblasti funkcionality a vzhledu přehrávačů a rozhodnutí, které z používaných prvků přehrávačů budou využity při návrhu. Průzkum se zaměřil zejména na přehrávače na stránkách YouTube.com, Stream.cz, iVysilani.cz, tn.cz, novinky.cz, idnes.cz, vimeo.com a přehrávač Servisního střediska pro e-learning na MU. Podrobný rozpis zkoumaných vlastností přehrávačů a jejich galerie je uvedena v příloze G. V následující tabulce (Tabulka 4.2) je výpis sledovaných vlastností, používané varianty a varianta vybraná pro návrh. Důvody pro volbu použitých variant jsou jednotlivě rozebrány v textu pod tabulkou. Sledovaná vlastnost Rozvržení přehrávače Umístění ovládacích prvků Umístění lišty s ovl. prvky
Používané varianty
Varianta pro návrh
1 lišta / 2 lišty pod videem / dole ve videu
1 lišta pod videem
23
Schovávání lišty s ovl. prvky Orámování videa Tvar tlačítek Průhlednost některých prvků Barevnost Používaný poměr stran obrazu Použité ovládací prvky Tlačítko přehrát, pozastavit Tlačítko stop Časová osa Čas přehrávání Celkový čas Tlačítko ztlumit zvuk Ovládání hlasitosti Tlačítko pro zobrazení na celou obrazovku Volba kvality videa Další (pouze funkcionalita nabízená přímo přehrávačem)
ano / ne ano / ne čtverec / čtverec se zaoblenými rohy / bez ohraničení ano / ne odstíny šedé, červená / černá, bílá, sv. modrá / odstíny šedé, sv. modrá 16:9 / různé
ne ne čtverec ne odstíny šedé, červená různé
ano ano / ne ano ano ano / ne ano / ne ano / ano, skrývané
ano ano ano ano ano ano ano, skrývané
ano
ano
ano / ne zobrazení titulků sdílení související videa reklama ostatní
nyní ne nyní ne nyní ne nyní ne ne nyní ne
Tabulka 4.2 Srovnání vybraných vlastností přehrávačů s plánovaným návrhem
Důvody pro volbu použitých variant pro návrh přehrávače jsou: 1. Umístění ovládacích prvků do jedné lišty vychází z požadavků grafika IS MU. 2. Umístění lišty pevně pod videem je technicky jednodušší řešení, než varianta skrývání, a pro uživatele přívětivější, protože ovládací prvky jsou stále viditelné. 3. Výchozí barevnost přehrávače volí neutrální odstíny šedé barvy a pro kontrast je zvolena doplňková červená barva. 4. Přehrávač bude využíván v různých rozlišeních a to je nutné zohlednit při návrhu rozložení prvků. 5. Ovládací prvky jsou voleny dle zvyklosti uživatelů plynoucí jednak z používání přehrávačů v počítači a jednak z používání stolních přehrávačů. 6. Oproti většině přehrávačů na internetu bude v návrhu použito tlačítko s funkcí pro zastavení přehrávání videa. Důvodem je zachování funkcionality používané u přehrávačů využívaných v e-learningových materiálech na MU. 7. Položky v Tabulka 4.2 s uvedením „nyní ne“ vycházejí z předpokladu, že i když se funkcionalita nebude nyní realizovat, tak se počítá s její možnou realizací v budoucnu. Dále jsou diskutovány některé z nich: 24
a. Hlavní překážkou k realizaci výběru kvality přehrávaného videa je nutnost vícenásobné konverze jednoho souboru, což je výpočetně náročné. b. Titulkování videí zvyšuje obrazovým e-learningovým materiálům jejich přínos a proto se s realizací podpory titulků v budoucnu počítá. c. Podpora pro sdílení videa je realizována prostřednictvím aplikací v IS MU, v budoucnu se však počítá s podporou i v rámci přehrávače. Důvodem je, že video může být umístěno v materiálech vyučujícího, které funkci sdílení neimplementují. d. Nabízení souvisejících videí s sebou nese potřebu tagování vložených videí, což by šlo v IS MU realizovat pomocí přidání popisu k vkládanému souboru. Z důvodu zátěže systému je toto zatím odloženo.
4.2.2 Funkcionalita vycházející z průzkumu přehrávačů Jedná se o funkcionalitu vyplývající ze zvyklostí uživatelů z používání internetových přehrávačů (viz 4.2.1 Zjištění současných trendů v oblasti internetových přehrávačů). Funkcionalita: spuštění přehrávání, pozastavení přehrávání, zastavení přehrávání (a přetočení videa na začátek), zobrazení aktuálního času přehrávání, zobrazení celkového hracího času videa, nastavení úrovně hlasitosti, vypnutí/zapnutí zvukové stopy, přepnutí do/z režimu celoobrazovkového přehrávání, grafické znázornění časové pozice ve videu s možností přesunu na libovolnou část videa.
4.2.3 Funkcionalita vycházející z přehrávače Servisního střediska Přehrávač Servisního střediska je běžně využíván na Masarykově univerzitě v elektronických výukových publikacích. Přehrávač podporuje následující funkcionalitu13: uživatelská možnost nastavení: o adresy přehrávaného videa, o opakovaného přehrávání, o automatického spuštění přehrávání, o zobrazení úvodního obrázku, o načítání videa na pozadí (požadavek na video může být odesílán až v okamžiku kliknutí na tlačítko přehrát); spolupráce s agendou Odpovědníky v IS MU.
Vypsány jsou pouze ty vlastnosti, které jsou relevantní pro návrh a nejsou zahrnuty v kapitole 4.2.2 Funkcionalita vycházející z průzkumu přehrávačů. 13
25
Z důvodu zpětné kompatibility s přehrávačem Servisního střediska byly zachovány všechny možnosti uživatelského nastavení, byla zachována jména parametrů i hodnoty, kterých mohou nabývat (Tabulka 4.3). Možnosti nastavení Adresa přehrávaného videa Opakované přehrávání Automatické spuštění přehrávání Zobrazení úvodního obrázku Přednačítání videa na pozadí
Jméno parametru klip loop autoplay img preload
Možnosti nastavení URL videa True/False True/False URL obrázku True/False
Iniciální hodnota – False True bez obrázku True
Tabulka 4.3 Možnosti uživatelského nastavení a iniciální hodnoty
Spolupráce s agendou Odpovědníky v IS MU znamená, že pro umístění video souboru je možné použít speciální zabezpečenou složku testbank (/tb/). Složka testbank slouží k ukládání testových otázek a obrázků, které je možné zobrazit pouze přes agendu Odpovědníky. Student se k materiálům v této složce nemůže dostat jiným způsobem, než spuštěním testu, v rámci kterého jsou materiály použity. Propojení přehrávače s agendou Odpovědníky vyvinulo Servisní středisko ve spolupráci s vývojáři IS MU. Pro návrh funkcionality přehrávače je tato funkcionalita převzata. Kolize při načítání video souboru Z navržené funkcionality přehrávače vyplývá, že umístění videa je možné přehrávači předat dvěma způsoby – parametrem klip a parametrem id. Aby nemohlo dojít k nepředvídatelnému chování při předání parametru klip i id současně, tak přehrávač určuje prioritu vstupních parametrů – při zadání parametru id je parametr klip ignorován.
4.2.4 Funkcionalita zajišťující spolupráci s Informačním systémem MU Kromě již zmíněného řešení zabezpečení video souborů (4.1 Princip zabezpečení videí uložených v IS MU) je nezbytné řešit detekci problémů souvisejících s načítáním souborů. Komponenta používaná pro přehrávání videa pomocí technologie Flash umí obecně rozeznat tři stavy odeslaného požadavku na video: 1. video se načítá, 2. video je načteno, 3. chyba načítání. V prostředí IS MU při práci s videem však mohou nastat následující chyby: 1. video soubor nenalezen, 2. uživatel nemá dostatečná přístupová práva, 3. video soubor není ve správném formátu, 4. jiná chyba (například vysoká zátěž serveru, pád připojení k internetu). Přesto, že zmíněné chyby v prostředí IS MU nelze přehrávačem detekovat, část z nich lze detekovat na serveru. Dle zásad návrhu rozhraní [52] bylo s vývojáři IS MU dohodnuto, že pře26
hrávač bude uživatelům zobrazovat podrobné výpisy chyby pomocí informací získaných z XML souboru. Při návrhu struktury XML souboru byla zohledněna možnost širšího využití v budoucnu. Pomocí XML souboru lze přehrávači předávat libovolné informace, například titulky, odkazy na související videa, popis videa a další. Současný návrh předává přehrávači dvě informace: 1. zda má být zobrazena chybová hláška (errorCall), 2. text chybové hlášky (errorText).
Volání XML souboru probíhá současně s voláním video souboru, adresa XML je odvozena od adresy videa. Informační systém generuje aktuální XML soubor pro každý přístup k videu. V případě, že dojde k chybě při načítání XML, přehrávač čeká, zda obdrží video soubor, pokud ne, tak zobrazí obecnou chybovou hlášku.
4.3
Návrh vzhledu přehrávače
Návrh vzhledu probíhal ve třech krocích. Prvním krokem bylo zjištění požadavků na vzhled od grafika IS MU. Druhým krokem bylo vytvoření návrhu. Ve třetím kroku byl návrh upraven na základě připomínek grafika IS MU a členů uživatelské podpory IS MU.
4.3.1 Zjištění požadavků na vzhled Přehrávač má být implementován do informačního systému MU, proto hlavní slovo při tvorbě vzhledu má grafik IS MU. Ze vzájemné konzultace vyplynuly následující požadavky v oblasti rozmístění prvků, barevnosti a funkčnosti: rozmístění prvků: o minimální rozhraní, o žádné zbytečné rámečky, o pouze nutné ovládací prvky v jedné liště, o vzhledově vycházet ze směru populárních serverů14; barevnost přehrávače: o neutrální barvy, o tmavý vzhled, o barva pouze pro zvýraznění ovládacích prvků; funkčnost a možnosti přehrávače: o umožnění změny velikosti, např. zobrazení na celou obrazovku.
14
Při konzultaci byl jako příklad zmíněn server YouTube.com a Stream.cz
27
Zmíněné požadavky vycházely zejména z předpokladu, že se přehrávač bude vyskytovat v různých prostředích, např. 5 různých designů IS MU, různé aplikace IS MU atd. Při návrhu bylo také nutné zohlednit zvyklosti cílové skupiny uživatelů. Samozřejmostí bylo při tvorbě vzhledu nezasahovat do autorských práv třetích osob. Cílem bylo vytvoření vlastního autorského řešení.
4.3.2 Tvorba návrhu vzhledu přehrávače Při realizaci návrhu vzhledu přehrávače bylo dbáno 4 základních principů CRAP dle [53]. Kontrast (Contrast) o odlišné prvky vypadají odlišně, významné prvky jsou výraznější, např. časová osa vypadá odlišně od tlačítka, tlačítko přehrát je větší, než ostatní tlačítka Opakování (Repetition) o opakování prvků, např. všechna tlačítka mají stejný tvar a barevný základ Zarovnání (Alignment) o zarovnání prvků a vizuální propojení, např. tlačítka jsou v jedné ose Blízkost (Proximity) o seskupení souvisejících prvků, např. ovládání hlasitosti je vedle tlačítka pro ztlumení zvuku Pomocným nástrojem pro vytvoření návrhu přehrávače bylo rozkreslení a následné umístění prvků vybraných v kapitole 4.2.1 do mřížky (Obrázek 4.1). Mřížka oproti běžnému návrhu obsahuje znak výpustky, ten znázorňuje proměnnou šířku přehrávače. Z nákresu mřížky je patrné, že dochází k horizontálnímu rozdělení na levou a pravou část, mezi kterými je proměnná mezera.
Obrázek 4.1 Zakreslení návrhu přehrávače do mřížky
28
Obrázek 4.2 Návrh vzhledu přehrávače
Návrh přehrávače (Obrázek 4.2) má umístěné ovládací prvky v liště pod videem ve dvou řádcích. První řádek mřížky obsahuje na celou šíři přehrávače časovou osu znázorňující pozici v přehrávaném videu. Časová osa počítá se třemi barevnými úrovněmi osy a jedním ukazatelem polohy (Obrázek 4.3): č. 1 část videa byla již přehrána (šedá barva); č. 2 ukazatel aktuální polohy ve videu; č. 3 část videa je připravena k přehrání (červená barva); č. 4 část videa nebyla ještě načtena (černá barva).
Obrázek 4.3 Detail časové osy přehrávače
Druhý řádek mřížky obsahuje lištu tlačítek seskupených do dvou skupin. První skupina zarovnaná na levou stranu obsahuje, zleva: o tlačítko přehrát/pozastavit – jedná se o nejdůležitější tlačítko a proto má větší plochu, než ostatní tlačítka, o tlačítko zastavit, o časomíra, o celkový čas videa; Druhá skupina zarovnaná na pravou stranu obsahuje, zleva: o logo Informačního systému MU, 29
o o o
ovládání hlasitosti – ovládání hlasitosti je zobrazeno při najetí myší na tlačítko ztlumení zvuku (Obrázek 4.4), tlačítko pro ztlumení zvuku, tlačítko pro přechod do/z režimu pro celou obrazovku.
Obrázek 4.4 Ovládání hlasitosti
Celková šíře tlačítek dává minimální přípustnou šířku přehrávače, která je určena na 325 pixelů. Maximální šíře není omezena.
4.3.4 Finalizace vzhledu přehrávače Vytvořený návrh byl konzultován s grafikem IS MU. Z konzultace vyplynuly následující požadavky na úpravu návrhu: zvýšení plastičnosti tlačítek úpravou jejich oddělovačů; snížení výraznosti ovládacích prvků zmenšením grafických značek a snížením kontrastu; změna barevnosti časové osy, u které byla změněna barevnost (Obrázek 4.5): č. 1 část videa byla již přehrána (červená barva); č. 2 ukazatel aktuální polohy ve videu; č. 3 část videa je připravena k přehrání (šedá barva); č. 4 část videa nebyla ještě načtena (černá barva).
Obrázek 4.5 Detail časové osy po úpravě
Upravený vzhled (Obrázek 4.6) byl následně předložen k připomínkování členům uživatelské podpory IS MU, ze kterého nevzešly další požadavky na úpravy.
30
Obrázek 4.6 Finální vzhled přehrávače
4.4
Realizace přehrávače
Adobe Flash CS3.3 Professional (dále jen Adobe Flash) je nástroj pro tvorbu bohatých internetových aplikací (RIA). Využívá se k tvorbě interaktivních animací, webových aplikací a her [54]. Vývojové prostředí kombinuje vektorový editor s podporou práce bitmapových objektů a skriptovací jazyk ActionScript (při realizaci použita verze 2.0). ActionScript 2.0 je postaven na základě ECMAScript (ECMA-262 edice 4) [55], jedná se o objektově orientovaný jazyk. Při realizaci přehrávače bylo využíváno oficiální nápovědy dostupné na [55], která obsahuje dokumentaci použitelných funkcí a objektů v ActionScript 2.0. Z důvodu velkého množství stránek s drobným obsahem a přehlednosti psaného textu nebudou dále ve zbytku kapitoly odkazovány jednotlivé stránky nápovědy.
4.4.1 Použité objekty, základní nastavení a sestavení rozvržení prvků Při realizaci přehrávače byly nejdříve vytvořeny vizuální objekty, se kterými se později pracuje v ActionScriptu. Seznam vybraných objektů a jména instancí jsou uvedeny v následující tabulce. Objekt
Instance
FLVPlayback but_playPause but_stop
myPlayback but_playPause but_stop
but_mute
but_mute
but_SeekBar
but_SeekBar
Poznámka předdefinovaná komponenta dvoustavové tlačítko přehrát/pozastavit tlačítko zastavit dvoustavové tlačítko vypnout/zapnout zvuk grafické znázornění a změna pozice ve videu
31
but_FullscreenOnOff
but_FullscreenOnOff
but_volumeBar
but_volumeBar
but_playPauseBig
stagePlay
skinBack but_playTime skinLoading TextField
skinBack but_playTime skinLoading errorTextBox
dvoustavové tlačítko přepínání zobrazení na celou obrazovku grafické znázornění a změna úrovně hlasitosti tlačítko zobrazené přes video umožňující pozastavení/spuštění přehrávání statická grafika přehrávače zobrazení časových údajů o videu zobrazení informace o načítání videa zobrazení chybového hlášení
Tabulka 4.4 Seznam vybraných objektů se jmény instancí
Zdrojový kód je v rámci jazyka ActionScript psán čtyřmi způsoby: 1 hlavní kód programu provedený právě jednou při načtení přehrávače; 2 funkce definované v rámci hlavního kódu prováděné pouze při volání; 3 „posluchači událostí“ (eventListener) definovaní v rámci hlavního kódu, kteří provedou kód vždy, když nastane určitá událost; 4 kód definovaný pro určitou instanci objektu, psaný dvěma způsoby: a. zapsaný v rámci hlavního kódu, b. zapsaný v rámci instance objektu. Seznam funkcí a posluchačů function playVideo():Void function pauseVideo():Void function setFullscreen():Void function closeFullscreen():Void function setLayout(isResized:Boolean):Void function centerVideo():Void function placeTimer():Void OnResizeList.onResize = function(bFull:Boolean):Void myTimer.playheadUpdate = function(udalost):Void myOnVideoReady.ready = function(eventObject:Object):Void myOnVideoStateChange.stateChange = function(eventObject:Object):Void error_xml.onLoad = function(loaded):Void
Poznámka spustí přehrávání pozastaví přehrávání přepne do celoobrazovkového režimu ukončí režim celé obrazovky rozmístí prvky na ploše podle aktuální velikosti plochy flashového objektu, případně upraví jejich velikost umístí objekt s videem na správné místo na ploše upraví formát zobrazení časových údajů o videu na základě skutečné délky videa (h:mm:ss / mm:ss / m:ss) zachycení události změny velikosti flashového objektu zachycení události „změna aktuálního času přehrávání“ zachycení události „připraven k přehrání videa“ zachycení události „změna stavu videa“ (načítání, chyba, připraven, přehrávání, pozastaveno, zastaveno, přetáčeno) zachycení události „načten XML soubor“
Tabulka 4.5 Seznam definovaných funkcí a posluchačů
32
Přehrávač je používán v různých velikostech. Proto je důležité nastavit přehrávač tak, aby při změně jeho velikosti nedocházelo ke změně velikosti objektů a zároveň implementovat funkcionalitu, která při každé změně velikosti (včetně prvního zobrazení přehrávače) bude přizpůsobovat rozložení objektů na ploše nové velikosti. Stage.scaleMode = "noScale" // objekty nebudou při změně velikosti přehrávače měnit velikost Stage.align = "TL" // souřadnice [0,0] bude v levém horním rohu, kladné hodnoty směrem dolů a vpravo
O rozložení objektů na ploše přehrávače se stará funkce setLayout(isResized). Funkce na základě velikosti přehrávače (Stage.width a Stage.height) rozmístí všechny viditelné objekty, případně upraví jejich velikost (myPlayback, but_SeekBar, stagePlay). Vstupní proměnná isResized typu Boolean slouží k rozlišení, zda se jedná o volání funkce při vytvoření přehrávače, nebo při změně jeho velikosti.
function setLayout(isResized:Boolean):Void { … }
4.4.2 Realizace funkcionality vycházející z průzkumu přehrávačů Adobe Flash nabízí komponentu FLVPlayback zobrazující video formátu FLV, F4V a MP4. Komponenta implementuje funkce, které umožňují video ovládat a získat o něm informace. Ovládání videa lze realizovat navázáním objektů pro ovládání na komponentu. Komponenta se poté automaticky stará o funkčnost objektů a případnou aktualizaci jejich stavu (např. aktualizaci časové osy, přepínání sdíleného tlačítka přehrát/pozastavit apod.). Výjimkou je režim celoobrazovkového přehrávání, který nemá oporu v komponentě FLVPlayback, tuto funkci je nutné naprogramovat zvlášť. Nastavení komponenty: myPlayback.aspectRatio = false; // respektování poměru stran videa při změně velikosti myPlayback.autoSize = false; // video je přizpůsobeno velikosti komponenty myPlayback.maintainAspectRatio = true; // zachování poměru stran zobrazeného videa podle údajů v meta tagu videa myPlayback.autoRewind = true; // při zastavení automaticky přetočí
33
Objekty pro ovládání musí mít přesně definovanou strukturu, aby fungovalo navázání na komponentu FLVPlayback. Struktura je zcela odlišná od struktury běžného tlačítka (objekt Button) a je podrobně popsána v online nápovědě. Navázání objektů na komponentu: myPlayback.seekBar = but_SeekBar; myPlayback.playPauseButton = but_playPause; myPlayback.stopButton = but_stop; myPlayback.muteButton = but_mute; myPlayback.volumeBar = but_volumeBar;
Komponenta nezajišťuje zobrazování aktuálního a celkového času přehrávání videa, pouze implementuje funkce k jejich získání. Zobrazování času je potřeba naprogramovat zvlášť pomocí tzv. posluchačů událostí. Celkový čas se aktualizuje v rámci posluchače „připraven k přehrávání“, aktualizace tedy probíhá právě jednou, těsně před začátkem přehrávání videa. Aktuální čas přehrávání se aktualizuje pomocí posluchače „změna aktuálního času přehrávání“. Čas je získán v sekundách. Adobe Flash implementuje operaci zbytek po celočíselném dělení, ale neimplementuje operaci celočíselného dělení. Rozpočítání času na hodiny, minuty a sekundy je tak nutné řešit jinými dostupnými operacemi.
myTimer.playheadUpdate = function(flvp:Object):Void { // „flvp“ je objekt, který způsobil událost var time = Math.floor(flvp.playheadTime) // získaný hrací čas je v sekundách var secs = time % 60; var mins = Math.floor(time/60) % 60; var hours = Math.floor(time/3600) % 60; // kód pro zobrazení času … } myPlayback.addEventListener("playheadUpdate", myTimer);
Režim celoobrazovkového přehrávání je potřeba naprogramovat zvlášť a nezapomenout zahrnout všechny aspekty spojené se změnou velikosti přehrávače, aspekty jsou: obnovení instancí objektů generovaných komponentou FLVPlayback; znovu rozmístění objektů na ploše; změna tlačítka pro přepínání režimů; přepočítání pozice a velikosti zobrazovaného videa. Při přepnutí do celoobrazovkového režimu, resp. při každé změně velikosti přehrávače, nedojde ke změně pozice instancí objektů, které jsou generovány komponentou FLVPlayback. Ke změně pozice nedochází i v případě, že instance objektu, ke které generovaný objekt náleží, 34
pozici změní (pomocí setLayout();). Dojde tak k chybě zobrazení, viz například chyba u časové osy (Obrázek 4.7). K odstranění chyby je nejdříve nutné zrušit navázání komponenty na instanci objektu časové osy, vrátit časovou osu do počátečního stavu a vytvořit novou vazbu mezi komponentou a časovou osou. Část zdrojového kódu řešící problém je uveden v příloze H.
Obrázek 4.7 Ukázka chybného zobrazení při změně velikosti přehrávače
4.4.3 Realizace funkcionality vycházející z přehrávače Servisního střediska Z analýzy zdrojového kódu přehrávače Servisního střediska vyplynulo, že není možné kód plně převzít, protože vnitřní struktura a konvence pojmenování funkcí a proměnných neodpovídá potřebám realizovaného přehrávače. Přebíranou funkcionalitu bylo navíc potřeba upravit pro potřeby nových funkcí přehrávače. Nicméně ze zdrojového kódu Servisního střediska plynula cenná inspirace. V oblasti spolupráce přehrávače s agendou Odpovědníky v IS MU i přesný algoritmus zabezpečení a zpřístupnění videí ze složky testbank.
4.4.4 Realizace zabezpečení a funkcionality zajišťující spolupráci s IS MU Realizace spolupráce přehrávače s Informačním systémem MU souvisí se získáním video souboru a dále se dělí na: 1. načtení video souboru z IS MU: a. sestavení adresy videa, b. odeslání požadavku na video pomocí sestavené adresy; 2. řešení chybových stavů: a. chyby detekované IS MU, b. chyby detekované přehrávačem. Načtení video souboru z Informačního systému MU Sestavení adresy videa Přehrávač sestavuje adresu videa na základě třech obdržených parametrů: id, type a is. Parametry jsou přehrávači předány pomocí HTML tagu flashVars. Parametry a jejich hodnoty jsou následně dostupné při běhu přehrávače jako proměnné typu String. <param name="flashVars" value="id=123456&type=auth&is=is.muni.cz" />
Algoritmus sestavení adresy videa probíhá následovně: 1. parametr id je upraven pomocí operace s tajným 128 bitovým klíčem; 35
2. upravené id je modifikováno hash15 funkcí (myHash); 3. na základě parametrů type a is je sestavena první část adresy (startURL, např.: http://is.muni.cz/auth/video/), pokud je některý z parametrů nedefinovaný, použije se iniciální hodnota; 4. sestavení celé adresy (klip_path). klip_path = startURL + id + "?vid=" + myHash + "&fileType=vid&FLVtext=.flv";
Parametr v adrese videa fileType označuje, že přehrávač očekává video soubor. Odeslání požadavku na video O odesílání požadavku na video se stará sama komponenta FLVPlayback, která požadavek odešle ihned poté, co je nastavena její vlastnost contentPath. myPlayback.contentPath = klip_path;
Vlastnost contentPath akceptuje pouze adresy, které jsou ukončeny řetězcem „.flv“, jedná se o primitivní kontrolu správnosti formátu. Reálně však komponenta dokáže přehrát videa formátu FLV, F4V a MP4. Z tohoto důvodu je do adresy videa přidán řetězec „FLVtext=.flv“. Řešení chybových stavů Chyby detekované přehrávačem Komponenta FLVPlayback se může nacházet v několika stavech, jedním z nich je chybový stav („connectionError“). Komponenta se v tomto stavu nachází při vyskytnutí libovolné chyby (chyba připojení, špatný formát videa, neexistující adresa, …). V případě, že posluchač událostí „myOnVideoStateChange“ detekuje výskyt chyby, tak je uživateli vypsána obecná chybová hláška. myOnVideoStateChange.stateChange = function(eventObject:Object):Void { if (myPlayback.state == "connectionError") { … errorTextBox.text = "CHYBA: Omlouváme se, video se nepodařilo přehrát, zkuste to prosím později."; …
Adobe Flash neimplementuje hash funkci. Pro účely přehrávače muselo být využito externí knihovny. 15
36
Chyby detekované IS MU Detekce chyb na straně IS MU umí chyby způsobené na straně serveru blíže specifikovat a zobrazovat k nim přesné popisy. Protože předání chybových hlášení do přehrávače není možné realizovat pomocí komponenty FLVPlayback, jsou chybová hlášení předávána pomocí XML souboru. Adobe Flash implementuje třídy a funkce pro práci s XML soubory, což umožňuje snadné parsování souboru do jednotlivých proměnných. Očekává se, že nejvíce chyb se bude vyskytovat na straně serveru a že budou souviset s nastavením přístupových práv (student přistupuje k videu, ke kterému nemá dostatečná oprávnění). Detekce takových chyb komponentou FLVPlayback může trvat i několik desítek sekund, ale server přesnou příčinu chyby zná téměř okamžitě. Proto není vhodné zjišťovat popis chyby až v momentě, kdy je chyba opravdu přehrávačem detekována. Z tohoto důvodu přehrávač odesílá požadavek na XML soubor ve stejném okamžiku, jako požadavek na video. Získané XML obsahuje informaci o tom, zda je očekávána chyba a případně její popis. V případě očekávané chyby přehrávač bez ohledu na stav komponenty FLVPlayback vypíše text chybové hlášky z obsahu errorText a ignoruje následný výskyt chyby komponenty FLVPlayback.
Pro přístup k XML souboru je využíváno stejného principu sestavení adresy, jako u sestavení adresy video souboru. Rozdílem je vynechání nepotřebných parametrů a nastavení parametru fileType na „xml“.
Parsování XML a zobrazení chybové hlášky je uvedeno v příloze I.
37
5
Návrh začlenění do IS MU
Tato kapitola je věnována analýze a návrhu začlenění funkcí pro zpřístupnění videí v rámci aplikací Informačního systému Masarykovy univerzity.
5.1
Nabízená funkcionalita
Informační systém musí kromě samotného přehrávání videí nabízet i doprovodnou funkcionalitu. Jedná se zejména o funkce spojené s manipulací s videem a jeho zpřístupněním: manipulaci se souborem videa (vč. jeho nahrání do systému); připravení pro přehrávání; nastavení přístupových práv (vč. zabezpečení proti neoprávněnému přístupu); zpřístupnění videa ve vybraných aplikacích IS MU; funkce sdílení videa (možnost vložení videa do materiálů, které nemají přímou podporu zpřístupnění videa ze strany IS MU).
5.2
HTML kód pro zobrazení přehrávače s videem
Existuje mnoho způsobů, jak vložit přehrávač (objekt typu Flash) do webové stránky. U některých způsobů se ovšem vyskytují problémy s kompatibilitou s prohlížeči a standardy. Z analýzy a testování různých variant HTML kódů vzešly dva nejvhodnější způsoby vložení přehrávače do stránky za dodržení standardů W3C organizace. Každý ze způsobů vykazoval jeden problém s kompatibilitou, a proto bylo po konzultaci s vývojovým týmem IS MU rozhodnuto o použití obou variant HTML kódu.
5.2.1 Varianta A Varianta A je vložení přehrávače pomocí tagu Object, která byla preferována Servisním střediskem pro e-learning na MU. Kód je validní, přehledný a neobsahuje netypické konstrukce kódu. Problém nastal s příchodem Internet Exploreru 9, ve kterém se za určitých podmínek přehrávač nezobrazí. Prohlížeč při vykreslení stránky objekt zcela ignoruje a běžný uživatel ani nemá možnost zjistit, že na stránce přehrávač chybí. Problém nastane vždy, když je stránka vykreslována v módu IE9 a podle standardu IE9, což je právě tehdy, když je stránka striktně a přesně definovaná podle XHTML 1.0 (Strict i Tradicional). Stránky Informačního systému jsou v Internet Exploreru 9 vykreslovány podle jiného standardu a proto zde kód funguje.
38
Veškeré parametry, které je potřeba předat přehrávači, se předávají pomocí hodnoty parametru flashVars. Parametry jsou předávány jako promenna=hodnota, oddělovačem je ampersand (&). PREHRAVAC.swf je adresa na flash objekt s přehrávačem, jehož adresa je stejná pro všechna videa. Jaké video má být přehrávačem přehráno je předáno pomocí flashVars. Parametry width a height určují velikost zobrazeného flash objektu s přehrávačem. Skutečná plocha přehrávaného videa odpovídá hodnotám width a height – 30. Ostatní části kódu jsou neměnné.
5.2.2 Varianta B Varianta B řeší problém s kompatibilitou v Internet Exploreru 9 varianty A. Řešení spočívá v rozdělení HTML kódu na část pro rodinu prohlížečů Internet Explorer, na část pro ostatní prohlížeče a na společnou část. Dělení je prováděno pomocí tzv. podmíněných komentářů. Kód je validní a nebyl nalezen žádný problém kompatibility s libovolným prohlížečem. Problémem varianty B je však kompatibilita s agendami v Informačním systému. Agendy umožňující vkládání HTML kódu částečně filtrují uživatelem vkládaný obsah za účelem zajištění bezpečnosti a spolehlivosti. Agendy při vkládání odstraní podmíněné komentáře včetně jeho obsahu a tím se vkládaný kód stane nefunkční.
39
Význam a práce s kódem je téměř shodná s variantou A, rozdílem je zdvojení parametru width a height. Zbylé nové části kódu jsou neměnné.
5.2.3 Shrnutí Pro veškeré zobrazení přehrávače řízené Informačním systémem je vhodné použít Variantu B, která nevykazuje žádný problém kompatibility s webovými prohlížeči. Pro funkcionalitu sdílení videa formou zpřístupnění HTML kódu pro vložení přehrávače do agend Informačního systému Masarykovy univerzity je nutné použít variantu A. Uživatelé mohou přehrávač vkládat pomocí HTML kódu i do vlastních materiálů (webových stránek), proto je vhodné u funkce sdílení nabídnout i variantu B jako druhou možnost.
5.3
Výběr vhodných agend
Ze schůzky se členy uživatelské podpory IS MU, některými vývojáři a vedoucími pracovníky vyplynula potřeba začlenění funkcionality do následujících agend: Studijní materiály; Odpovědníky; Interaktivní osnovy. Následnou analýzou zbylých agend Informačního systému MU byla vybrána skupina agend, u kterých má význam uvažovat o začlenění funkcionality. Jedná se o agendy: Dril; Pošta; Diskusní fórum; Setkávání a spolužáci; Absolvent; 40
Můj web.
V následujících podkapitolách jsou rozebrány jednotlivé agendy s uvedením, zda je vhodné do agend implementovat novou funkcionalitu spojenou s přehráváním videí, či nikoli. Implementace nové funkcionality spojené s přehráváním videí je následně označována jako přímá podpora. Pokud je uvedeno, že není nutné zavádět přímou podporu, tak to znamená, že video soubory lze do agendy vkládat s využitím existujících prostředků agendy a toto je potřebám uživatelů dostačující, nebo vkládání video souborů není žádoucí. U agend, u kterých je vyhodnoceno, že je vhodné zavedení přímé podpory, je poté v kapitole 5.4 Návrh uživatelského rozhraní vytvořen konkrétní návrh uživatelských obrazovek s popisem funkčnosti.
5.3.1 Studijní materiály Agenda studijní materiály obsahuje několik aplikací sloužících ke správě studijních materiálů. Pro začlenění přehrávače videa je podstatná aplikace Správce souborů. Správce souborů slouží mimo jiné k nahrávání veškerých souborů do Informačního systému, nastavení přístupových práv. Je tak nezbytný pro vložení videa do systému a nastavení jeho přístupových práv. Video není možné do systému nahrát jiným způsobem než pomocí Správce souborů. Z tohoto důvodu je správce souborů vhodný pro všechny funkce potřebné ke zpřístupnění video souborů, tedy: manipulaci se soubory videí; připravení pro přehrávání; nastavení přístupových práv; přehrání video souboru; sdílení.
5.3.2 Odpovědníky Odpovědníky jsou elektronické testy umožňující jednoduchou tvorbu různých typů otázek s možností automatického vyhodnocení odpovědí. Na Masarykově univerzitě se jedná o rozšířený způsob pro procvičování i testování studentů. Video nahrávky jsou nyní využívány zejména při procvičování a testování jazyků, didaktiky a sportovních disciplín. Vkládání video souborů vyučující doposud řeší využitím uživatelské podpory, nebo použitím specializovaných nástrojů (například GEM [56]). Z dlouhodobého pohledu to není udržitelný stav, proto je vhodné navrhnout přímou podporu vkládání video souborů. Při návrhu je potřeba zohlednit, že vyučující mohou vytvářet různé typy otázek, které mají obecně odlišnou strukturu. Řešení by mělo být funkční pro všechny typy otázek a být lehce rozšiřitelné i pro nové typy otázek, které v budoucnu mohou vzniknout. Řešení by také mělo respektovat specifické nároky na zabezpečení testů proti neoprávněnému přístupu.
5.3.3 Interaktivní osnovy Interaktivní osnovy slouží k organizaci studijních materiálů a informací k probíhající výuce. Nástroje interaktivních osnov umožňují rozčlenit studijní materiály a informace k výuce do časových celků, typicky po týdnech výuky. Kromě textů a odkazů lze do osnov jednoduše vložit obrázky, PDF, odkazy na procvičování a testy a pomocí HTML editoru i další objekty. Jednodu41
chý způsob vložení přehrávače videa do interaktivních osnov je žádoucí. Přehrávač videa by mělo být možno vložit do osnovy jednoduchým způsobem, podobně, jako je vložení PDF.
5.3.4 Dril Dril slouží k memorování učiva, které je nutné znát nazpaměť, typicky slovíček. Jedná se o tzv. kartičkovou metodu založenou na Spaced repetition, jejímž autorem je Piotr A. Wozniak [57]. V současnosti drilové učebnice využívají text, obrázky a zvukové nahrávky, video zatím nebylo využito. Uživatelská podpora IS MU nezaznamenala žádný požadavek na začlenění video souborů do drilu. Pokud by takový požadavek vznikl, tak vložení videí lze řešit individuálně a v současnosti není nutné, z důvodu ušetření programátorských kapacit, vkládat přímou podporu ze strany IS MU.
5.3.5 Pošta Pošta slouží k rozesílání a přijímání e-mailových zpráv. Uživatelé pro čtení pošty mohou využívat různých poštovních klientů. Proto z důvodu zachování funkčnosti není vhodné vkládat přehrávač přímo do zprávy. Pro výuku je však důležité, aby vyučující měl možnost studentům poslat odkaz přímo na video. Není nutné vkládat přímou podporu do poštovní agendy v IS MU, postačí, aby vyučující měl možnost získat odkaz na video, například ve Správci souborů.
5.3.6 Diskusní fórum Diskusní fórum slouží ke komunikaci mezi studenty, případně mezi studenty a jejich vyučujícími. Diskusní fóra v IS MU mohou být napojena na hodnotící systém, vyučující tak může příspěvky svých studentů hodnotit, díky čemuž se diskuse může stát plnohodnotným prvkem elektronické podpory výuky. Vložit video do příspěvku diskusního fóra je možné pomocí HTML kódu, který vyučující získá například ve Správci souborů. Z konzultace s vývojáři IS MU vyplynulo, že není nutné implementovat přímou podporu vkládání videa.
5.3.7 Setkávání a spolužáci Agenda Setkávání a spolužáci sdružuje několik agend, jejíž hlavním úkolem je setkávání a poznávání se se spolužáky. Agendy umožňují studentům vytvářet zájmové kruhy (agenda Kruhy), v rámci kterých mohou mezi sebou sdílet různé informace. Je zde také agenda Blog pro tvorbu osobních blogů a Vývěska pro inzerci. Každý kruh založený v agendě Kruhy poskytuje uživatelům prostor mimo jiné pro vkládání zpráv (Nástěnka) a vkládání souborů (Náš web). Účel nástěnky je zejména pro vkládání krátkých zpráv a pozvánek, není tedy nutné vkládat přímou podporu umisťování videí, umístění pomocí HTML kódu je plně dostačující. Náš web umožňuje vkládání fotografií a dále obecných souborů. Přidání přímé podpory vkládání video souborů je v této části vhodné. V agendě Blogy mají uživatelé, či skupiny uživatelů prostor ke svému vyjádření formou článků. Články neboli příspěvky jsou vkládány textovým polem s možností interpretace jako HTML. To umožňuje vložení video souborů pomocí HTML kódu do libovolného místa příspěvku. Vkládání příspěvků neobsahuje přímou podporu vkládání jakýchkoli multimediálních objektů vč. obrázků, proto není nutné v současnosti uvažovat o zavedení přímé podpory videí. Na Vývěsce oprávněné osoby publikují důležité informace, v části Inzerce pak uživatelé mohou inzerovat nabídku či poptávku různých komodit nebo vyvěsit pozvánky na pořádané 42
akce. Mezi inzerované komodity patří učebnice, doučování, bydlení, spolujízda a další. Účelem vývěsky je vyvěšení stručných zpráv s případným odkazem na více informací. Vkládání multimediálního obsahu není podporováno a dokonce určité formy obsahu jsou přímo programově filtrovány. V tomto případě je podpora vkládání videí přímo nežádoucí.
5.3.8 Absolventi Agenda Absolventi není primárně určena pro vzdělávání, ale spíše pro setkávání absolventů, získávání kontaktů na své bývalé spolužáky a udržení kontaktu se svou Alma mater. Agenda sdružuje několik agend, jako jsou Diskusní fóra, Pošta, Kruhy a další. U všech agend z agendy Absolventi, u kterých je relevantní začlenění podpory přehrávání videí, bylo řešení již diskutováno v předchozích podkapitolách a proto nebude dále rozváděno.
5.3.9 Můj web V agendě Můj web mají uživatelé IS MU k dispozici prostor pro své webové prezentace. Pro tvorbu prezentací mohou využít vlastních aplikací, či CKEditor [58] implementovaný v IS MU jako HTML editor. Pokud by se přidávala přímá podpora vkládání videí, musela by se vložit právě do HTML editoru. Takový zásah do externího programu není jednoduchý a s každou aktualizací editoru by se musel zásah opakovat. Přímá podpora v HTML editoru by navíc postihla pouze a právě tu část uživatelů, kteří jej používají. HTML editor umožňuje vkládat i části zdrojového kódu a proto jako nejvhodnější a zároveň nejuniverzálnější řešení je, aby uživatelé měli k dispozici HTML kód pro vložení přehrávače a ten si mohli do svých webových prezentací zkopírovat. Takové řešení bude přínosné i uživatelům využívajících pro tvorbu webových prezentací vlastní programy. HTML kód pro vložení přehrávače by uživatelé měli získat ve Správci souborů.
5.3.10 Shrnutí Z analýzy agendy vyplývá, že je vhodné začlenění přímé podpory přehrávání video souborů do následujících agend: Správce souborů; Odpovědníky; Interaktivní osnovy; Náš web v agendě Kruhy. U ostatních agend je plně dostačující možnost zpřístupnění video souborů pomocí existujících funkcí a postupů, nebo je zpřístupnění videí nežádoucí. Není tedy nutné provádět programátorské zásahy do těchto agend.
5.4
Návrh uživatelského rozhraní
Tato podkapitola obsahuje návrhy začlenění podpory práce s video soubory v agendách Informačního systému Masarykovy univerzity. Jedná se o upravené snímky reálných obrazovek IS MU doplněné o popis, které slouží jako podklad vývojářům IS MU. Začlenění podpory práce s video soubory se týká následujících agend vybraných v předchozí kapitole: Správce souborů; 43
Odpovědníky; Interaktivní osnovy; Náš web v agendě Kruhy.
Navrhované úpravy agend plně respektují grafický směr IS MU, využívají existujících prvků a CSS tříd a navrhované změny nenarušují bezpečnost systému.
5.4.1 Správce souborů Návrh počítá se třemi novými funkcemi: připravení videa k přehrávání, přehrávání videa a sdílení. Připravení videa k přehrávání Každý soubor vložený do Informačního systému, který je systémem rozpoznán jako video soubor, bude mít přidanou funkcionalitu umožňující připravit video k přehrávání. Rozšířená funkcionalita se zobrazí pod souborem v okamžiku kliknutí na soubor (Obrázek 5.1) – tj. podobně jako rozšířená funkcionalita u souborů se sadami otázek pro Odpovědníky IS MU. Zobrazený rámeček obsahuje typ a název souboru, jeho velikost a funkci pro vytvoření přehrávače videa a stáhnutí video souboru. Rozšířenou funkcionalitu mají k dispozici pouze uživatelé s dostatečnými přístupovými právy k video souboru, ostatní uživatelé se nedostanou jak k novým funkcím, tak k původnímu video souboru.
Obrázek 5.1 Rozšířená funkcionalita video souboru ve Správci souborů
Kliknutím na odkaz Vytvořit přehrávač videa se uživatelovi zobrazí obrazovka s nastavením převodu videa (Obrázek 5.2). Uživatel má k dispozici základní nastavení přístupových práv, resp. převzetí přístupových práv z existujících objektů a základní nastavení kvality. Obrazovka obsahuje i pokročilá nastavení, které umožňují ovlivnit nejdůležitější vlastnosti videa. Nastavení lze využít pro korekci chyb v informacích uložených v původním video souboru způsobené jeho dřívějšími neodbornými úpravami.
44
Obrázek 5.2 Návrh nastavení převodu videa
Po kliknutím na odkaz Zařadit do fronty na převod videa se video zařadí do fronty na převod do MP4 a je v co nejkratším možném čase převedeno do MP4. Převedený soubor je ve Správci souborů přiřazen k původnímu video souboru podobně, jako je tomu např. u automaticky vytvářených PDF souborů. Přiřazený soubor je znázorněn přidáním druhé ikonky, viz první řádek v obrázku 5.3. Zároveň s převedeným souborem vznikne nový soubor Přehrávač videa, který je ve Správci souborů uložen odděleně od video souborů, tj. je zobrazen na vlastním řádku, viz druhý řádek v obrázku 5.3.
Obrázek 5.3 Nově vytvořený přehrávač videa
Protože je přehrávač videa fyzicky oddělen od přehrávaného videa, může tak mít nastavena odlišná přístupová práva.
45
V rozšířené funkcionalitě u původního souboru přibyla možnost stáhnutí nově vytvořeného video souboru (viz horní část na obrázku 5.4). Přehrávač videa má také rozšířenou funkcionalitu, která umožňuje přehrání a sdílení videa (viz spodní část na obrázku 5.4). Uživatel má přístup k rozšířené funkcionalitě u přehrávače videa pouze, pokud má dostatečná přístupová práva. Jednotlivé možnosti přístupu jsou uvedeny v tabulce 5.1.
Obrázek 5.4 Návrh rozšířené funkcionality po převedení videa do MP4
Přístupová práva Video soubor Přehrávač videa
Akce
číst
spravovat
číst
spravovat
Vytvoření přehrávače
ano ano ne ne
ano ne ne ne
ano ne ano ne
ano/ne ne ano/ne ne
ano ne ne ne
Stáhnutí původního videa ano ano ne ne
Stáhnutí převedeného videa ano ano ne ne
Přehrát video ano ne ano ne
Tabulka 5.1 Nastavení přístupových práv a s tím související přístupné akce
Přehrání videa Rozšířená funkcionalita přehrávače videa umožňuje přehrát video dvěma způsoby. Prvním způsobem je zobrazení přehrávače přímo ve stránce Správce souborů (Obrázek 5.5) a druhým způsobem je otevření přehrávače v samostatném okně (Obrázek 5.6).
46
Obrázek 5.5 Návrh přehrání videa ve Správci souborů
Obrázek 5.6 Návrh přehrání videa v samostatné stránce
Pro přehrání ve Správci souborů je využito přizpůsobené JavaScriptové knihovny PrettyPhoto [59], jejíž licence umožňuje použití i přizpůsobení potřebám IS MU. Přizpůsobení zahrnovalo přeložení tlačítek do českého jazyka a integraci vlastního přehrávače videí. Sdílení Funkce sdílení poskytuje uživatelům potřebné informace k vložení videa do materiálů bez přímé podpory vložení videí (Obrázek 5.7). Obsahuje přímý odkaz na video, resp. přehrávač videa a tzv. embed video, což znamená HTML kód pro vložení přehrávače do libovolných materiálů s podporou HTML. HTML kód je možno upravit pokročilým nastavením a tím ovlivnit vzhled a chování zobrazeného přehrávače. Ovlivnit lze následující vlastnosti: určení přehrávače: o ovlivňuje typ použitého HTML kódu, viz kapitola 5.2 HTML kód pro zobrazení přehrávače s videem; nastavení přístupových práv; velikost přehrávače a tím i velikost přehrávaného videa; 47
poměr stran přehrávače: o možnost eliminace černých pruhů kolem videa; automatické spuštění přehrávání videí; přehrávání videa ve smyčce.
Přepínáním hodnot v nastavení se změny ihned promítají do zobrazeného HTML kódu.
Obrázek 5.7 Návrh funkce sdílení
5.4.2 Odpovědníky Z důvodu velkého počtu různých typů otázek je nutné navrhnout přímou podporu vkládání videa tak, aby byl návrh použitelný ve všech typech otázek. Otázky jsou uživateli tvořeny přímo v Informačním systému pomocí speciálních formulářů, pokročilejší uživatelé vkládají otázky hromadně pomocí textového vstupu v přesně daném formátu. Formuláře pro vkládání otázek jsou co nejjednodušší, aby byly uživateli snadno pochopitelné. Nelze pouze přidat tlačítka pro vkládání video souborů, protože by se zvýšila složitost formulářů a zároveň se snížila jejich přehlednost. Navíc by tlačítko pro vložení video souboru muselo být na formuláři několikrát a to u každého políčka. Nejvhodnějším řešením je skrytá podpora vkládání videí. Uživatel na místo, kde chce mít vložený video soubor, vloží odkaz na video získaný ve Správci souborů (Obrázek 5.8). Ukázka vyplněného formuláře pro otázku s výběrem více správných odpovědí je na obrázku 5.9. Infor48
mační systém poté vždy, když při interpretaci otázky detekuje adresu na přehrávač videa, zobrazí místo adresy příslušné video (Obrázek 5.10).
Obrázek 5.8 Odkaz na video ve Správci souborů
Obrázek 5.9 Ukázka vyplněného formuláře se zadaným odkazem na video
49
Obrázek 5.10 Ukázka interpretované otázky z obrázku 5.9
5.4.3 Interaktivní osnovy Vložení videa do Interaktivní osnovy by mělo probíhat stejným způsobem, jako vložení PDF, nebo procvičovacího testu. V nabídce, která toto umožňuje, přibude možnost Video (Obrázek 5.12).
50
Obrázek 5.11 Současný stav nabídky dostupných objektů pro vložení do Interaktivní osnovy
Obrázek 5.12 Návrh upravené nabídky dostupných objektů pro vložení do Interaktivní osnovy
Po kliknutí na možnost Video se zobrazí okénko pro vložení adresy videa s možností vyhledat video ve Správci souborů (Obrázek 5.13). Jedná se o stejné chování, jako při vkládání jiného souboru. Uživatel může zadat název videa, který bude u přehrávače zobrazen.
Obrázek 5.13 Návrh vložení adresy na video soubor s možností dohledání ve Správci souborů
Po uložení se v daném místě zobrazí přehrávač s příslušným videem. Protože se v jedné osnově může vyskytovat více videí, přehrávač by měl mít vypnuté automatické spuštění přehrávání videa. Uživatelé se specifickými požadavky mohou videa vkládat pomocí HTML kódu získaného ve Správci souborů.
5.4.4 Náš web v agendě Kruhy Videa v agendě Kruhy by se měla seskupovat do Videogalerie podobně jako fotky do Fotogalerie. Vkládání videa by mělo probíhat podobně, jako vkládání jiného souboru. Po vložení se 51
vytvoří nová položka v seznamu videí (Obrázek 5.14). Po kliknutí na položku seznamu se zobrazí video přehrávač pomocí JavaSriptové knihovny PrettyPhoto podobně, jak je tomu ve Správci souborů.
Obrázek 5.14 Návrh začlenění Videogalerie do aplikace Náš web v agendě Kruhy
52
6
Závěr
Cílem práce bylo navrhnout systém na přehrávání video souborů online využitelný v rámci Informačního systému Masarykovy univerzity, který uživatelům zjednoduší publikování video souborů v univerzitním prostředí. Návrh respektuje omezení daných finančními možnostmi a architekturou Informačního systému Masarykovy univerzity. Vychází z požadavků vývojového týmu IS MU a také požadavků vyučujících plynoucí z praxe. Navrhovaný systém tak odstraňuje technické překážky, které vyučujícím dříve bránily v efektivním a rutinním zařazovaní svých video záznamů do výuky. Součástí práce je kompletní návrh systému na přehrávání video souborů online s konkrétními návrhy řešení a postupů, jejichž správnost byla ověřena testováním. V současnosti probíhá na základě výsledků této práce a četných konzultací realizace v Informačním systému Masarykovy univerzity. V době psaní práce byla již základní funkcionalita16 implementována a předána k testování členům uživatelské podpory. V následujících týdnech je plánováno spuštění testovacího provozu systému pro všechny uživatele IS MU a následné postupné začleňování přímé podpory vkládání video souborů do agend Informačního systému dle návrhů v této práci. Postupně tak vzniká v prostředí českého školství svou komplexností a zaměřením zcela unikátní systém. Vznikající systém ve všech oblastech odpovídá současným trendům a zvyklostem uživatelů v oblasti přehrávání video souborů online, ale zároveň udržuje dostatečnou míru rozšířenosti používaných technologií a formátů. Systém je také připraven na další rozvoj a rozšiřování svých možností v budoucnu, kterým může být: 1. nahrazení metody přenosu dat mezi serverem a uživatelem progressive download metodou streaming; 2. nabízení více technologií pro přehrání videa a tím rozšířit použitelnost; 3. nabízet více kvalitativních úrovní video záznamů, tj. nabízet video v nízké i vysoké kvalitě; 4. nejperspektivnější oblastí rozvoje pak nabízí oblast elektronické podpory výuky, kdy lze umožnit uživatelům videa titulkovat, členit na celky a podobně. Zejména pro poslední zmíněnou možnost rozvoje by mohla vzniknout navazující práce, která by podrobně analyzovala možnosti využití videa v rámci elektronické podpory výuky. Práce by měla zohlednit potřeby vyučujících Masarykovy univerzity a navrhnout vhodná rozšíření systému implementovatelná v rámci IS MU.
16
Základní funkcionalitou je myšlena kompletní funkcionalita navržená pro Správce souborů.
53
7
Literatura
[1]
Informační systém Masarykovy univerzity. Které školy používají náš systém? [online]. [Brno]: Fakulta informatiky Masarykovy univerzity, [1999–2012] [cit. 20. listopadu 2011]. Dostupné z internetu: .
[2]
Adobe Systems Incorporated. Video Learning Guide for Flash: Progressive and streaming video [online]. [San Jose, USA]: Adobe Systems Inc., 22 February 2011 [cit. 7. listopadu 2011]. Dostupné z internetu: .
KLIMEŠ, Cyril, SMOLKA, Pavel. Integrace multimediálních komponent do prostředí LMS Moodle. In: MoodleMoot.cz 2011 [online]. Ostrava: Vysoká škola báňská – Technická univerzita Ostrava, 23. září 2011 [cit. 5. listopadu 2011]. Dostupné z internetu: .
[11]
KOPETSCHKE, Igor, CÍSAŘOVÁ, Klára, VRANÝ, Jiří. E-learning + STudijní AGenda + rich media = Moodle 3v1 [online]. Ostrava: Vysoká škola báňská – Technická univerzita Ostrava, 23. září 2011 [cit. 5. listopadu 2011]. Dostupné z internetu: .
[12]
Elportál. Servisní středisko pro e-learning [online]. Brno: Masarykova univerzita, [2006–] [cit. 8. listopadu 2011]. ISSN 1802-128X. Dostupné z internetu: .
[13]
SCHWARZ, Daniel, DUŠEK, Ladislav. Webový portál LF MU pro multimediální podporu výuky klinických a zdravotnických oborů. Multimediální podpora výuky klinických a zdravotnických oborů [online]. 2011 [cit. 8. listopadu 2011]. ISSN 1801-6103. Dostupný z internetu: .
54
[14]
Masarykova univerzita, Fakulta sportovních studií. Fakulta sportovních studií: Kontakty [online]. Brno: Masarykova univerzita, 4.11.2011 [cit. 8. listopadu 2011]. Dostupné z internetu: .
URO, Tinic. The quest for a new video codec in Flash 8 [online]. San Francisco, USA: Kaouratin.net, August 13, 2005 [cit. 16. listopadu 2011]. Dostupné z internetu: .
[17]
WIEGAND, Thomas, SULLIVAN, Gary J., BJØNTEGAARD, Gisle, and LUTHRA, Ajay. Overview of the H.264/AVC Video Coding Standard [online]. IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, July 2003 [cit. 10. prosince 2011]. Dostupné z internetu: .
[18]
International Telecommunication Union. H.264 : Advanced video coding for generic audiovisual services [online]. [Geneva, Švýcarsko]: ITU, updated: 2011.09.22 [cit. 10. prosince 2011]. Dostupné z internetu: .
BELLARD, Fabrice. FFmpeg License and Legal Considerations [online]. 2000– [cit. 11. prosince 2011]. Dostupné z internetu: .
[21]
O’REILLY, Tom. Busines Wire: MPEG LA’s AVC License Will Not Charge Royalties for Internet Video That Is Free to End Users Through Life of License [online]. [Los Angeles]: Business Wire, August 26, 2010 [cit. 10. prosince 2011]. Dostupné z internetu: .
DEVERIA, Alexis. When can I use… Support tables for HTML5, CSS3, etc. [online] [USA], [December 13, 2011] [cit. 10. prosince 2011]. Dostupné z internetu: .
[24]
The WebM Project. The WebM Project: About the WebM Project [online]. The WebM Project, copyright 2010–2011 [cit. 10. prosince 2011]. Dostupné z internetu: .
ŠTĚPÁN, Janda. Tiskové zprávy: iVysílání ČT už jen v nové verzi [online]. [Praha]: Česká televize, 4. 5. 2011 [cit. 14. listopadu 2011]. Dostupné z internetu: .
DreamingWell.com. Rich Internet Application Statistics [online]. [Reston, USA]: DreamingWell.com, [1998–2011] [cit. 12. listopadu]. Dostupné z internetu: .
[31]
Microsoft Silverlight. About Silverlight [online]. Microsoft Corporation, [cit. 12. listopadu 2011]. Dostupné z internetu: .
[32]
HICKSON, Ian. HTML5: A vocabulary and associated APIs for HTML and XHTML: W3C Working Draft 25 May 2011 [online]. [Biot, Francie]: W3C, 25 May 2011 [cit. 12. listopadu 2011]. Dostupné z internetu: .
[33]
RICK, Christophor. ReelSEO: A Baker's Dozen List of "HTML5" Video Encoding Tools [online]. ReelVideo, LLC, posted 2010 [cit. 17. listopadu 2011]. Dostupné z internetu: .
[34]
[microbooster]. About divxenc [online]. [microbooster], [2011] [cit. 22. listopadu 2011]. Dostupné z internetu: .
[35]
KRAUS, Marco. Konverter [online]. Marco Kraus, 24.06.2005 [cit. 22. listopadu 2011]. Dostupné z internetu: .
[36]
Movieconvert [online]. [email protected] [cit. 22. listopadu 2011]. Dostupné z internetu: .
[37]
matho. SouceForge.net: smsg [online]. matho, 20 January 2009 [cit. 22. listopadu 2011]. Dostupné z internetu: .
[38]
NIKOLOV, Grozdan. h264enc - The interactive shell script ripper [online]. Nikolov Grozdan, [2011-10-10] [cit. 22. listopadu 2011]. Dostupné z internetu: .
almatic. SourceForge.net: Hyper Video Converter [online]. Geeknet, Inc., 2011-06-23 [cit. 22. listopadu 2011]. Dostupné z internetu: .
[41]
Convert AVI to MP4 [online]. convertavitomp4.com, Copyright 2009 [cit. 22. listopadu 2011]. Dostupné z internetu: .
[42]
NCH Software. Prism Video Converter Software [online]. [Canberra, Australia a Denver Colorado]: NCH Software company, [cit. 22. listopadu 2011]. Dostupné z internetu: .
WILLIAMS, Robin. The Non-Designer's Design Book: Design and Typographic Principles for the Visual Novice. Third Edition. Berkeley, California, USA: Peachpit Press, 2008. ISBN 0-321-53404-2.
BELLARD, Fabrice. ffmpeg-0.7 [software]. Verze 0.7.7. [přístup 12. listopadu 2011].
Seznam obrázků Obrázek 4.1 Zakreslení návrhu přehrávače do mřížky ....................................................................... 28 Obrázek 4.2 Návrh vzhledu přehrávače .................................................................................................... 29 Obrázek 4.3 Detail časové osy přehrávače ............................................................................................... 29 Obrázek 4.4 Ovládání hlasitosti .................................................................................................................... 30 Obrázek 4.5 Detail časové osy po úpravě.................................................................................................. 30 Obrázek 4.6 Finální vzhled přehrávače ..................................................................................................... 31 Obrázek 4.7 Ukázka chybného zobrazení při změně velikosti přehrávače ................................ 35 Obrázek 5.1 Rozšířená funkcionalita video souboru ve Správci souborů ................................... 44 Obrázek 5.2 Návrh nastavení převodu videa .......................................................................................... 45 Obrázek 5.3 Nově vytvořený přehrávač videa ........................................................................................ 45 Obrázek 5.4 Návrh rozšířené funkcionality po převedení videa do MP4 .................................... 46 Obrázek 5.5 Návrh přehrání videa ve Správci souborů ...................................................................... 47 Obrázek 5.6 Návrh přehrání videa v samostatné stránce .................................................................. 47 Obrázek 5.7 Návrh funkce sdílení ................................................................................................................ 48 Obrázek 5.8 Odkaz na video ve Správci souborů ................................................................................... 49 Obrázek 5.9 Ukázka vyplněného formuláře se zadaným odkazem na video ............................. 49 Obrázek 5.10 Ukázka interpretované otázky z Obrázku 5.9 ............................................................. 50 Obrázek 5.11 Současný stav nabídky dostupných objektů pro vložení do Interaktivní osnovy...................................................................................................................................................................... 51 Obrázek 5.12 Návrh upravené nabídky dostupných objektů pro vložení do Interaktivní osnovy...................................................................................................................................................................... 51 Obrázek 5.13 Návrh vložení adresy na video soubor s možností dohledání ve Správci souborů ................................................................................................................................................................... 51 Obrázek 5.14 Návrh začlenění Videogalerie do aplikace Náš web v agendě Kruhy................ 52
58
Seznam tabulek Tabulka 3.1 Shrnutí formátů videa, zdroj dat: [23], [27] ................................................................... 13 Tabulka 3.2 Hodnocení kritéria automatizace postupu ..................................................................... 17 Tabulka 4.1 Parametry předávané aplikací IS MU přehrávači ........................................................ 23 Tabulka 4.2 Srovnání vybraných vlastností přehrávačů s plánovaným návrhem .................. 24 Tabulka 4.3 Možnosti uživatelského nastavení a iniciální hodnoty .............................................. 26 Tabulka 4.4 Seznam vybraných objektů se jmény instancí .............................................................. 32 Tabulka 4.5 Seznam definovaných funkcí a posluchačů .................................................................... 32 Tabulka 5.1 Nastavení přístupových práv a s tím související přístupné akce .......................... 46
Seznam zkratek IS MU MU FSpS LF WMP IE RIA
Informační systém Masarykovy univerzity Masarykova univerzita Fakulta sportovních studíí (Masarykovy univerzity) Lékařská fakulta (Masarykovy univerzity) Windows Media Player Internet Explorer Rich Internet Application
59
8
Přílohy
Příloha A Příloha B Příloha C Příloha D Příloha E Příloha F Příloha G Příloha H Příloha I
Seznam vlastností a formátů videí pro testování software na konverzi do MP4 Konfigurace počítačů použitých pro testování Tabulka s vyhodnocením kritérií pro výběr softwaru pro konverzi videí do MP4 Pseudokód Seznam příkazových řádků generovaných prototypem na konverzi videí do MP4 Tabulka vyhodnocení sledovaných aspektů videí převedených do MP4 pomocí prototypu Srovnání přehrávačů videa na vybraných serverech Zdrojový kód řešení chyby zobrazení generovaných objektů při změně velikosti přehrávače Zdrojový kód pro načtení a zpracování XML souboru
60
Příloha A Seznam vlastností a formátů videí pro testování software na konverzi do MP4 General ID : 0 (0x0) Complete name : 1920x1080-avc-aac.mts Format : BDAV Format/Info : Blu-ray Video File size : 42.1 MiB Duration : 20s 970ms Overall bit rate : 16.7 Mbps Maximum Overall bit rate : 18.0 Mbps Video ID : Menu ID : Format : Format/Info : Format profile : Format settings, CABAC : Format settings, ReFrames: Codec ID : Duration : Bit rate mode : Bit rate : Maximum bit rate : Width : Height : Display aspect ratio : Frame rate : Color space : Chroma subsampling : Bit depth : Scan type : Scan order : Bits/(Pixel*Frame) : Stream size : Audio ID Menu ID Format Format/Info Mode extension Codec ID Duration Bit rate mode Bit rate Channel(s) Channel positions Sampling rate Bit depth Compression mode Delay relative to video Stream size
General Complete name : 320x240-wmv3-wma2.wmv Format : Windows Media File size : 26.6 MiB Duration : 7mn 9s Overall bit rate mode : Variable Overall bit rate : 520 Kbps Maximum Overall bit rate : 917 Kbps Encoded date : UTC 2008-11-20 19:23:11.203 Video ID Format Format profile Codec ID Codec ID/Info 9 Codec ID/Hint Description of the codec 9 Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size
: : : : :
2 VC-1 MP@LL WMV3 Windows Media Video
: WMV3 : Windows Media Video : : : : : : : : : : : :
Audio ID : 1 Format : WMA Format version : Version 2 Codec ID : 161 Codec ID/Info : Windows Media Audio Description of the codec : Windows Media Audio 9.2 - 64 kbps, 44 kHz, stereo 2-pass VBR Duration : 7mn 9s Bit rate mode : Variable Bit rate : 64.7 Kbps Channel(s) : 2 channels Sampling rate : 44.1 KHz Bit depth : 16 bits Stream size : 3.31 MiB (12%)
61
General Complete name : 320x240-wmv3-wma2_2.wmv Format : Windows Media File size : 10.8 MiB Duration : 5mn 49s Overall bit rate mode : Variable Overall bit rate : 259 Kbps Maximum Overall bit rate : 557 Kbps Encoded date : UTC 2006-11-30 06:22:25.906 Video ID Format Format profile Codec ID Codec ID/Info 9 Codec ID/Hint Description of the codec 9 Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size
: : : : :
2 VC-1 MP@LL WMV3 Windows Media Video
: WMV3 : Windows Media Video : : : : : : : : : : : :
Audio ID : 1 Format : WMA Format version : Version 2 Codec ID : 161 Codec ID/Info : Windows Media Audio Description of the codec : Windows Media Audio 9.1 - 48 kbps, 44 kHz, stereo 2-pass VBR Duration : 5mn 49s Bit rate mode : Variable Bit rate : 48.1 Kbps Channel(s) : 2 channels Sampling rate : 44.1 KHz Bit depth : 16 bits Stream size : 2.00 MiB (19%)
General Complete name : 352x240-mpeg1-mpeg1_layer2.MPG Format : MPEG-PS File size : 338 MiB Duration : 47mn 40s Overall bit rate : 991 Kbps Video ID Format Format version Format settings, BVOP Format settings, Matrix Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Standard Color space Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size
Audio ID Format Format version Format profile Duration Bit rate mode Bit rate Channel(s) Sampling rate Compression mode Delay relative to video Stream size
General Complete name : 352x288-mpeg1-mpeg1_layer2.mpg Format : MPEG-PS File size : 449 MiB Duration : 45mn 10s Overall bit rate : 1 390 Kbps Writing library : MPEG12_RT_BS_RF1 Video ID Format Format version Format settings, BVOP Format settings, Matrix Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Standard Color space Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library Audio ID Format Format version Format profile Duration Bit rate mode Bit rate Channel(s) Sampling rate Compression mode Delay relative to video Stream size
Video ID Format Format version Format settings, BVOP Format settings, Matrix Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Standard Color space Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size
General Complete name Format Format profile Codec ID File size Duration Overall bit rate Encoded date Tagged date Writing application Comment
: : : : : : : : : : :
640x360-h264-aac_lc.mp4 MPEG-4 Base Media isom 11.8 MiB 2mn 11s 756 Kbps UTC 2011-04-15 09:39:23 UTC 2011-04-15 09:39:23 vlc 1.1.8 stream output QuickTime 6.0 or greater
Video ID : 2 Format : AVC Format/Info : Advanced Video Codec Format profile : [email protected] Format settings, CABAC : Yes Format settings, ReFrames: 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 2mn 11s Bit rate mode : Variable Bit rate : 633 Kbps Width : 640 pixels Height : 360 pixels Display aspect ratio : 16:9 Frame rate : 25.000 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.110 Stream size : 9.92 MiB (84%) Language : English Encoded date : UTC 2011-04-15 09:39:23 Tagged date : UTC 2011-04-15 09:39:23 Audio ID Format Format/Info Format profile Codec ID Duration Bit rate mode Bit rate Maximum bit rate Channel(s) Channel positions Back: L R, LFE= 2 Sampling rate Compression mode Stream size Language Encoded date Tagged date
General Complete name : 640x360-mpeg4visual-aac_lc.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom File size : 5.14 MiB Duration : 2mn 13s Overall bit rate : 323 Kbps Writing application : Lavf52.104.0 Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Codec ID Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate mode Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library
Audio ID Format Format/Info Format profile Codec ID Duration Bit rate mode Bit rate Channel(s) Channel positions Sampling rate Compression mode Stream size
: 88.2 KHz / 96.0 KHz : Lossy : 1.79 MiB (15%) : English : UTC 2011-04-15 09:39:23 : UTC 2011-04-15 09:39:23
64
General Complete name Format Format/Info Interleave File size Duration Overall bit rate Writing library 32559/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Muxing mode Codec ID Codec ID/Hint Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library (UTC 2006-11-01)
: 640x360-xvid-mp3.avi : AVI : Audio Video : : : :
Audio ID : 1 Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Mode : Joint stereo Codec ID : 55 Codec ID/Hint : MP3 Duration : 1h 3mn Bit rate mode : Constant Bit rate : 128 Kbps Channel(s) : 2 channels Sampling rate : 48.0 KHz Compression mode : Lossy Stream size : 57.9 MiB (36%) Alignment : Split accross interleaves Interleave, duration : 40 ms (1.00 video frame) Interleave, preload duration : 500 ms
General Complete name Format Format/Info Interleave File size Duration Overall bit rate Writing library 28312/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Muxing mode Codec ID Codec ID/Hint Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library (UTC 2006-11-01)
: 640x360-xvid-mp3_2.avi : AVI : Audio Video : : : :
Audio ID : 1 Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Mode : Joint stereo Codec ID : 55 Codec ID/Hint : MP3 Duration : 21mn 56s Bit rate mode : Constant Bit rate : 160 Kbps Channel(s) : 2 channels Sampling rate : 48.0 KHz Compression mode : Lossy Stream size : 25.1 MiB (21%) Alignment : Split accross interleaves Interleave, duration : 40 ms (1.00 video frame) Interleave, preload duration : 500 ms
65
General Complete name Format Format/Info File size Duration Overall bit rate
: : : : : :
640x424-mjpeg-pcm.AVI AVI Audio Video Interleave 15.5 MiB 20s 0ms 6 516 Kbps
Video ID Format Codec ID Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Compression mode Bits/(Pixel*Frame) Stream size
Audio ID : 1 Format : PCM Format settings, Endianness : Little Format settings, Sign : Signed Codec ID : 1 Codec ID/Hint : Microsoft Duration : 20s 0ms Bit rate mode : Constant Bit rate : 176.4 Kbps Channel(s) : 1 channel Sampling rate : 11.025 KHz Bit depth : 16 bits Stream size : 431 KiB (3%) Interleave, duration : 1000 ms (24.00 video frames) Interleave, preload duration : 1000 ms
General Complete name : 640x360-xvid-noaudio_vdb.avi Format : AVI Format/Info : Audio Video Interleave File size : 34.2 MiB Duration : 53s 960ms Overall bit rate : 5 318 Kbps Writing library : VirtualDub build 32559/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Muxing mode Codec ID Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library (UTC 2006-11-01)
General Complete name : 640x480-mjpeg(30fps)-pcm.AVI Format : AVI Format/Info : Audio Video Interleave File size : 24.5 MiB Duration : 22s 0ms Overall bit rate : 9 356 Kbps Video ID Format Codec ID Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Title :
Audio ID : 1 Format : PCM Format settings, Sign : Unsigned Codec ID : 1 Codec ID/Hint : Microsoft Duration : 22s 0ms Bit rate mode : Constant Bit rate : 128 Kbps Channel(s) : 1 channel Sampling rate : 16.0 KHz Bit depth : 8 bits Stream size : 344 KiB (1%) Interleave, duration : 1000 ms (30.00 video frames) Interleave, preload duration : 1000 ms General Complete name : 640x480rgb(nocompress)-noaudio.avi Format : AVI Format/Info : Audio Video Interleave File size : 44.8 MiB Duration : 2s 40ms Overall bit rate : 184 Mbps Writing library : VirtualDub build 32559/release Video ID : 0 Format : RGB Codec ID : 0x00000000 Codec ID/Info : Basic Windows bitmap format. 1, 4 and 8 bpp versions are palettised. 16, 24 and 32bpp contain raw RGB samples Duration : 2s 40ms Bit rate : 184 Mbps Width : 640 pixels Height : 480 pixels Display aspect ratio : 4:3 Frame rate : 25.000 fps Bit depth : 8 bits Bits/(Pixel*Frame) : 24.000 Stream size : 44.8 MiB (100%)
66
General Complete name : 640x480-wmv3-wma2.wmv Format : Windows Media File size : 17.7 MiB Duration : 1mn 11s Overall bit rate mode : Constant Overall bit rate : 2 075 Kbps Maximum Overall bit rate : 2 079 Kbps Encoded date : UTC 2009-01-09 11:16:42.968 Application : Windows Movie Maker 2.1.4026.0 Video ID Format Format profile Codec ID Codec ID/Info 9 Codec ID/Hint Description of the codec 9 - Professional Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Language
: : : : :
2 VC-1 MP@ML WMV3 Windows Media Video
: WMV3 : Windows Media Video : : : : : : : : : : : : :
General Complete name : 640x480-xvid-noaudio_vdb2.avi Format : AVI Format/Info : Audio Video Interleave File size : 102 KiB Duration : 2s 40ms Overall bit rate : 410 Kbps Writing library : VirtualDub build 32839/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Muxing mode Codec ID Codec ID/Hint Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library 008-12-04)
Audio ID : 1 Format : WMA Format version : Version 2 Codec ID : 161 Codec ID/Info : Windows Media Audio Description of the codec : Windows Media Audio 9 - 160 kbps, 44 kHz, stereo (A/V) 1-pass CBR Duration : 1mn 11s Bit rate mode : Constant Bit rate : 160 Kbps Channel(s) : 2 channels Sampling rate : 44.1 KHz Bit depth : 16 bits Stream size : 1.37 MiB (8%) Language : Slovak
General Complete name : 640x480-xvid(30fps)-noaudio.avi Format : AVI Format/Info : Audio Video Interleave File size : 12.3 MiB Duration : 19s 987ms Overall bit rate : 5 148 Kbps Writing library : VirtualDub build 32559/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Muxing mode Codec ID Codec ID/Hint Duration Bit rate Width Height Display aspect ratio Frame rate Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library (UTC 2006-11-01)
General Complete name : 720x576-mpeg2-mpeg1_layer2.mpg Format : MPEG-PS File size : 50.1 MiB Duration : 1mn 33s Overall bit rate : 4 472 Kbps Video ID Format Format version Format profile Format settings, BVOP Format settings, Matrix Format settings, GOP Duration Bit rate mode Bit rate Nominal bit rate Width Height Display aspect ratio Frame rate Standard Color space Chroma subsampling Bit depth Scan type Scan order Compression mode Bits/(Pixel*Frame) Stream size
: : : : : : : : : : : : : : : : : : : : : : : :
224 (0xE0) MPEG Video Version 2 Main@Main Yes Default M=3, N=12 1mn 33s Variable 4 159 Kbps 6 000 Kbps 720 pixels 576 pixels 4:3 25.000 fps PAL YUV 4:2:0 8 bits Interlaced Bottom Field First Lossy 0.401 46.5 MiB (93%)
Audio ID Format Format version Format profile Duration Bit rate mode Bit rate Channel(s) Sampling rate Compression mode Stream size
General Complete name : 720x576-mpeg2-mpeg1_layer2.VOB Format : MPEG-PS File size : 14.1 MiB Duration : 14s 184ms Overall bit rate : 8 323 Kbps Video ID Format Format version Format profile Format settings, BVOP Format settings, Matrix Format settings, GOP Duration Bit rate mode Bit rate Width Height Display aspect ratio Frame rate Standard Color space Chroma subsampling Bit depth Scan type Scan order Compression mode Bits/(Pixel*Frame) Stream size
: : : : : : : : : : : : : : : : : : : : : : :
224 (0xE0) MPEG Video Version 2 Main@Main Yes Default M=3, N=12 40ms Constant 8 000 Kbps 720 pixels 576 pixels 16:9 25.000 fps PAL YUV 4:2:0 8 bits Interlaced Top Field First Lossy 0.772 38.7 KiB (0%)
Audio ID Format Format version Format profile Duration Bit rate mode Bit rate Channel(s) Sampling rate Compression mode Stream size
General Complete name : Format Format/Info Interleave Format_Commercial_IfAny File size Duration Overall bit rate Recorded date Writing library 28312/release
720x576-sonyDV-pcm.avi : AVI : Audio Video : : : : : :
Video ID : Format : Format_Commercial_IfAny : Codec ID : Codec ID/Hint : Duration : Bit rate mode : Bit rate : Width : Height : Display aspect ratio : Frame rate mode : Frame rate : Standard : Color space : Chroma subsampling : Bit depth : Scan type : Compression mode : Bits/(Pixel*Frame) : Stream size : Encoding settings : balance= / fcm=auto focus
0 DV DVCPRO dvsd Sony 23s 280ms Constant 24.4 Mbps 720 pixels 576 pixels 16:9 Constant 25.000 fps PAL YUV 4:2:0 8 bits Interlaced Lossy 2.357 79.9 MiB (95%) wb mode= / white
Audio ID : 1 Format : PCM Format settings, Endianness : Little Format settings, Sign : Signed Codec ID : 1 Codec ID/Hint : Microsoft Duration : 23s 280ms Bit rate mode : Constant Bit rate : 1 536 Kbps Channel(s) : 2 channels Sampling rate : 48.0 KHz Bit depth : 16 bits Stream size : 4.26 MiB (5%) Interleave, duration : 41 ms (1.02 video frame) Interleave, preload duration : 500 ms
69
General Complete name Format Format/Info File size Duration Overall bit rate Writing application Writing library 32839/release Video ID Format Format profile Format settings, BVOP Format settings, QPel Format settings, GMC Format settings, Matrix Codec ID Codec ID/Hint Duration Bit rate Width Height Display aspect ratio Frame rate Standard Color space Chroma subsampling Bit depth Scan type Compression mode Bits/(Pixel*Frame) Stream size Writing library 2006-11-01)
: : : : : : : :
720x576-xvid-mp3.avi AVI Audio Video Interleave 496 MiB 1h 28mn 780 Kbps MEncoder 1.0rc2-4.1.2 VirtualDub build
Audio ID : 1 Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Codec ID : 55 Codec ID/Hint : MP3 Duration : 1h 28mn Bit rate mode : Constant Bit rate : 128 Kbps Channel(s) : 1 channel Sampling rate : 48.0 KHz Compression mode : Lossy Delay relative to video : 3ms Stream size : 81.5 MiB (16%) Alignment : Split accross interleaves Interleave, duration : 67 ms (1.00 video frame) Interleave, preload duration : 500 ms Writing library : LAME
70
Příloha B Konfigurace počítačů použitých pro testování Počítačová sestava 1 Základní deska Procesor Paměť Grafická karta Pevný disk Optická mechanika Další Operační systém
GIGABYTE P43T-ES3G (rev. 1.3) INTEL Core 2 Duo E8400 (3GHz) 4GB DDR3-1333MHz Kingston CL9 kit 2x2GB ASUS ENGT240 SILENT, DVI, HDMI, VGA, 1 Gb DDR3 HDD 500GB Samsung SpinP. F3 DT 16MB SATAII/300 – 7200 ot. DVDRW/RAM Samsung, SATA čtečka paměťových karet Microsoft Windows® 7 Professional 64-bit EN, instalovaný Service pack 1 Software Adobe Media Encoder CS5, version 5.0.0.402 64-bit
Počítačová sestava 2 Základní deska Procesor Paměť Grafická karta Pevný disk Optická mechanika Další Operační systém
GIGABYTE P43T-ES3G (rev. 1.3) INTEL Core 2 Duo E8400 (3GHz) 4GB DDR3-1333MHz Kingston CL9 kit 2x2GB ASUS ENGT240 SILENT, DVI, HDMI, VGA, 1 Gb DDR3 HDD 500GB Samsung SpinP. F3 DT 16MB SATAII/300 – 7200 ot. DVDRW/RAM Samsung, SATA čtečka paměťových karet Gentoo linux 64 bitová verze (amd64), jádro: 2.6.36-gentoo-r5 Software FFmpeg, verze ffmpeg-0.7.7 MediaInfo, v0.7.50 qt-faststart.c, v0.1
71
Příloha C Tabulka s vyhodnocením kritérií pro výběr softwaru pro konverzi videí do MP4 Vlastnost programu Ovládání příkazovou řádkou, 2 body Automatické nastavení, 1 bod Možnost ovlivnit nastavení konverze zadáním vstupních podmínek (obejití automatického nastavení), 1 bod Ochrana proti špatnému nastavení rozlišení videa (nerespektování poměru stran obrazu), 0,5 bodu Ochrana řešena úpravou rozlišení, 0,5 bodu Vstupní video soubor 1920x1080-avc-aac.mts 320x240-wmv3-wma2.wmv 320x240-wmv3-wma2_2.wmv 352x240-mpeg1-mpeg1_layer2.MPG 352x288-mpeg1-mpeg1.mpg 352x288-mpeg1-mpeg1_layer2.mpg 640x360-h264-aac_lc.mp4 640x360-mpeg4visual-aac_lc.mp4 640x360-xvid-mp3.avi 640x360-xvid-mp3_2.avi 640x360-xvid-noaudio_vdb.avi 640x424-mjpeg-pcm.AVI 640x480-mjpeg(30fps)-pcm.AVI 640x480-rgb(nocompress)-noaudio.avi 640x480-wmv3-wma2.wmv 640x480-xvid(30fps)-noaudio.avi 640x480-xvid-noaudio_vdb2.avi 720x576-mpeg2-mpeg1_layer2.mpg 720x576-mpeg2-mpeg1_layer2.VOB 720x576-sonyDV-pcm.avi 720x576-xvid-mp3.avi
Příloha D Pseudokód Použité funkce resToWidthAndDAR(width,aspect); o vrátí část příkazového řádku pro změnu velikosti videa na šířku width a poměr stran aspect_ratio, proměnná aspect_ratio může být i nedefinovaná, v takovém případě se video jen zmenší bez úpravy poměru stran; resToDAR(aspect); o vrátí část příkazového řádku pro úpravu velikosti videa na správný poměr stran (ponechá původní šířku a dopočítá novou výšku); checkDAR(); o zkontroluje správný poměr stran videa (vrací true/false) getValueMediaInfo("Property Name"); o vrátí hodnotu vlastnosti s názvem "Property Name" (pomocí výstupu z programu MediaInfo); convertMedia(command); o začne konvertovat příkazem command, po skončení spustí program qtfaststart. Poznámka Pro zjednodušení a zpřehlednění pseudokódu jsou ignorovány typové konverze při přiřazování a práci s proměnnými. Ze stejného důvodu nejsou zaneseny kontroly vstupních parametrů. var command_line = "ffmpeg -i" -acodec libfaac -aq 60 -vcodec var file_name; //jméno souboru var file_extension; // původní vstup bude .mp4
+ file_name + "." + file_extension + " libx264 -qmin 1 -vpre fast"; s videem, použije se pro výstup přípona souboru – nutno ošetřit, kdy
if (getValueMediaInfo("Scan type") == "Interlaced") then command_line += " -deinterlace"; if (getValueMediaInfo("Width") > 640) { // zmenšit video na šířku 640 px, respektovat zadaný poměr stran command_line += resToWidthAndDAR(640,getValueMediaInfo("Display aspect ratio")); } else { if !checkDAR() { // musíme upravit rozlišení na správný poměr stran obrazu command_line += resToDAR(getValueMediaInfo("Display aspect ratio")); } else { // není potřeba provádět úpravu rozlišení ani poměru stran obrazu } }
73
command_line += " -crf 22 " + file_name + ".mp4"; convertMedia(command_line); // vrátí řetězec pro resize videa na zadanou šířku se zadaným poměrem stran, pokud je poměr stran nedefinován, tak je výška dopočítána z původního poměru šířka:výška function resToWidthAndDAR(width,aspect):String { if aspect != undefined { Parse aspect as (aspectWidth + ":" + aspectHeight); return " -s 640x" + (640 / aspectWidth * aspectHeight); // zmenší video na šířku 640px a dopočítá, výsledek zaokrouhlit } else { return " -s 640x" + (640 / getValueMediaInfo("Width") * getValueMediaInfo("Height")); // zmenší video na šířku 640px a dopočítá k němu adekvátní výšku, výsledek zaokrouhlit } } // vrátí část příkazového řádku pro úpravu velikosti videa na správný poměr stran (ponechá původní šířku a dopočítá novou výšku) function resToDAR(aspect):String { Parse aspect as (aspectWidth + ":" + aspectHeight); // rozdělí aspect tvaru "X:Y" na dvě proměnné s obsahem X. resp. Y return " -s " + getValueMediaInfo("Width") + "x" + (getValueMediaInfo("Width") / aspectWidth * aspectHeight); // upraví rozlišení videa: šířku videa ponechá a dopočítá novou výšku dle aspect, výsledek je žádoucí zaokrouhlit na celé pixely } // Kontrola, zda rozlišení videa odpovídá udávanému poměru stran function checkDAR():Boolean { Parse getValueMediaInfo("Display Aspect Ratio") as (aspectWidth + ":" + aspectHeight); if (getValueMediaInfo("Width")/getValueMediaInfo("Height") == aspectWidth / aspectHeight) { return true; } else { return false; } } // Vrátí hodnotu vlastnosti property z výstupu z programu MediaInfo function getValueMediaInfo(property):String { var hodnota = find value of property; return hodnota; } // začne konvertovat video příkazem command_line, po skončení spustí qt-faststart.c function convertMedia(command_line):Void { use command_line; after finnish use "qt-faststart file_name.mp4"; }
74
Příloha E Seznam příkazových řádků generovaných prototypem na konverzi videí do MP4 ffmpeg -i 1920x1080-avc-aac.mts -acodec libfaac -aq 60 -vcodec libx264 -qmin 1 -vpre fast -deinterlace -s 640x360 -crf 22 1920x1080-avcaac.mp4
Umístění lišty s ovl. prvky Schovávání lišty s ovl. prvky Orámování videa
Stream.cz
ivysilani.cz
tn.cz
novinky.cz
idnes.cz
vimeo.cz
Rozvržení přehrávače Umístění ovládacích prvků
YouTube.com
Sledovaná vlastnost
Servisní středisko
Srovnání přehrávačů videa na vybraných serverech
1 lišta
1 lišta
1 lišta
1 lišta
1 lišta
1 lišta
2 lišty
2 lišty
pod videem
pod videem
dole
pod videem
dole
a nahoře
a vpravo
ne
ne
ne
ano
ne
ano
ano
ano
ano
ne
ne
ne
ne
ne
ne
ne
čtverec
čtverec
čtverec
bez
bez
bez ohrani-
ohraničení
ohraničení
čení, oválné
ne
ne
ano
ne
ano
ano
odstíny
odstíny
odstíny
odstíny
odstíny
odstíny
šedé,
šedé,
šedé,
šedé,
šedé,
šedé, sv.
červená
červená
červená
červená
červená
modrá
různé
16:9
16:9
16:9
16:9
16:9
16:9
16:9
ano
ano
ano
ano
ano
ano
ano
ano
ano
ne
ne
ne
ne
ne
ne
ne
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
ano
zaoblené rohy
Průhlednost některých prvků Barevnost Používaný poměr stran obrazu Použité ovládací prvky Tlačítko přehrát, pozastavit Tlačítko stop Časová osa Čas přehrávání
dole
pod videem
čtverec,
Tvar tlačítek
dole
ne různé vzhledy
80
černá, bílá, sv. modrá
čtverec, zaoblené rohy ano
Tlačítko pro zobrazení na celou obrazovku Volba kvality videa Další (pouze funkcionalita nabízená přímo přehrávačem)
idnes.cz
vimeo.cz
ano
ne
ne
ne
ne
ne
ano
ano
ano
ano
ano
ano
ne
ano,
ano,
skrývané
skrývané
ano
ano
ano
ano
ano
ano
ano
ano
ne
ano
ano
ano
ano
ano
ne
ano
ano
ano
ano,
novinky.cz
ano
tn.cz
Stream.cz
ne ano
ivysilani.cz
YouTube.com
Celkový čas Tlačítko ztlumit zvuk Ovládání hlasitosti
Servisní středisko
Sledovaná vlastnost
skrývané
ano
ano, skrývané
ano
Zobrazení související –
názvu vi-
zobrazení
videa,
zobrazení
titulků,
zobrazení
zobrazení
zobrazení
reklamy
zobrazení
reklamy
reklamy
reklamy
reklamy
dea, sdílení, zobrazení reklamy, související videa
81
sdílení, hodnocení, přidání do playlistu
Obrázky srovnávaných přehrávačů
Obrázek 8.1 Servisní středisko pro e-learning
Obrázek 8.2 YouTube.com
Obrázek 8.3 Stream.cz
Obrázek 8.4 iVysílání.cz
Obrázek 8.5 tn.cz
Obrázek 8.6 Novinky.cz
Obrázek 8.7 iDnes.cz
Obrázek 8.8 Vimeo.com
82
Příloha H Zdrojový kód řešení chyby zobrazení generovaných objektů při změně velikosti přehrávače function setFullscreen():Void { myPlayback.pause(); Stage["displayState"] = "fullScreen"; } function closeFullscreen():Void { myPlayback.pause(); Stage["displayState"] = "normal"; } … OnResizeList.onResize = function(bFull:Boolean):Void { // odstranění vazby myFLVPlayback <=> but_SeekBar: myPlayback.seekBar = null; // uvedení but_SeekBar do původního stavu: but_SeekBar.fullness_mc._xscale = 100; // odstranění objektu pro zobrazení aktuální polohy: handle_mc.removeMovieClip(); // reorganizace plochy, znovu se naváže seekBar setLayout(true); // zobrazení správného tlačítka (zapnout/vypnout fullscreen) if (Stage["displayState"] == "fullScreen") { butFullscreenOnOff.gotoAndStop(2); } else { butFullscreenOnOff.gotoAndStop(1); } centerVideo(); myPlayback.play(); } Stage.addListener(OnResizeList);
83
Příloha I Zdrojový kód pro načtení a zpracování XML souboru error_xml = new XML(); error_xml.ignoreWhite = true; … error_xml.load(XML_path); … // událost vyvolaná při načtení XML, nebo výskytu chyby error_xml.onLoad = function(loaded:Boolean) { if (loaded) { // XML načteno // parsování XML // je připraveno na rozšíření získávaných informací o videu errorText = new Array(); errorCall = new Array(); errorXML = this.firstChild.childNodes; for (i=0; i < errorXML.length; i++) { errorText[i] = errorXML[i].attributes.errorText; errorCall[i] = errorXML[i].attributes.errorCall; } numberOferrorXML = errorXML.length; // výpis chyby if (errorCall[0] == "1") { // očekává se chyba errorTextBox.text = "CHYBA: " + errorText[0]; skinLoading._visible = false; stagePlayIcon.gotoAndPlay("show_none"); } } else { // xml nenačteno // chyba při načítání XML neznamená chybu při načítání videa } }