Azure Media Services – Videoencoding und Streaming aus der Cloud

Über Erfahrungen mit Video-Streaming, Insellösungen und rettende Ufer – Talk bei der .NET User Group Oldenburg

Hi, darf ich Dir was verraten? Ich habe eine Vergangenheit mit Videostreaming – Streamingserver, OnDemand-Video, Live-Encoding und so weiter. Wenn Du ähnliche Erfahrungen gemacht hast, hat es Dir vielleicht genau so starke Kopfschmerzen verursacht wie mir und Du ahnst vielleicht schon, über welche Probleme ich gleich sprechen werde…

Das Problem in meinem Fall bestand immer in der Kombination verschiedener Softwarelösungen, um geforderte Streamingprozesse zu automatisieren. Das hieß, geeignete Kameras bestimmen, Software-Encoder- und geeignete Einstellungen wählen, Interaktion mit den Streamingservern gewährleisten und irgendwie alles miteinander verbinden.

Und: testen, testen, testen!

Irgendwann konnte ich dann „Evaluation“ problemlos rückwärts buchstabieren. Wenn das nix ist?!  Falls Du dann noch die Anforderung hast, dass bitte schön alles fein automatisiert per Code ablaufen zu lassen, nun, da findest Du dann zu Deiner ganz eigenen Definition von „overhead“…

Insellösungen for the win?

In meinem Falle sah dies ganz unterschiedliche Insellösungen vor: Der Player war in Flash sowie SIlverlight (zwecks DRM), der Streamingserver (Wowza) hatte Komponenten in Java, der (Live-)Encoder war von einem labelpflichtigen Drittanbieter – das SDK ein Graus, für alles was der Encoder nicht konnte musste FFMpeg herhalten usw usf… Wollen wir noch über mobile Kompatibilität reden? iOS High-Profile vs. Main Profile? Anyone? Besser nicht. So oder so ähnlich sahen und sehen viele Workflows aus, die es sich zum Ziel setzten, automatisiertes Live-Encoding inkl. Streaming anzubieten. Was ich mich häufig fragte, warum kein Anbieter die All-In-One Lösung bot?

Gerätekompatibles Video-Encoding kann ein spannendes Thema sein…

…wenn Du sonst nichts zu tun hast.

Für einfache Anforderungen genügen Dir vielleicht Portale wie youtube oder Vimeo. Vielleicht planst Du aber auch eine zahlungspflichtige App, die Live-Videos automatisch transcodieren soll? Einen geeigneten Crossplattform-Player bieten soll? Vielleicht willst Du aber auch für Dein MVP (Minimum-Viable-Product) kein Vermögen für Softwaretools ausgeben? Deine Inhalte sollen mittels DRM und AES-128 Bit Verschlüsselung bestmöglich geschützt werden?

Hier noch ein paar mögliche Anforderungen:

  • Unterstützung von Live- und OnDemand Encoding unterschiedlicher Quellen
  • Upload und Encoding-Prozesse via Code zu steuern
  • Nachbearbeitungen (Audio-Transkriptionen, Thumbnails) zu automatisieren
  • Crossplattform-Wiedergabe mit eigenem Branding gewährleisten

Hast Du das KnowHow für Bitraten, Codecs und Gerätespezifikationen?

Wo fängst Du da an? Besitzt bereits jemand in Deiner Unternehmung das notwendige KnowHow bezüglich Bitraten, Codecs, Gerätespezifikationen? Musst Du dieses KnowHow erst aufbauen oder einkaufen? Welche Tools nutzt Du? Welche gibt es? Hat die t3n nicht mal was drüber geschrieben?

Wie wäre es mit einer Lösung, die Dir alle Aufgaben abnimmt? Dann lass uns doch mal über die „Azure Media Services“ reden…

Das Ökosystem der Azure Media Services

Ausgerechnet Microsoft machte sich nämlich vor ein paar Jahren auf, die Welt des Cloud-Videoencodings- und -streamings zu erobern.

 

Azure Media Services
(Quelle: http://weblogs.asp.net/scottgu/announcing-release-of-windows-azure-media-services)

Was Microsoft im Jahre 2013 auf Basis seiner Cloudplattform Azure vorstellte, hieß salopp „Azure Media Services“. Was tatsächlich nichts anderes bedeutete als: Cloud-Video-Encoding und -Streaming als Platform-as-a-Service (PaaS) – samt Crossplattform-Player, Verschlüsselung, DRM, SDK etc. Das rettende Ufer?

Ein paar Jährchen später hatte ich das Vergnügen, über meine bisherigen Erfahrungen mit der Plattform bei der .NET User Group Oldenburg zu berichten. Einen kleinen Überblick sowie die Folien zur Präsentation findest Du im Folgenden.

 

Die Azure Media Services bieten Dir ein komplettes Ökosystem, um alle erdenklichen Anforderungen bezüglich Encoding, Transcoding sowie Live- und OnDemand-Streaming umzusetzen.

kein detailiertes Fachwissen notwendig

Fürs Encoding kannst Du aus verschiedenen Presets wählen, Du benötigst hierfür auch kein detailiertes Fachwissen bezüglich Bitraten, Codecs, Auflösungen etc. Du musst Deine Einstellungen auch nicht mühsam auf Validität/Qualität prüfen. Stichwort „Evaluation“.

Im Encoding-Ergebnis liefert Dir der Encoder einen Dateicontainer der unterschiedlich große Dateipakete je nach Auflösung beinhaltet. Diese werden mittels „adaptiver Bitrate“ bzw. „smooth Streaming“ ausgeliefert. So erhält der Client anhand seiner aktuellen Verbindungsqualität automatisch das für ihn optimalste Videoerlebnis.

Der Clou der Media Services ist das dynamische Bereitstellen Deiner Inhalte („dynamic packaging“), dass es Dir ermöglicht, Deinen Content automatisch in unterschiedlichen Protokollen auszuliefern – je nach Anforderung des spezifischen Endgerätes. Dafür muss der Content nicht einmal in unterschiedlichen Formaten vorliegen (spart Speicherplatz).

Skalierung? Kein Problem. Du kannst die Streaming-Units problemlos je nach Anforderung skalieren. Auch der Durchsatz des Encoders lässt sich performant skalieren.

Für die Einbindungen in eigene Services und Workflows stehen Dir zudem eine REST-API und SDK ’s für .NET, Java und PHP zur Verfügung.

Content-Protection mit DRM und AES

Die Media Services ermöglichen Dir zudem, deinen Content individuell mittels AES-128 Bit zu verschlüsseln und DRM-Zertifikate zuzuweisen. Diese können bspw. auch zeitlich begrenzt werden. Eine optimale Lösung, um im Szenario von Subscription-Modellen zeitlich gesteuert Deinen Video-Content anzubieten. Der Schlüsselabruf lässt sich mittels eigens implementierter Token-Authentifizierungen individualisieren. Aktuell werden für die DRM-Lizensierung PlayReady und WideVine angeboten. Apples FairPlay-Technologie soll in Zukunft folgen.

Azure Media Services Content Protection

Azure Media Services Explorer

Zur Administration bieten sich mehrere Varianten an. Einerseits kann der Encoding- und Streaming-Prozess via Onlineportal gesteuert werden, andererseits drängt sich mit dem Azure Media Explorer eine umfassende Administrations-GUI auf, mit der alle Funktionen der Azure Media Services (und nur diese) gesteuert werden können (WinOnly).

Der Azure Media Explorer ist das Mittel der Wahl, um effizient Content zu verwalten ohne mit anderen Azure Services in Berührung zu kommen. Die Benutzung ist dabei auch wesentlich performanter als die des Webportals.

Videonachbearbeitung und Analyse mit den Azure Media Analytics

Bei Analytics denkst Du vielleicht an User Tracking und Metriken? In der Welt der Azure Media Services sprechen wir hier aber von Processing, also von Funktionen, die deinen Videocontent analysieren, um Informationen zu extrahieren. Die Azure Media Services stellen Dir verschiedene „Media Prozessoren“ zur Verfügung, um deinen Content entsprechend zu bearbeiten. Zur Auswahl stehen:

  • Hyperlapsefunktionen (stabilisiert das Video und lässt es schneller abspielen, ermöglicht smoothe Drohnenflüge)
  • Gesichts und Bewegungserkennung
  • Generieriung von Thumbnails
  • Bildstabilisierer
  • Media Indexer zur Erstellung von Audio-Transkriptionen

Audio-Transkription = Sprache zu Text? Really? Jup! Mit dem Media Indexer wird der gesamte Videoinhalt einer Spracherkennung unterzogen. Erweiterte Business-Möglichkeiten inklusive. Das Ergebnis ist eine WebVTT-Datei, bei der der Text einzelnen Timeslots zugeordnet ist:

WEBVTT

1
00:00:20.000 --> 00:00:24.400
Am Anfang schuf Gott

2
00:00:24.600 --> 00:00:27.800
Himmel und Erde.

Automatische Erstellung von Audio-Transkription zur Untertitelanzeige

Diese WebVTT-Dateien können mit dem HTML5 <track>-Tag genutzt werden, um innerhalb von Videos Untertitel anzuzeigen. Es können ebenfalls mehrere Dateien (bspw. für unterschiedliche Sprachen/Übersetzungen) eingebunden werden. Die Erkennung ist aktuell für Englisch und Spanisch verfügbar, die Fehlerquote beachtlich gering. Nach eigenen Tests würde ich hier von einer Trefferquote von 95% sprechen.

Acht weitere Sprachpakete sind als Preview in der Version 2 bereits verfügbar, darunter auch Deutsch. Die Trefferquote würde ich hier aktuell auf 70% beziffern. Die so erstellte WebVTT- Datei kann mit dem hauseigenen Azure Media Player ebenfalls dargestellt werden, oder bspw. innerhalb deiner Anwendung als Stichwortsuche genutzt werden.

Crossplattform-Player ohne Plugin – Azure Media Player

Apropos Player! Zur plattformübergreifenden Wiedergabe bietet Microsoft mit dem angesprochenen Azure Media Player einen auf HTML5 basierenden Player an. Browserplugin? Nicht notwendig! Wirklich! Der Player bietet Unterstützung für DRM- und AES-128-Bit Verschlüsselung. Vorbei die Zeit als DRM-Protection nur via Browserplugin realisierbar war – vorbei auch die Zeit, als man hierfür irritierte Blick von Mac-Usern erhielt („Silverwhat??“).

Sollte der Browser kein HTML5 unterstützen bietet die Implementierung des Azure Media Players Fallbacks auf Flash und Silverlight an. Eine entsprechende clienseitige Javascript API bietet individuelle Möglichkeiten der Implementierung. Für die native Entwicklung bspw. bietet Microsoft darüber hinaus spezifische Plattform SDK‘s. Eine umfangreiche Demo des Players inlk. Unterttitel-Videos findest du hier.

Zielgruppen?

So far, so good. Für wen ist die Technologie von Bedeutung? Die Zielgruppe der Azure Media Services sind ganz klar Content-Distributoren die einerseits einen deutlichen Bedarf nach Streaming mit Content-Protection haben und andererseits auf Inhousehardware verzichten wollen/müssen. Dies können sowohl Videoportale als auch Bildungseinrichtungen sein. Auch das ein oder andere videolastige App-Startup ist mit der Technologie gut beraten, vielen Kopfschmerzen bezüglich Content-Protection, Crossplattform-Kompatibität und automatisiertes Encoding aus dem Weg zu gehen.

Ausblick

Was können wir in Zukunft erwarten? Die Qualität der deutschen Spracherkennung des Audio Indexers wird sich sicherlich noch verbessern, spätestens wenn Version 2 die Previewphase verlassen hat. Microsoft arbeitet ebenfalls daran, intelligente Analyseverfahren (maschinelles Lernen) voranzutreiben, um automatisierte, intelligente Videozusammenfassungen zu erstellen. Auf der NAB 2016 wurden ebenfalls OCR-Funktionalitäten vorgestellt, die es ermöglichen, Texte innerhalb von Videos zu extrahieren/analysieren, bspw. um Inhalte aus Folienpräsentationen einer Stichwortsuche verfügbar zu machen.

Was wir vielleicht nicht mehr erwarten müssen? Insellösungen mit Kopfschmerzen…

Schreibe einen Kommentar

*
*