Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Hochschule: Standort: Studiengang: Veranstaltung: Betreuer: Typ: Themengebiet: Autor(en): Studienzeitmodell: Semesterbezeichnung: Studiensemester: Bearbeitungsstatus: Prüfungstermin: Abgabetermin: Fallstudienarbeit Hochschule für Oekonomie & Management Hamburg Bachelor Wirtschaftsinformatik Fallstudie / Wissenschaftliches Arbeiten Prof._Dr._Uwe_Kern Fallstudienarbeit HTML 5 Andreas Auls, Jörg Loges, Ole Brüns Abendstudium WS10 2 begutachtet 31.01.2011 16.01.2011 FOM Hamburg Abendstudium Autoren: Andreas Auls, Ole Brüns, Jörg Loges Präsentation Inhaltsverzeichnis • 1 Einleitung • 2 Grundlagen HTML ♦ 2.1 HTML als Grundlage für die Nutzung des Internets ♦ 2.2 Der Aufbau einer Webseite ♦ 2.3 Darstellung von Webseiten durch Browser • 3 Entwicklung von HTML5 ♦ 3.1 Neuerungen in HTML5 gegenüber HTML4 ♦ 3.2 Verändertes Nutzerverhalten ♦ 3.3 Bedeutung von HTML5 für das Web 2.0 • 4 Videoanwendungen in HTML5 ♦ 4.1 Integration von Videos in HTML5 Webseiten ◊ 4.1.1 Beispiel für Webseiten (HTML Quelltext) ⋅ 4.1.1.1 Darstellung Mozilla Firefox 3.6 ⋅ 4.1.1.2 Darstellung mit Microsoft IE 9 (Beta) ⋅ 4.1.1.3 Darstellung Google Crome 8 ⋅ 4.1.1.4 Darstellung Internet Explorer 8 (Flash video) ◊ 4.1.2 Attribute für Video-Elemente ◊ 4.1.3 Track-Kindelement ♦ 4.2 JavaScript & Events ♦ 4.3 Unterstützung von Codecs durch Browser ♦ 4.4 Bedienelemente zum Abspielen ♦ 4.5 Möglichkeit einer Alternativdarstellung bei Nichtunterstützung Inhaltsverzeichnis 1 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video • 5 Darstellung von Videoanwendungen in HTML5-Player-Frameworks ♦ 5.1 HTML5 Unterstützung durch Webbrowser ♦ 5.2 Möglichkeit des Hostens von Videos durch Webseitenbetreiber ◊ 5.2.1 Vorteile ◊ 5.2.2 Nachteile • 6 Entwicklung und Zukunft von HTML5 im Bezug auf Video • 7 Fazit/Raum für weitere Untersuchungen • 8 Anhang ♦ 8.1 Quellenverzeichnis ◊ 8.1.1 Fußnoten ◊ 8.1.2 Literaturnachweis ◊ 8.1.3 Abkürzungsverzeichnis ♦ 8.2 Abbildungsverzeichnis 1 Einleitung Im Rahmen des Unterrichtsfaches "Fallstudien/Wissenschaftliches Arbeiten" wurde die folgende Arbeit zu dem Thema "Analyse der Funktionen und Demonstrationen von HTML5 im Hinblick auf Video" erstellt. Das Ziel dieser Arbeit ist es, einen allgemeinen Überblick über die Entwicklung der HTML Sprache, mit dem Schwerpunkt auf Video-Anwendungen zu schaffen. 2 Grundlagen HTML HTML ist die Abkürzung für Hyper Text Markup Language und ist eine Auszeichnungssprache zur Erstellung von Textdokumenten in Webseiten und Webapplikationen. Mit Hilfe dieser Sprache werden Strukturen und Inhalte von Textdokumenten standardisiert. Basierend auf der Standard Generalized Markup Language entwickelte Tim Berners-Lee[1] im Jahre 1989 die erste Version dieser Sprache. Seit der ersten offiziellen HTML Version 2.0 von 1995 wurde dieses Sprachkonzept ständig den Bedürfnissen der Nutzer des World Wide Web und technischen Möglichkeiten der Softwarehersteller angepasst. Aufgrund der großen Anzahl von Software-Lösungen für Anwendungen innerhalb des Internets ist die Einhaltung von Standards für dessen Nutzung notwendig. Entwickelt werden diese Standards von dem World Wide Web Consortium (W3C). Die HTML Version 4.01 aus dem Jahre 1999 ist die letzte Spezifikation des W3C[2] und wird von den meisten Softwareherstellern unterstützt. 2.1 HTML als Grundlage für die Nutzung des Internets HTML strukturiert Texte, erzeugt Tabellen und integriert Referenzen innerhalb des Textes auf multimediale Inhalte. "Eine der wichtigsten Eigenschaften von HTML ist die Möglichkeit, Verweise (Hyperlinks) zu definieren. Verweise (Links, Hyperlinks) können zu anderen Stellen der eigenen Website führen, aber auch zu beliebigen anderen Adressen im World Wide Web und sogar zu Internet-Adressen, die nicht Teil des Web sind. HTML ist ein sogenanntes Klartextformat. HTML-Dokumente können Sie mit einem beliebigen Texteditor bearbeiten, der 1 Einleitung 2 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Daten als reine Textdateien abspeichern kann. HTML ist also nicht an irgendein bestimmtes, kommerzielles Softwareprodukt gebunden. [...] Die Verwendung von HTML ist nicht an Lizenzen gebunden."[3] Durch Hyperlinks werden Verweise auf beliebige Dokumente oder Daten anderer Anbieter ermöglicht und inhaltlich passend zur Verfügung gestellt. Dem Nutzer wird so die bedienerfreundliche Navigation zu unterschiedlichen Informationsangeboten ermöglicht. Dieser nutzerfreundliche Informations- und Datenaustausch ist für die Akzeptanz des World Wide Web und die Weiterentwicklung von entsprechender Anwendungssoftware mitverantwortlich. Webseiten in HTML sind einfach und mit geringem Aufwand zu erzeugen. Die einfach gehaltenen Elemente und Attribute der HTML Sprache werden von den meisten Browsern unterstützt und die HTML Webseiten dargestellt. 2.2 Der Aufbau einer Webseite HTML ist eine Dokument Auszeichnungssprache. Für die Entwicklung einer Webseite wird keine spezielle Software benötigt, da Webseiten als Textdokumente erstellt und danach konvertiert werden. Zur Anwendung kommen dabei Code-Editoren. "Internet-typische Technologien sind bewusst Software-unabhängig ausgelegt. Das hat gute Gründe. Im Internet treffen alle nur erdenklichen Betriebssysteme und Rechnertypen aufeinander, und Technologien, die für alle verfügbar sein sollen, haben keine große Chancen, wenn sie systemspezifisch sind oder spezielle Anforderungen stellen, die Teile der Internet-Nutzer ausschließen."[4] Der Inhalt eines HTML-Dokumentes steht in HTML-Elementen, welche durch Tags markiert werden. HTML-Elemente haben fast immer ein einleitendes und ein abschließendes Tag. Der Bereich zwischen den Tags ist der Gültigkeitsbereich des HTML-Elementes. Beispiel HTML-Element für den Kopfbereich: <head> Inhalt des HTML-Elementes Head </head> Grundgerüst einer Webseite: 2.1 HTML als Grundlage für die Nutzung des Internets 3 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 1 Bestandteile eines HTML-Dokumentes: • Dokumenttyp • Kopfbereich • Dokumentkörper Dokumenttyp: Im HTML Dokument wird der Dokumenttyp durch den Tag <!doctype html> deklariert. "In der Praxis sind die HTML-Dokumenttypen wichtig, weil sie bestimmen, wie ein Browser ein HTML-Dokument darstellt. [...] Der Dokumenttyp wird als erste Angabe in einem HTML-Dokument notiert, vor dem startenden <html>-Tag."[5] Beispiel HTML5 Dokumenttyp: <!doctype html> Kopfbereich: Das HTML-Element Kopfbereich, in der HTML-Sprache Head genannt, ist für den Titel der Webseite, Javascripte, Meta-Angaben, logische Verknüpfungen und Stylesheet-Definitionen vorgesehen. • Titel der HTML-Seite: Der Titel wird von Web-Browsern bei der Suche ausgewertet. • Javascripte: Einbindung von Programmen z.B. zur Plausibilitätsprüfung von Formulareingaben. • Meta-Angaben: Sie enthalten Angaben zum Autor, zum Inhalt der Webseite oder HTTP-Kom3.1 Kommandos. • logische Verknüpfungen: Verlinkung zu übergeordneten Seiten oder Nachbarseiten. • Stylesheet-Definitionen: Definition von Formateigenschaften einzelner HTML-Elemente. • Default-Zielfenster für Hyperlinks Dokumentkörper: Dieses HTML-Element wird Body genannt und beinhaltet den sichtbaren Teil einer Webseite, wie Text mit Überschriften, Verweise und Medienelemente. Die Elemente Body und Head werden in die Tags <html> bzw. </html> eingeschlossen. Das HTML-Element wird als Wurzelelement eines HTML-Dokuments bezeichnet. 2.3 Darstellung von Webseiten durch Browser Der Browser ist ein Anwendungsprogramm, mit der Aufgabe • Web-Dokumente von einem Server anzufordern • die verschiedenen Sprachen und Datenformate zu interpretieren und anzuzeigen • Suchfunktion "Web-Browser sind Visualisierungsprogramme für Web-Seiten. Web-Browser beherrschen das HTTP-Protokoll und können mit Web-Servern kommunizieren, um etwa die Daten einer Web-Adresse anzufordern. Alle 2.2 Der Aufbau einer Webseite 4 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Web-Browser beherrschen mehr oder weniger gut HTML, die meisten mittlerweile auch die ergänzenden Technologien CSS und JavaScript, allerdings uneinheitlich vollständig."[6] 3 Entwicklung von HTML5 HTML5 ist seit 2007 in der Entwicklung und ist der neue HTML-Standard. In dieser Version wird die Sprache formal nicht mehr als SGML-Dokumenttyp definiert, sondern als Dokument-Objekt-Modell (DOM). Dadurch kommt die Sprache den Erfordernissen der Programmierung stärker entgegen. Es werden zahlreiche neue, an der Praxis orientierte Elemente eingeführt, die es erlauben, Webseiten semantisch ordentlicher zu strukturieren. 3.1 Neuerungen in HTML5 gegenüber HTML4 In der HTML Version 5.0 werden neue Funktionen definiert und den Entwicklern von Webseiten zur Verfügung gestellt. Dies betrifft neue Elemente, Attribute und API's. Diese Funktionen erleichtern die Entwicklung von interaktiven Webapplikationen. API's bezeichnen Programmierschnittstellen, welche es Softwareentwicklern ermöglicht Anwendungen zu entwickeln und hierbei bestehende, standardisierte Bibliotheken zu nutzen. API's stehen unter anderem für das Abspielen von Video- und Audiodateien mit den Elementen video und audio zu Verfügung. 3.2 Verändertes Nutzerverhalten Die Nutzung des Internet wird heute von Kommunikation und Gestaltung bestimmt. Neben den bekannten Nutzungsmöglichkeiten, wie Informationsgewinnung durch Anschauen und Lesen von Webseiten, wurden neue Möglichkeiten geschaffen. In der Weiterentwicklung des Internets wird der Nutzer animiert bei der Mitgestaltung und Teilnahme am öffentlichen Meinungsaustausch mitzuwirken. Beispiele dafür sind: • Auf den Seiten von YouTube[7] und MyVideo[8] können Nutzer eigene Videos präsentieren und fremde Videos anschauen. • Wiki's [9] sind ein System von Webseiten, die geändert werden können. Der Benutzer kann Beiträge erstellen und manipulieren. • Blog's[10] sind tagesaktuelle Webseiten einer Person/Gruppe, die in Form von chronologischen Einträgen eine Art Tagebuch führen z.B. um Alltagsgeschichten zu veröffentlichen. 2.3 Darstellung von Webseiten durch Browser 5 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 2[11] 3.3 Bedeutung von HTML5 für das Web 2.0 Der Begriff Web 2.0 ist nicht definiert, er wird als eine Beschreibung für die veränderte Nutzung des Internets verwendet. Die Entwicklung zum Web 2.0 begann mit der Verwendung von AJAX (engl. Asynchronous JavaScript and XML), einem Konzept für die Übertragung asynchroner Daten zwischen Browser und Server. Die asynchrone Übertragung ermöglicht es Webseiten anzuzeigen und gleichzeitig HTTP-Anfragen durchzuführen. Die feste Verbindung zur aufgerufenen Webseite wird dabei nicht unterbrochen. Der Internetnutzer wird aktiv in die Gestaltung von Webseiten mit einbezogen. Er hat die Möglichkeit Inhalte von Seiten zu bearbeiten, neue Inhalte zu erstellen und zu verteilen. HTML5 spezifiziert API's (engl. application programming interface) für die standardisierte Erstellung von Applikationen. 3.2 Verändertes Nutzerverhalten 6 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 3[12] 4 Videoanwendungen in HTML5 4.1 Integration von Videos in HTML5 Webseiten "Die Video-Ressource wird duch <video>...<video> markiert. Genau wie das audio-Element kann das video-Element als Elementinhalt ein oder mehrere source-Elemente in Form von Standalone-Tags <source> enthalten. Im einleitenden <video>-Tag geben Sie beim Attribut "src" die eigentlich gewünschte und bevorzugte Video-Datei an, die abgespielt werden soll. In dem oder den source-Elementen, die ebenfalls je ein src-Attribut haben, notieren Sie Video-Dateien mit gleichem Inhalt, aber anderen Video-Formaten. Das einleitende <video>-Tag muss nicht zwangsläufig ein src Attribut enthalten."[13] "Mit dem media-Attribut können Sie angeben, für welche Medientypen die Audio-Ressource geeignet ist. Die Vorstellung ist media="all", also alle Medientypen. Die Attribute type und media gibt es nur beim source-Element, nicht beim Video-Element. Der Grund ist, dass beim video-Element beim src-Attribut nur Dateien angegeben werden sollten, die der Browser in jedem Fall selbst erkennt. Greift er dagegen auf eine im alternativen source-Element angegebene Datei zurück, helfen die zusätzlichen Attribute gegebenenfalls bei der Wahl eines externen Abspielprogramms."[14] 4.1.1 Beispiel für Webseiten (HTML Quelltext) <!DOCTYPE HTML> <html> <head> <title>This is a HTML 5 video example</title> </head> <body> <video width="304" poster="playposter.jpg" controls> <source src="TruthHappens.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> <source src="TruthHappens.webm" type='video/webm; codecs="vp8, vorbis"' /> <source src="TruthHappens.ogv" type='video/ogg; codecs="theora, vorbis"' /> <object id="Object2" type="application/x-shockwave-flash" data="../videos/player_flv_classic.swf" wi <noscript><a href="http://www.dvdvideosoft.com">free software</a></noscript> <param name="movie" value="../videos/player_flv_classic.swf" /> <param name="wmode" value="opaque" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="quality" value="high" /> <param name="menu" value="true" /> <param name="autoplay" value="false" /> <param name="autoload" value="false" /> <param name="FlashVars" value="configxml=../videos/TruthHappens.xml" /> </object> </video> </body> </html> 3.3 Bedeutung von HTML5 für das Web 2.0 7 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 4.1.1.1 Darstellung Mozilla Firefox 3.6 Abbildung 4 4.1.1.2 Darstellung mit Microsoft IE 9 (Beta) 4.1.1 Beispiel für Webseiten (HTML Quelltext) 8 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 5 4.1.1.3 Darstellung Google Crome 8 Abbildung 6 4.1.1.2 Darstellung mit Microsoft IE 9 (Beta) 9 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 4.1.1.4 Darstellung Internet Explorer 8 (Flash video) Abbildung 7 4.1.2 Attribute für Video-Elemente Für die Darstellung von Videos innerhalb von HTML 5 wird das media-Element <video> verwendet. Analog zum Element für Bilder in HTML 4.01 benötigt es das Attribut src, um den relativen oder absoluten Pfad zur einer Videodatei dem Client zu übermitteln. In der nachfolgenden Tabelle sind alle Attribute aufgeführt sowie Erläuterung zu Ihreren Auswirkungen, Wechselbeziehungen untereinander und ihre evtl. Pflicht zur Notation: 4.1.1.4 Darstellung Internet Explorer 8 (Flash video) 10 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Attribut src height width poster preload autoplay Werte Beschreibung Es ist notwendig dieses Attribut zu füllen, wenn keine weiteren Kindelemente <source> innerhalb vom <video> tag definiert sind. Es wird hierbei als gesichert angesehen, dass der • Pfad Client Datei verarbeiten und abspielen kann. Gibt die Höhe des Video auf dem Bildschirm an. "Mit den Attributen "width" und "height" bestimmen Sie die Breite und Höhe der Videoanzeige in Pixeln. Geben Sie bei diesem Attribut möglichst die tatsächliche Breite • dimension und Höhe des Videos an, um Verzerrungen zu vermeiden. Wie bei anderen Bereichen für Medien, unterstützen Sie durch die Angabe von "width" und "height" den Browser beim Bildschirmaufbau, während er die Webseite lädt."[15] Gibt die Breite des Video auf dem Bildschirm an. "Mit den Attributen "width" und "height" bestimmen Sie die Breite und Höhe der Videoanzeige in Pixeln. Geben Sie bei diesem Attribut möglichst die tatsächliche Breite • dimension und Höhe des Videos an, um Verzerrungen zu vermeiden. Wie bei anderen Bereichen für Medien, unterstützen Sie durch die Angabe von "width" und "height" den Browser beim Bildschirmaufbau, während er die Webseite lädt."[16] Definiert den Pfad zu einem Bild, das als Platzerhalter für das anzuzeigende Video verwendet, bis das Video erstmalig geladen/gestartet ist. Es dient meist dafür, dem Endbenutzer zu verdeutlichen, worum es sich bei dem Video handelt. "Mit dem Attribut poster können Sie eine Grafik referenzieren, die angezeigt wird, solange • Pfad kein Video abgespielt wird. Sinnvollerweise enthält die Poster-Grafik einen aussagekräftigen Screenshot aus dem Video. Alle üblichen Web-Grafikformate wie JPEG, PNG oder GIF sind erlaubt. Für Wertzuweisungen an das poster-Attribut gelten die Regeln für Referenzierung."[17] Der Status none für dieses Attribute bedeutet, dass der Client nicht mit dem Zwischenspeichern des Videos beginnen darf. Status Metadata weist den Client an nur die Metainformationen wie z.B. Dateiformat, Videolänge, etc vorab aus der Videodatei zu ermittelen. Automatic, welcher der Standartwert ist, bedeutet, dass es dem Client erlaubt ist vorab das gesamte Video zwischenzuspeichern. Sinnvoll erscheint die Abweichung vom Standartwert, um eine Performanceüberlastung am Server und bei der Bandbreite am Client/Server zu vermeiden, wenn z.B. das Video nur optionaler Inhalt für den Entbenutzer • none ist, der auch dann expliziert für den interssierten User später erst nachgeladen werden kann. • metadata • automatic "Wenn Sie das Standalone-Attribut "preload" angeben, beginnt der Browser sofort beim Laden der Seite damit, den Inhalt des Videos downzuloaden. Die Angabe dieses Attributs ist nur sinnvoll in Verbindung mit dem controlls-Attribut. Verwenden Sie es dann, wenn es sehr wahrscheinlich ist, dass ein Anwender das Video abspielen wird. Das ist zum Beispiel der Fall, wenn es der zentrale Inhalt der Seite ist."[18] Boolescher Wert, der den Client anweist umittelbar nach dem Laden der Seite mit dem • trueZwischenspeichern und dem Abspielen des Videos zu beginnen. Dabei kann das • false preload-Attribut hiermit überschrieben werden. "Wenn Sie das Standalone-Attribut "autoplay" angeben, beginnt der Browser sofort beim Laden der Seite mit der Wiedergabe des Videos. Wenn Sie kein Attribut "controls" notieren, also keinen sichtbaren Player anzeigen wollen, und nur mit HTML, nicht mit JavaScript arbeiten, müssen Sie das Attribut "autoplay" unbedingt notieren. Andernfalls 4.1.2 Attribute für Video-Elemente 11 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video loop controls wird das Video nicht abgespielt, und der Anwender kann das Video auch nicht starten."[19] Boolscher Wert, der ein Wiederholung des Videos nach dem Abspielende innerhalb einer Endlosschleife verursacht. • true • false "Wenn Sie das Standalone-Attribut "loop" angeben, wird das Video immer wieder von Neuem abgespsielt, sobald es zu Ende ist."[20] Boolscher Wert, der dem Client mitteilt, das diese clientspezifische Bedienelemente eingblendet und verwendet werden sollen wie z.B. Start,Pauseknopf. Alternativ können die Bedienelemente via JavaScript und Events definiert werden. • true"Wenn Sie das Standalone-Attribut "controls" angegeben, zeigt der Browser einen • false sichtbaren Player mit Grundfunktionen wie Pause/Weiterspielen, Lautstärkereglung und Wiedergabe-Zeitanzeige an. Lassen Sie das controls-Attribut dagegen weg, wird das Video ohne Player angezeigt. Der Anwender hat in diesem Fall keine Kontrollmöglichkeiten in Bezug auf die Wiedergabe."[21] "Mit "type" können Sie den MIME-Type der Video-Datei angeben. Im Zusammenhang mit Videos kommen jene MIME-Typen in Frage, die mit "video/" beginnen, also z.B. "video/mpeg/ für herkömmliche MPEG-Dateien, "video/quicktim" für MOV-Dateien oder "video/x-msvideo" für AVI-Dateien. Wenn nötig, sollten Sie außerdem eine Codec-Angabe innerhalb der type-Angabe notieren. Eine solche erweiterung der MIME-Type-Angabe wird im RFC 4281 beschrieben."[22] "Die HTML5-Spezifikation listet im Zusammenhang mit Video-Codecs folgende typische Angaben für das type-Attribut auf: type • type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' • type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"' • type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' • type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' • type='video/mp4; codecs="mp4v.20.8, mp4a.40.2, mp4a.40.2"' • type='video/mp4; codecs="mp4v.20.240, mp4a.40.2, mp4a.40.2"' • type='video/3gpp; codecs="mp4v.20.8, samr"' • type='video/ogg; codecs="theora, vorbis"' • type='video/ogg; codecs="theora, speex"' • type='video/ogg; codecs="dirac, vorbis"' • type='video/x-matroska; codecs="theora, vorbis"' Verwenden Sie diese Angaben jedoch nur, wenn Sie genau wissen, welche Codecs Ihre Videos im Detail verwenden."[23] media "Die Attribute "type" und "media" gibt es nur beim source-Element, nicht beim video-Element. Der Grund ist, dass beim video-Element beim src-Attribut nur Dateien abgegeben werden sollten, die der Browser in jedem Fall selbst erkennt. Greift er dagegen auf eine im alternativen source-Element angegebene Datei zurück, helfen die zusätzlichen Attribute gegebenenfalls bei der Wahl eines externen Abspielprogramms"[24] "Mit dem media-Attribut können Sie angeben, für welche Medientypen die Audio-Ressource geeignetist. Die Voreinstellung media="all", also alle Medientypen. Beim media-Attribut wird als Wert eine gültige Medienabfrage erwartet".[25] 4.1.2 Attribute für Video-Elemente 12 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Die Attribute "type" und "media" gibt es nur beim source-Element, nicht beim video-Element. Der Grund ist, dass beim video-Element beim src-Attribut nur Dateien abgegeben werden sollten, die der Browser in jedem Fall selbst erkennt. Greift er dagegen auf eine im alternativen source-Element angegebene Datei zurück, helfen die zusätzlichen Attribute gegebenenfalls bei der Wahl eines externen Abspielprogramms.[26] Aufgrund der Problematik von verschiedensten unterstützten Containern und Codecformate innerhalb der verschiedensten Browsern, darf das <video> element auch weitere verschiedene <source> Kindelemente enthalten, die das einzelne src Attribute im <video> Element ersetzen. Es bietet dann die Möglichkeit die Datei in verschiedenen Formate bereitzustellen. Der Browser durchläuft die Auflistung und verwendet, das erste kompatible Format. Innerhalb des <source> Elements wird sodann mit dem Attribut src der Pfad zum Video übermittelt. Zusätzlich gibt es das Attribut type für das <source> Element. Innerhalb des Attributwert wird der Mime-Type sowie der verwendete Codec mittgeteilt. Bspl. video/mp4; codecs="avc1.42E01E, mp4a.40.2". Diese Attribute ist vollständig ausgefüllt hilfreich für den Browser ein untersütztes Format breitbandschonend zu erkennen (vgl. Metadata beim preload-Attribute). Der Aufbau dieses String ist dem RFC 4281 zu entnehmen. Zum Abschluss kann im <video> Element weitere Elemente aufgenommen werden (z.B. aus HTML 4), die angezeigt werden, sobald dies nicht vom Browser untersützt wird. Dies kann bspwl. eine Hinweisetext auf die fehlende Unterstüzung sein, ein alternativer Link oder ein <object> Element, um auf proprietäre Plugins wie Flash Videos für die Videodarstellung zurückzugreifen (siehe Beispiel). 4.1.3 Track-Kindelement Als ausdrücklich optionales Kindelement gibt es das sogenannte <track> tag. Es kann nicht eigenständig existieren und gibt synchron zum Video Zusatzinformationen/funktionen über das abzuspielende Video wie z.B. Untertitel, Kaptielangaben, Situationbeschreibungen. Hilfreich sind diese bsplw. für Seh-, oder Hörbehinderte oder für fremdsprachige Zuhörer. Folgende Tabelle listet die möglichen Attribute auf: Attribut src kind srclang Werte • Pfad Beschreibung Pflichtattribut, das den Pfad zu text track Datei angibt • subtitles • captions Definiert die Art der Datei und in welcher Form diese verwendet werden kann. Das Attribute ist optional und der Standard ist 'subtitles'. • descriptions • chapters • metadata Eine Sprachenangabe z.B. Deutsche nach der Formatierung RFC BCP47. Beispiel de-DE • bcp47-Wert für Deutsch in Deutschland. label freier Text, der dem User bei der Auswahl von text tracks angezeigt wird und einen • freier Hinweis auf seine Funktion gibt. Text default boolescher Wert, der diesen text track als Standard auswählt und anwendet (wenn die • true Client-Preferenzen nicht ein anderes Element z.B. aufgrund der Sprache vorauswählt). • false Diese Dateien mit dem Begleittext wie der Untertitel sind dabei in WebVTT[1] formatiert. Das folgende Beispiel besteht aus den Minimalanforderungen mit einer fesgestellten Reihenfolge, Zeitpunkte der Darstellung innerhalb 4.1.3 Track-Kindelement 13 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video des Videos und dem einfachen Text der angezeigt wird: 1 00:00:00,000 --> 00:00:14,000 Herzschlagton... 2 00:00:18,010 --> 00:00:19,000 Bild der Erde 3 00:00:20,010 --> 00:00:21,800 Wolken 4 00:00:38,100 --> 00:00:39,206 Ozeanriff, Trommelwirbel 5 00:00:43,010 --> 00:00:40,000 Embryo im Mutterleib 6 00:01:04,010 --> 00:01:11,000 Ein Telefon läutet... 7 00:01:11,010 --> 00:01:15,000 Mann nimmt Telefon ab, Teilnehmer: Komm mal bitte rüber, ich muß dich sprechen 4.2 JavaScript & Events Mit der Erweiterung des HTML5-Standards, um das <video> Element, steht diese nun ebenfalls im sog. DOM (Document Object Model), einem Interface das alle Elemente und ihre Attribute einer HTML-Seite innerhalb einer baumstrukturartigen Auflistung zur Verfügung stellt. Es kann somit ebenfalls mit weiteren clientseitigen Implementierung von JavaScript ausgelesen und nach dem Rendering der Seite verändert werden. Dieses Verhalten wird bsplw. genutzt, um innerhalb von bereitgestellten Libaries von Drittanbietern weitergehende Video-Player Frameworks bereitzustellen. Beispiele hierfür sind eine Lautstärkenregeler oder die Abspielgeschwindigkeit zu ändern, um einen Effekt des Vor- und Zurückspulens zu erzielen. Diese sind teilw. nicht Bestandteile der Standardbedienelemente von Browsern. In Javascript werden ein Attribute in sog. Interfaces definiert. Diese Definition ist Bestandteil des aktuellen editior drafts 'A vocabulary and associated APIs for HTML and XHTML' vom W3C dokumentiert[27]. Dies Interface lässt sich in Funktionen mit und ohne Rückgabewerte, rein lesende und veränderbare Variablen, die interaktiv nach dem Rendering der Webseite und zur Laufzeit des Videos modifiziert werden können und somit einen Effekt für den Enbenutzer verurssachen (z.B. Start-,Stoppbutton für das Video). Des weiteren lassen sich diese Einteilen in Fehlermeldung in Bezug auf das Videoelement (z.B. Codecformat nicht ünterstüzt), Netzwerkstatus (z.B. werden noch Daten übertragen), Verfügbarkeitstatus (z.B. sind genügend Daten zischengepuffert), Abspielstatis (z.B. aktuelle Abspielposition, Gesamtabspieldauer) des aktuell 4.2 JavaScript & Events 14 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video abgespielten Videos, Attribute aus Bedienelemente (z.B. Lautstärke erhöhen, lautlos stellen) sowie die einfachen Funktionen zum Laden, Starten und Pausieren des Videos. Das folgende Beispiel demonstriert die Anwendung von Javascript auf ein Video. Dabei wird eine Lauter-, Leise-, Stummfunktion sowie ein Spulfunktion in einfacher Form implementiert: <!DOCTYPE HTML> <html> <head> <script type="application/javascript"> function Lauter(player) { // referenziere das Object in tmp var tmp = document.getElementById(player); //verändere die Lautstaerke tmp.volume += 0.1; } function Leiser(player) { var tmp = document.getElementById(player); tmp.volume -= 0.1; } function stumm(player) { var tmp = document.getElementById(player); if (tmp.muted == 1) { tmp.muted = 0; } else { tmp.muted = 1; } } function vorlauf(player,rate) { var tmp = document.getElementById(player); //setze Abspielrate auf den neuen Wert; <1 zurückspulen, >1 vorspulen //funktioniert nicht mit OGV-Quellen (https://developer.mozilla.org/en/nsIDOMHTMLMediaElement) im Fi tmp.playbackRate = rate; } </script> <title>This is a Javascript + HTML 5 video example</title> </head> <body> <video id="video" width="304" poster="../images/playposter.jpg" controls> <source src="../videos/TruthHappens.mp4" type='video/mp4; codecs="avc1.42E01E,mp4a.40.2"' /> <source src="../videos/TruthHappens.webm" type='video/webm; codecs="vp8, vorbis"' /> <source src="../videos/TruthHappens.ogv" type='video/ogg; codecs="theora, vorbis"' /> </video> 4.2 JavaScript & Events 15 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video <a href="javascript:Lauter('video');">Lauter</a> <a href="javascript:Leiser('video');">Leiser</a> <a href="javascript:stumm('video');">Stumm</a> <input name="geschwindigkeit" type="text" size="2" value="1" onchange="vorlauf('video',this.value);" </body> </html> 4.3 Unterstützung von Codecs durch Browser "Ziel des video-Elements ist, dass alle Browser bestimmte Video-Formate ohne zusätzliche Software abspielen können, also direkt in der Browser-Software implementieren. Das Problem beim video-Element sind dabei die gleichen wie beim audio-Element. Geht es beim audio-Element um MP3 vs. OGG, so konkurrieren beim video-Element MPEG-4 und OGG-Video (OGV). Die Situation ist die gleiche. Der Codec H.264, den MPEG-4 verwendet, ist durch Software-Patente geschützt. Der Theora-Codec für das OGG-Format ist hingegen patentfrei. Während Microsoft, Google und Apple H.264 wegen dessen höherer Performanz favorisieren, weigern sich Mozilla Firefox und Opera, diesen Codec in ihren Browsern zu implementieren, und setzen stattdessen auf den OGG-Container mit Theora-Codec. Das Problem lässt sich in HTML5 immerhin lösen, in dem man beide Formate vorhält und anbietet. Als Dauerlösung ist dies jedoch nicht befriedigend."[28] "Der MS Internet kennt das video-Element bis einschließlich Version 8.0 überhaupt nicht."[29] 4.4 Bedienelemente zum Abspielen Abbildung 8 Die Standard Bedienelemente eines Players in HTML sind unterschiedlich nach der Browserimplementierung. Design und Farben unterscheiden sich ebenfalls. Gängige Bedienelemente sind: 1. Klickbutton um zwischen Start und Pause des Videos zu wechseln. 2. Laufzeitleiste mit Gesamtlaufzeitangabe sowie ein Regler, um innerhalb des Videos zu springen. 4.3 Unterstützung von Codecs durch Browser 16 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 3. Lautstärkenregel (wird im Beispiel nur sichtbar, sobald sich der Mauszeiger auf den Klickbutton Nr 4 befindet 4. Klickbutton zur Stummschaltung bzw. Reaktivierung von Ton Bedienelemente werden oftmals auch als sog. OSD (engl. On Screen Display) angezeigt und überlagern das Video, sobald man mit der Maus sich im Video-Fenster befindet. 4.5 Möglichkeit einer Alternativdarstellung bei Nichtunterstützung Die erste W3C working drafts des HTML5-Standards stammt vom 22. Januar 2008[2]. Video-Portale wie YouTube existieren bereits seit April/Mai 2005[3], so dass bereits vorher Lösung für die Alternativdarstellung gab. Da HTML-Versionen vor Version 4 keine Multimediaelemente definiert, griff man zurück auf herstellerabhängige Lösungen. Hier sind zunächst die Video-Player der großen Herstellern zu nennen. Dies sind bsplw. Windows Media Player von Microsoft, Apple Quicktime, RealPlayer von RealNetworks. Dies sind vom Browser losgelöste Streaming-Clients, die nur über eine HTML Seite Ihre URI-Adresse erhalten und das Video extern darstellen. Innerhalb des Browser-Krieges zwischen Microsoft Internet Explorer und Netscape Navigator wurden von beiden Herstellern eigene Elemente eingeführt. Während Netscape auf <embed> setzte, integrierte Microsoft mit dem <object> und ActiveX Multimediainhalte. Mit HTML Version 4 ist das <object> code offizieller Bestandteil von HTML, um externe Plugins einzubinden ohne selbst Funktionen für Video bereitzustellen. Hersteller liefern nun Plugins für die verschiedensten Browser und Betriebsysteme, um innerhalb des <object> Elements interaktive Inhalte wie Vectorgrafiken, Audio, Video darzustellen. Die bekanntesten sind Silverlight von Microsoft und Flash von Adobe. Vor allem Flash ist aufgrund der Integration in Portale wie YouTube und MyVideo, der frühen Verfügbarkeit gegenüber Silverlight (2007) und der hohen Anzahl an kompatiblen Plattformen sehr verbreitet und zum Quasistandard entwickelt. Adobe beschreibt die Integration von Flashvideos in HTML in einem Supportartikel mit folgendem Quellcode: " <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="550" HEIGHT="400" id="myMovieName"> <PARAM NAME=movie VALUE="myFlashMovie.swf"> <PARAM NAME=quality VALUE=high><PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED href="/support/flash/ts/documents/myFlashMovie.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia. </EMBED></OBJECT> Why use these all these HTML tags? What do they do? The OBJECT tag is for Internet Explorer 3.0 or later on Windows 9x/2000/NT/ME/XP platforms or any browser that supports the use of the Flash ActiveX control. The "classid" must appear exactly as it does in this example. The "codebase" attribute must also appear exactly as it does in this example; it tells the browser where to find Flash Player for automatic download. Internet Explorer 3.0 or later on Windows 9x/2000/NT/ME/XP will prompt the user with a dialog asking if they would like to auto-install the Flash Player if it's not already installed. This 4.4 Bedienelemente zum Abspielen 17 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video process can occur without the user having to restart the browser. The EMBED tag is for Netscape Navigator 2.0 or later, or browsers that support the use of the Netscape-compatible plugin version of Flash Player. The "pluginspage" attribute tells the browser where to direct the user to find Flash Player for download if the Player is not already installed. The user would then need to download and run the installer and restart their browser. To ensure that the most browsers will play your Flash Player movies, you should place the EMBED tag nested within the OBJECT tag as shown in the above example. ActiveX-enabled browsers will"ignore" the EMBED tag inside the OBJECT tag. Netscape and Microsoft browsers using the Flash Plugin will not recognize the OBJECT tag and will read only the EMBED tag."[30] Zusammenfassend verwenden ActiveX Browser wie der Internet Explorer das <object> Element mit der classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" als Attribut während Netscape (wie u.a. Firefox) das <embed> Element nutzt. Aufgrund der Schwíerigkeiten der unterschiedlichen Implementierungen für die verschiedenen Browser entwickelte u.a. Google im Projekt swfobject eine JavaScript-Framework, um die Integration zu erleichtern. Weitere Player-Frameworks in Kapitel 5 besitzen ebenfalls ein Rückfallmöglichkeit zu Flash. 5 Darstellung von Videoanwendungen in HTML5-Player-Frameworks "Es ist möglich, CSS-Eigenschaften auf das video-Element anzuwenden, doch damit ist das Aussehen des Players nur bedingt beeinflussbar. Um eigene Player zu kreieren, müssen Sie auf Scripting zurückgreifen."[31] Anwender, mit geringen Kenntnissen im Bereich Programmierung, können auf eine Reihe von Playern zur Integration auf Webseiten zurückgreifen, die auch zum Teil komerziell angeboten werden. Hier eine Übersicht über die gängigsten HTML5 Media Player: YouTube HTML5 Player Abbildung 9[32][33] 4.5 Möglichkeit einer Alternativdarstellung bei Nichtunterstützung 18 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video "Verfügt man über einen entsprechenden Browser, beispielsweise Firefox 4 (WebM), Google Chrome (WebM und h.264), Opera 10.6 (WebM), etc. und den jeweils unterstützten Videocodecs, kann man statt des herkömmlichen Flashplayers für die meisten Videos auch den YouTube HTML5 Videoplayer nutzen."[34] Unterstützte Browser: Es werden Browser unterstützt, die sowohl das Video-Tag in HTML5 als auch den Video-Codec h.264 oder das WebM-Format (mit dem Codec VP8) unterstützen. Hierzu zählen: • Firefox 4 (WebM, Beta-Version hier verfügbar) • Google Chrome (WebM und H.264) • Opera 10.6 oder höher (WebM, hier verfügbar) • Apple Safari (h.264, Version 4+) • Microsoft Internet Explorer 9 (h.264, Beta available here) • Microsoft Internet Explorer 6, 7 oder 8 mit installiertem Google Chrome Frame (Google Chrome Frame herunterladen) Hinweise des Herstellers: • Die Vollbildanzeige wird nun teilweise unterstützt. Durch Klicken auf die Vollbildschaltfläche wird der Player auf die gesamte Browsergröße maximiert. Wenn dein Browser eine Vollbildoption unterstützt, kannst du auf diese Weise den gesamten Bildschirm nutzen. • Auf der Steuerleiste des HTML5-Players wird ein entsprechendes Erkennungszeichen angezeigt. Solltest du das "HTML5"-Symbol auf der Steuerleiste nicht sehen, wurdest du (aufgrund der unten aufgelisteten Beschränkungen) auf den Flash-Player umgeleitet. • Im HTML5-Player wird auch ein Erkennungszeichen angezeigt, das angibt, dass das Video das WebM-Format verwendet. Solltest du das "WebM"-Symbol nicht sehen, ist das Video mit h.264 codiert. • Wenn du nach Videos mit verfügbaren WebM-Formaten suchen möchtest, kannst du dazu die Optionen der erweiterten Suche verwenden (oder hänge einfach &webm;=1 an jede beliebige Such-URL an). Zusätzliche Beschränkungen des Herstellers: • Videos mit Anzeigen werden nicht unterstützt (sie werden im Flash Player abgespielt). • In Firefox und Opera werden nur Videos mit WebM-Transcodierung in HTML5 abgespielt. • Falls du an anderen TestTube-Experimenten teilnimmst, ist es möglich, dass du den HTML5-Player nicht testen kannst (Feather wird allerdings unterstützt). Quelle: http://www.youtube.com/html5 Quelle: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html Vimeo HTML5 Player 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 19 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 10[35] "Der sich derzeit noch im Beta-Status befindenden Player läuft auf den aktuellsten Versionen der Browser Safari, Chrome und IE (mit installiertem Chrome Frame). Um den HTML5 Player von Vimeo zu nutzen bzw. zu testen, kann man innerhalb jedes Vimeo-Videos im unteren Bereich auf den Button "Switch to HTML5 player" klicken."[36] Video JS Abbildung 11[37][38] "Video JS ist ein Javascript basierter Videoplayer bestehend aus drei Teilen: Dem eingebundenen Code (Video for Everybody), einer Javascript Bibliothek (video.js) und einem reinen HTML/CSS Skin (video-js.css)"[39] • Free & Open Source • Leichtgewicht: KEINE BILDER WERDEN VERWENDET • 100% skinnable durch CSS • Bibliotheksunabhängig 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 20 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video • Leicht zu nutzen • Sehr verständlich & einfach zu erweitern • Konsistenter Look in allen unterstützenden Browsern • Full Screen und Full Window Modus • Lautstärken-Kontrolle • Flash Fallback (auch bei Verwendung einer nicht unterstützten Quelle)" Quelle: http://videojs.com/ Quelle: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html Die implementierung erachtet sich für Fortgeschrittene User als trivial und kann auch hervorragend im komerziellen Bereich verwendet werden. Es folgt ein Codebeispiel. Für die Verwendung muss die aktuellste Version von VideoJS verwendet werden: 1. Einbinden der Stylesheet Datei: <head> ... <script src="video.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="video-js.css" type="text/css" media="screen" title="Video JS" charset=" ... </head> 2. Implementierung eines Javascripts, zur nutzung der Umgebung: <script type="text/javascript" charset="utf-8"> // Add VideoJS to all video tags on the page when the DOM is ready VideoJS.setupAllWhenReady(); </script> 3. Implikation der Ressourcen: <video class="video-js" width="640" controls preload poster="http://video-js.zencoder.com/oceans-cl <source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4; codecs="avc1.42E01E, mp4 <source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm; codecs="vp8, vorbis"' <source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg; codecs="theora, vorbis"' <object class="vjs-flash-fallback" width="640" type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"> <param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" /> <param name="allowfullscreen" value="true" /> <param name="flashvars" value='config={"playlist":["http://video-js.zencoder.com/oceans-clip.png", { js.zencoder.com/oceans-clip.mp4","autoPlay":false,"autoBuffering":true}]}' /> <img src="http://video-js.zencoder.com/oceans-clip.png" width="640" alt="Poster Image" title="No vi playback capabilities." /> </object> </video> Quelle: http://videojs.com/ JW Player for HTML5 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 21 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 12[40][41] "Der JW Player ein komplett skinnbasierter und konfigurierbarer Videoplayer, umgesetzt in Javascript (jQuery) und ermöglicht bei Bedarf einen übergangslosen Fallback auf den beliebten JW Player für Flash."[42] Quelle: http://www.longtailvideo.com/support/jw-player/jw-player-for-html5 Video for Everybody! Abbildung 13[43][44] Der Webmediaplayer "Video for Everybody!" wird von der Firma Camendesign angeboten und bietet umfangreiche Möglichkeiten im Bereich Custom-Design: 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 22 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video "Video for Everybody! ermöglicht durch die einfache Einbindung von HTML5-Code die Integration von Videos auf entsprechenden Webseiten. Der Video-Player bietet ebenfalls einen automatischen Flash-Fallback ohne JavaScript oder Browser-Sniffing zu bemühen. Darüber hinaus funktioniert dieser Player ebenfalls in RSS-Readern und auf dem iPhone, auf dem iPad, sowie auf vielen Browsern und Plattformen."[45] Zum generieren des Codes wird sogar ein Generator von dem Programmierer Jonathan Neal bereitgestellt: Der Code könnte wie folgt implementiert werden: <video width="640" controls> <source src="__VIDEO__.MP4" type="video/mp4" /> <source src="__VIDEO__.OGV" type="video/ogg" /> <object width="640" type="application/x-shockwave-flash" data="__FLASH__.SWF"> <param name="movie" value="__FLASH__.SWF" /> <param name="flashvars" value="controlbar=over&image=__POSTER__.JPG&file=__VIDEO__.MP4" /> <img src="__VIDEO__.JPG" width="640" alt="__TITLE__" title="No video playback capabilities, please download the video below" /> </object> </video> Quelle: http://camendesign.com/code/video_for_everybody Ambilight for Video Tag Abbildung 14[46][47] Der Ambilight-Player ist ein zwar simpler, jedoch optisch sehr ansprechender Webmediaplayer und wird von dem in Russland ansässigen Programierer-Team Chikuyonok zur Verfügung gestellt. 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 23 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 15[48][49] "Ambilight ist ein einfacher Videoplayer der die Einbindung von HTML5 Video ermöglicht und sich dadurch abhebt, dass er an den Rändern in Abhängigkeit der Farbgebung im Video die Durchschnitts-Farben im Ambilight-Style darstellt."[50] FlareVideo Abbildung 16[51][52] "FlareVideo ist ein Open-Source-Projekt und auf jQuery-basierender HTML5 Video Player, der über einen Fullscreen-Modus und Flash-Fallback-Mechanismus verfügt."[53] • HTML5 Video mit Flash-Fallback • Einfache CSS/HTML/JS Anpassung und Möglichkeit Themes zu erstellen 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 24 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video • Full-Screen Unterstützung • Komplett Open-Source und kostenlos, auch für den kommerziellen Einsatz Quelle: http://flarevideo.com/ Quelle: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html VP Factory Abbildung 17[54][55] "VP Factory unterscheidet sich generell dadurch, dass es eine komplett cloud-basierte Video-Management-Applikation darstellt mit einem flexibel anpassbaren Video Player und jeder Menge weiterer Features."[56] Quelle: http://www.vpfactory.com/ Quelle: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html SublimeVideo 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 25 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Abbildung 18[57][58] Abbildung 19[59] Videobeispiel: http://medias.jilion.com/sublimevideo/dartmoor.ogv "Der Sublime Video-Player befindet sich noch im Experimentier-Stadium und unterstützt derzeit nur eine bestimmte Anzahl von Browsern. Das langfristige Ziel der Entwickler ist es jedoch SublimeVideo für alle modernen Browsern lauffähig umzusetzen. Darüber hinaus soll der Videoplayer demnächst frei erhältlich angeboten werden, zumindest für nicht-kommerzielle Zwecke."[60] "Ansonsten erlaubt der Sublime Videoplayer das einfache Einbinden von Videos in Blogs bzw. Websites die den modernen Webstandards entsprechen."[61] • Full-Window Modus • HTML5 Video mit seinen Vorteilen • Kein Browser-Plugin notwendig • Keine Flash-Abhängigkeit • Beliebiges Anwählen einer bestimmten Stelle im Video ohne Bufferung • Full-Screen Modus 5 Darstellung von Videoanwendungen inHTML5-Player-Frameworks 26 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Quelle: http://blog.jilion.com/2010/01/25/introducing-sublimevideo Quelle: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 5.1 HTML5 Unterstützung durch Webbrowser "HTML5 (seit 2007 in Entwicklung) ist der neue HTML-Standard. In dieser Version wird die Sprache formal nicht mehr als SHML-Dokumenttyp definiert, sondern als Dokument-Objekt-Modell (DOM). Dadurch kommt die Sprache den Erfordernissen der Programmierung stärker entgegen."[62] Aus diesem Grunde hat sich HTML5, sowie XHTML5 entsprechend der Erwartungen in den gängigen Internet-Browsern durchgesetzt und wurde ab den wie im Folgenden aufgezählten Versionen implementiert: Modzilla - Firefox...................: v3.5 Google - Chrome...................: v4.0 Apple - Safari.........................: v4.0 Opera Software - Opera........: v10.0 In Anlehnung an: Stefan Münz/Clemens et al. (2010), S. 208 Abbildung ohne Bezeichnung 5.2 Möglichkeit des Hostens von Videos durch Webseitenbetreiber Es gibt in Bezug auf den Serverzugriff nur zwei gängige Modelle: Bei Modell Nr. 1, welches die trivialste Möglichkeit darstellt, werden die Daten direkt auf dem Webserver gehostet, das heißt die Daten bzw. Videos liegen in einem Verzeichnis auf einem Webserver, mit welchem das HTML5-Framework wiederum verlinkt ist. Abbildung 20 5.1 HTML5 Unterstützung durch Webbrowser 27 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Bei Modell Nr. 2, werden die Daten bzw. Videos in einer Datenbank gespeichert. In diesem Fall, muss mit Hilfe eines Scriptes, welches beispielsweise in Java geschrieben werden kann, die Anfrage auf die Video-Dateien zwischengespeichert werden. Dieser Vorgang wird als Preloading bezeichet. Sind die Video-Dateien komplett geladen, werden diese in einem virtuellen Verzeichniss zwischengespeichert, welches mit dem HTML5-Script verlinkt ist. Gegebenenfalls werden auch mehrere Teilvideos von dem Script erstellt, um ein Streamingverhalten zu simulieren. Wenn eines dieser Teilvideos komplett gesehen wurde, wird mit Hilfe des Token-Prinzips (ein Standard für Indexverschiebungen), an das nächte Teilvideo verwiesen, anseiden das gesamte Video wurde bereits gedownloadet. In diesem Fall wird das komplett geladene Video, ab dem nächsten "Token-Sprung", an der entsprechend errechneten Video-Wiedergabezeit zwischengeschaltet. Diese Technik eignet sich besonders für Mobile-Endgeräte, da die Videos über entsprechende Webservice-Technologien abgefragt werden können. Dieses Prinzip stammt ursprünglich aus dem Bereich der Flash-Video-Technologie und wird seit dem erscheinen der HTML5-Technologie auch auf dieses Verfahren angewendet. Abbildung 21 5.2.1 Vorteile • Triviale Anwendung • keine zusätzlichen Plug-Ins für Webbrowser werden benötigt 5.2 Möglichkeit des Hostens von Videos durch Webseitenbetreiber 28 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 5.2.2 Nachteile • Videos müssen auf Grund der von den Browserherstellern zum Teil unterschiedlich verwendeten Codecs, mehrfach auf den Servern hinterlegt werden. • Aus dem vorhergendenden Stichpunkt resultierender hoher Verbrauch an Speicherkapazität auf den Host-Servern, aufgrund der redundanten Auslegung der Videos in verschiedenen Formaten. • Der Player ist nur bedingt Editationsfähig. • In Verbindung mit Microsoft Betriebssystemen sind gewisse Sicherheitsprobleme gewährleistet. 6 Entwicklung und Zukunft von HTML5 im Bezug auf Video Die derzeitige Entwicklung von HTML5, insbesondere der Bereich Video, befindet sich auf dem Vormarsch. Der wohl bedeutenste Grund hierfür, ist die Ablehnung der Flash-Technologie auf dem System iOS der Firma Apple. Dieses System dient als Betriebssystem für die komerziell höchst erfolgreichen Produkte, dem Apple iPhone, sowie dem Apple iPad. Steve Jobs, der Gründer der Firma Apple, nimmt in einem im Internet veröffentlichten Schreiben, einem sogenannten "offenen Brief", Stellung bezüglich der Entwicklung von HTML5 mit Blick auf die Zukunft. Auch wenn der Brief einen starken Bezug auf das Ausgrenzen der Flash-Technologie hat, bezeichnet er in diesem HTML5 als die Technologie der Zukunft und kündigt an, auch in Zukunft auf die HTML5-Technologie bzw. entsprechende Folgeversionen zu setzen. Abbildung 22 Aus diesem Grunde ist die HTML5-Technologie derzeit auf dem Weltweiten Markt nicht wegzudenken. Auf Grund der trivialen Anwendung, erfährt die HTML5-Technologie auch bei privaten Anwendern Verbreitung und eignet sich im professionellen Bereich auch sehr gut für Script-Technologien zur Webseitengeneration. Der Stichpunkt Webseitengeneration, ist auch besonders interessant für die Entwicklung der Technologien in dem stark wachsenden und auch komerziell bedeutenden Markt der Sozialen-Netzwerke (engl. social networks). Da sich diese Technologien, stark mit durch den Anwender selbst editierten Webseiten beschäftigt, spielt der Stichpunkt Webseitengeneration eine wichtige Rolle, da viele Benutzer nur eingeschränkte Fähigkeiten im Bereich HTML und Webdesign besitzen. Durch die HTML5-Technologie, wird die Einbindung interaktiver Medien, noch stärkere Verbreitung im Bereich der Sozialen-Netzwerke finden. Software-Tools zur Videokonvertierung, welche sich auf den Servern der Netzwerkbetreiber befinden, ermöglichen dem Nutzer des Sozialen-Netzwerkes nahezu jeden Videotyp hochzuladen. Dieser wird im Hintergrund, dem sogenannten "Backend", in die drei für HTML5 verwendeten Codectypen konvertiert. Im Anschluss werden die Video-Files auf einem Server oder in einer Datenbank, wie in Gliederpunkt Nr. 5.2 beschrieben, gespeichert und es wird über einen Script der entsprechenden HTML5-Code auf der Seite des Nutzers zur Verfügung gestellt. 5.2.2 Nachteile 29 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video Link des offenen Briefes von Steve Jobs auf der Applehompage ( Keine temporäre Garantie ): http://www.apple.com/hotnews/thoughts-on-flash/ 7 Fazit/Raum für weitere Untersuchungen Die Videofunktion innerhalb von HTML5 ist ein wichtiger Bestandteil des zukünftigen HTML-Standards. Sie ist lange erwartet und notwendig, um proprietäre Lösungen wie Flash endgültig abzulösen und das Medium Internet mit allen seiner Vielfalt, offener zu gestalten und neuen Teilnehmnern zu öffnen. Streitigkeiten und Machtinteressen wie zwischen und Apple und Adobe, die keinen Client für das beliebte Apple iPhone entwickeln, können damit vermieden werden. Der Streit über die Unterstützung der Containerformate und Codecs durch die verschiedenen Browser ist zur Zeit zwar immer noch ein Problem, wird sich unserer Einschätzung nach jedoch langfristig an der Kostenfrage für die Erstellung und die Auslieferung von Videos richten. Die Patenthalter der lizenzpflichtigen Codecs werden hier noch stark unter Druck geraten. Nach Abschluss dieser Studie besteht jedoch auch noch Raum für weitere Untersuchungen. Aus Sicht der Autoren sind hier Punkte zu nennen wie z.B. HD (High-Definition), DRM (Digital Rights Management) und Streamingfunktion. In diesem Rahmen könnten auch noch weitere Studien im Bereich Databinding, wsdl-Implikation und Database-Performance in Bezug auf BlaseDS-Pushing durchgeführt werden. Die HTML5-Videotechnologie ist allerdings abschließend als ein großer Schritt in Richtung Internet-Video-Standard zu bezeichnen. 8 Anhang 8.1 Quellenverzeichnis 8.1.1 Fußnoten 1. ? Vgl. Information Management: A Proposal http://www.w3.org/History/1989/proposal.html 2. ? Vgl.HTML 4.01 Specification W3C Recommendation (Stand 10.01.2011) http://www.w3.org/TR/1999/REC-html401-19991224/ 3. ? Vgl. Stefan Münz/Clemens, Gull (2010), Seite 21 4. ? Stefan, Münz/Clemens, Gull (2010), Seite 28 5. ? Vgl Stefan, Münz/Clemens, Gull (2010), Seite 60 6. ? Vgl. http://de.selfhtml.org/intro/hilfsmittel/software.htm#browser, 12.1.2011 7. ? http://www.youtube.com/?gl=DE&hl=de, 12.1.2011 8. ? http://www.myvideo.de/, 12.1.2011 9. ? http://de.wikipedia.org/wiki/Wiki, 12.1.2011 10. ? http://de.wikipedia.org/wiki/Blog, 12.1.2011 11. ? Studie result GmbH, Seite 19 12. ? Studie result GmbH, Seite 9 13. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 205 14. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 207 15. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 6 Entwicklung und Zukunft von HTML5 im Bezug auf Video 30 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 16. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 17. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 18. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 19. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 20. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 21. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 22. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 206 23. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 207 24. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 207 25. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 207 26. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 207 27. ? Vgl. A vocabulary and associated APIs for HTML and XHTML http://www.w3.org/TR/html5/video.html#media-elements 28. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 205 29. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 205 30. ? Zitat: Adobe Corp. Doc ID tn_4150 (Stand 28.09.2010) http://kb2.adobe.com/cps/415/tn_4150.html 31. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 205 32. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 33. ? Abbildung der Internetseite: http://www.youtube.com/html5l 34. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 35. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 36. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 37. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 38. ? Abbildung der Internetseite: http://videojs.com/ 39. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 40. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 41. ? Abbildung der Internetseite: http://www.longtailvideo.com/support/jw-player/jw-player-for-html5 42. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 43. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 44. ? Abbildung der Internetseite: http://camendesign.com/code/video_for_everybody 45. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 46. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 47. ? Abbildung der Internetseite: http://media.chikuyonok.ru/ambilight/ 48. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 49. ? Abbildung der Internetseite: http://media.chikuyonok.ru/ambilight/ 50. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 51. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 8.1.1 Fußnoten 31 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video 52. ? Abbildung der Internetseite: http://flarevideo.com/ 53. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 54. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 55. ? Abbildung der Internetseite: http://www.vpfactory.com/ 56. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 57. ? Abbildung der Internetseite: http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 58. ? Abbildung der Internetseite: http://www.vpfactory.com/ 59. ? Abbildung der Internetseite: http://medias.jilion.com/sublimevideo/dartmoor.ogv 60. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 61. ? Zitat: Thomas Soyter, www.webmasterpro.de, http://www.webmasterpro.de/portal/article/html5-10-video-media-player-in-der-uebersicht.html 62. ? Zitat: Stefan Münz/Clemens, Gull (2010), Seite 20 8.1.2 Literaturnachweis Stefan, Münz/Clemens, Gull: HTML5 Handbuch: Die Webgrammatik für das Internet der Zukunft, Franzis Verlag GmbH, 85586 Poing, 2010 "Web 2.0" Begriffsdefinition und eine Analyse der Auswirkungen auf das allgemeine Mediennutzverhalten, result GmbH, 50823 Köln, 2007 http://de.selfhtml.org/index.htm http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#video 8.1.3 Abkürzungsverzeichnis Abkürzung SGML API HTML W3C IE OSD Mime MP3 CSS DRM Codec HD Nr. etc. bzw. Bedeutung Generalized Markup Language application programming interface Hypertext Markup Language World Wide Web Consortium Internet Explorer Onscreen Display Multipurpose Internet Mail Extensions MPEG-1 Audio Layer 3 Cascading Style Sheets Digital Rights Management Coder/Decoder High Definition Nummeret cetera et cetera beziehungsweise 8.1.2 Literaturnachweis 32 Analyse_der_Funktionen_und_Demonstrationen_von_HTML5_im_Hinblick_auf_Video SHML DOM URI wsdl statisches HTML Dokument-Objekt-Modell Uniform Resource IdentifierWeb Services Description Language Web Services Description Language 8.2 Abbildungsverzeichnis Abb.-Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Abbildung Aufbau einer Webseite Anwendungsfelder "Web 2.0"-Nutzer Web 2.0 in zwei Demensionen Darstellungsbeipspiele Mozilla Firefox 3.6 Darstellung mit Microsoft IE 9 (Beta) Darstellung Google Crome 8 Darstellung Internet Explorer 8 (Flash video) Bereiche einer Bedienoberfläche im Firefox Bereiche einer Bedienoberfläche im Firefox Vimeo Player Video JS Player JW Player Video for Everybody Player Ambilight Player Ambilight Player Nr 2 FlareVideo Player VP Factory Player Sublime Player Sublime Player Nr 2 Server-Client-Modell Datenbank-Server-Client-Modell Adobe vs Apple 8.1.3 Abkürzungsverzeichnis 33