Plattformübergreifendes Videostreaming auch für Mobilgeräte?

Auf der Desktop-Version der Website www.funjump.de werden Clips im rechnerfähigem flv-Format und Youtube-Beiträge eingebunden. Die Webapp m.funjump.de beinhaltet Videos, zugeschnitten für das IPhone, das Galaxy und ihren Verwandten, die mit dem nativen Playser die Sequenzen abspielen müssen. Trotz HTML5-Standards hat sich die Sache als „tricky“ erwiesen. Wir erzählen!

Für unseren langjährigen Kunden TAKEOFF, dem Anbieter von Tandemsprüngen und Fallschirmsprungausbildungen in Fehrbellin, haben wir kürzlich eine Website für Mobilgeräte umgesetzt: Eine abgespeckte und übersichtliche Version der Site mit genau den Infos, die man gerade mal unterwegs gut brauchen kann.

Nun kam es wie so oft: Ist die Site erstmal grundlegend fertig gestellt, ist die Wunschmaschine wieder im vollen Gange. Und so kam es, dass die Mobilsite mit ein paar schönen Videos vergangener Fallschirmsprünge aufgepeppt werden sollte.

Für Dreispringer kein Problem… zumindest dann nicht mehr, wenn alle Probleme gelöst sind. Und wie so oft im Web, gab es auch diesmal wieder ein paar unerwartete Überraschungen.

Nun ist es so, dass das HTML-5-Video-Element zwar alle möglichen Formate unterstützt, jedoch kein Browser alle Formate unterstützt und es nicht ein Videoformat gibt, was von allen Browsern unterstützt wird.

IMG_1236[1]Das nichts von allen unterstützt wird, ist die einzige und wahre Bedeutung vom sog.  „Webstandard“.

Aber: HTML-Video wollten wir eh nicht. Wieso aufwändig einen eigenen Player bauen? Für uns wie für die Nutzer ist es schlichtweg komfortabler, den Videostream direkt zu verlinken, so dass er ressourcensparend, adaptiv und komfortabel im geräteeigenen Player wiedergegeben wird, in Vollbild und ohne störende Seitenelemente. Keep it simple!

Das hat dann auch geklappt. Auf dem Samsung Galaxy S3 Mini und auch quasi sonst überall… nur die Applegeräte zeigen uns einen durchgestrichenen Playbutton und verweigern uns trotzig das Playback. Hallo? Was ist denn hier los?

Also, gründlichst das Format durchgecheckt:
Video in Mp4/Mov-Verkapselung? Alles richtig.
H.264-Videoencoded? Alles richtig.
Audio als Mp4audio eingebunden? Ja.

Ein anderes Video mit den exakt gleichen Container- und Codecs abgespielt: Funktioniert problemlos.

Was hatte Apple gegen unser Video?

Die Antwort war wenig intuitiv:
Das vom Kunden gelieferte Video hatte DVD-Auflösung mit 704×576. Applegeräte — und da selbst das hochauflösende iPad eingeschlossen — spielen zwar Videos mit den genannten Container und Codes ab, allerdings MP4-Video nur bis zur Auflösung 640*480 Pixel (Quelle) — 720px gehen zwar auch, allerdings nicht in dem angestrebten MP4-Format.

Nungut. Verkleinern wollten wir das Video sowieso, um Bandbreite von Server und Nutzern zu sparen.

Unser  Werkzeug der Wahl ist für’s Extrahieren von DVD-video und rekomprimieren der Video- und Audiostreams im Allgemeinen der VLC-Medien-Player, welcher unter seiner einfachen Player-Oberfläche eine gute Werkzeugkiste der Video(de)kompression bereitstellt.

Aber: Der VLC hatte seinen schlechten Tag. Den Audiostream wollte er partout nicht rekodieren und jammerte stattdessen rum, dass er den notwendigen Encoder nicht laden könne.

screenshot native Player VideostreamingAbhilfe verschaffte ein naher Verwandter des  VLC, das Videotool FFmpeg . Dieses beschwerte sich zwar ebenso über den fehlenden Audiocodec (libaac), jedoch war es bei diesen per Änderung der Kommandozeilenparameter sehr einfach festzulegen, dass die entsprechend neue Bibliothek (libvo_aacenc) benutzt werden sollte.

ffmpeg -i „video.mp4“ -s qvga -vcodec libx264 -acodec libvo_aacenc  -profile:v baseline -crf 22 -OUTPUT.MP4

Also, mit VLC die DVD-Videos axtrahiert, mit FFMepg die Streams recodiert – Auflösung und Bitrate reduziert – und nun läufts perfekt.

screenshot Video im nativen Player Querformat 640px

Anzusehen unter
http://m.funjump.de/mobil

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.