Juni 2016

Band 31, Nummer 6

Dieser Artikel wurde maschinell übersetzt.

Power BI – Microsoft Azure Media Services und Power BI

Durch Sagar Bhanudas Bhanudas | Juni 2016

Microsoft Azure Media Services bietet eine umfassende Plattform für Entwickler und unabhängige Softwarehersteller Demand und live-streaming-Erlebnisse über Web- und systemeigenen apps zu übermitteln. Consumer Erfahrungen bereichern und Einblicke in die Nutzung von Kontext-Anwendung, ist es wichtig, die mit Ihrer Hilfe eine robuste Lösung für plattformübergreifende im Back-End für die Analyse und Visualisierung. Zum Zeitpunkt dieses Artikels bieten nicht Azure Media Services-Plattform Analysen ohne Konfigurationsaufwand. Daher sind Entwickler immer durch Nutzung von Geschäftsdaten-Anforderungen von einem Standpunkt Analytics überfordert.

Dieser Artikel soll Entwicklern helfen, basierend auf Azure Media Services (und Player) eine Analyseplattform für das Erkennen von Nutzungstrends zu erstellen. Die Lösung umfasst Nutzung einer intermediate-Web-API-Dienst und die Datenbank, mit der Visualisierung mit Power BI mit.

Das Szenario

Die meisten Organisationen erstellen/Einbetten von Medieninhalten müssen Verwendungsanalyse/Daten zu den Endbenutzer improvisieren befassen. Um dies zu erreichen, müssen Entwickler die Key Performance Indicators (KPIs) im Zusammenhang mit ihren Video/Media-Verbrauch erfassen. Hier sind einige der häufigsten und wünschenswert KPIs:

  • Dies ist die am häufigsten beobachteten Video?
  • Wie viele Personen bis zum Abschluss das Video gesehen?
  • Wie oft war das Video angehalten und an welcher Position?
  • Das ist die am häufigsten gestreamte Format/Bitrate?
  • Plattforminformationen und andere demografischen Informationen.

Damit Sie entscheiden, das die richtige Mischung aus Diensten und Tools, mit dem diese KPIs übermitteln kann, ist sehr viel Zeit und Energie um jede Komponente von Grund auf neu erstellen, um oder basieren auf bewährten Plattformdienste aufgewendet.

Glücklicherweise hat der Azure-Cloud-Plattform eine Vielzahl von Diensten, die in der gesamten Lösungsentwurf erfassen und Adresse Analytics Anforderungen genutzt werden können. In diesem Szenario werden die folgenden Komponenten verwendet:

  • Azure Media Services
  • Azure MediaPlayer
  • Azure-Web-Apps
  • Azure SQL-Datenbank
  • Power BI

Die Idee dabei ist zum Erfassen von Daten aus Azure Media Player und leiten ihn an die mittlere Ebene (Web-API), die die Verbindung mit der verwalteten (Berichte) von Azure SQL-Datenbank handelt. Sie verbinden dann Power BI mit Datenquellen innerhalb der Berichtsdatenbank zum Einblenden von Trends der Medien Nutzung/Nutzung durch Visualisierungen.

Weitere Abschnitte in diesem Artikel erläutert die eigentliche Implementierung dieses Szenario zu aktivieren.

Dynamische Pakete und Vorbereitung für die Nutzung von Video

Das beste von Azure Media Services ist, können Sie Ihr Video oder Audio-Inhalt und Vorbereiten des Verbrauchs auf verschiedenen Plattformen. Dies erreichen Sie entweder mit dem Azure-Portal oder von Code die gleichen Schritte ausführen, wenn Sie müssen die Schritte-Lösung zu automatisieren. In diesem Abschnitt des Szenarios werden die folgenden Aufgaben erläutert:

  • Identifizieren Sie den Inhalt (in diesem Fall wähle ich einen Demo-video-Inhalt), die bei Bedarf verwendet werden
  • Das Video zu Azure Media Services hoch (unterstützt durch Azure Storage-Konto)
  • Überwachen Sie den Fortschritt und übermitteln Sie des Auftrags für die dynamische paketerstellung
  • Erhalten Sie die entsprechenden URLs für die Nutzung auf verschiedenen Plattformen

Ich verwende den Azure-Beispiel am bit.ly/22Iy1ST Einstieg in die C#-Konsolen-app zum Erreichen dieser Aufgaben. Obwohl dieses Beispiel NuGet-Pakete und die C#-Anwendung nutzt, können Sie die SDKs, die in anderen Sprachen verfügbar. Hier die wichtigste Code wird das Video für die Codierung zu übermitteln und die URLs, siehe Abbildung 1.

Abbildung 1 Code für einen Codierungsauftrag senden

static public IAsset EncodeToAdaptiveBitrateMP4s(IAsset asset,
    AssetCreationOptions options)
{
  IJob job = _context.Jobs.CreateWithSingleTask(
    "Media Encoder Standard",
    "H264 Multiple Bitrate 720p",
    asset,
    "Adaptive Bitrate MP4",
    options);
  Console.WriteLine("Submitting transcoding job...");
  job.Submit();
  job = job.StartExecutionProgressTask(
  j =>
    {
      Console.WriteLine("Job state: {0}", j.State);
      Console.WriteLine("Job progress: {0:0.##}%",
        j.GetOverallProgress());
    },
    CancellationToken.None).Result;
  Console.WriteLine("Transcoding job finished.");
  IAsset outputAsset = job.OutputMediaAssets[0];
  return outputAsset;
}

Wenn Sie mit Azure Media Services nicht vertraut sind, ist eine Liste der Terminologie:

  • Anlage (oder IAsset) – eine Entität, die ein Medienpaket mit Azure Media Services darstellt. Es kann eine oder mehrere Inhaltsdateien enthalten.
  • Auftrag (oder IJob) – eine Entität für eine Einheit der Arbeit "Codierung" von Azure Media Service ausgeführt werden soll. Betrachten sie als eine Datei von einem Format in ein anderes konvertieren.
  • Mit adaptiver Bitrate – ein Codierungsformat, die auf die CPU-Netzwerk des Zielsystems anpasst und Inhalte, die den Kriterien, die besten Gerät übermittelt. Sie müssen lediglich die Dateien mit adaptiver Bitrate zu erstellen und Azure Media Services erkennt die richtige Bitrate an den Client gestreamt werden.

Jetzt Kombinieren der einzelnen Komponenten aus dem Code in Abbildung 1, die Funktion sendet ein "Asset" auf die standardmäßigen Media Services-Encoder für die Konvertierung in das Adaptive Bitrate MP4-Format quellmedienobjekt.

Fortschritt wird im Beispiel gezeigt, oder Sie können es über das Azure-Portal verfolgen, siehe Abbildung 2 im Abschnitt "Aufträge". (Ich haben die Werte der ID-Felds ausgeblendet.)

Azure Media Services-Beispiel wird die Job-Status
Abbildung 2 Azure Media Services-Beispiel mit Job-Status

Nun, dass Sie ein Medienobjekt über Geräte und Plattformen hinweg verbraucht werden erfolgreich erstellt haben, müssen Sie unbedingt Azure Media Services wird die Plattform des Zielgeräts kennen, sodass sie die richtige Codierung und Inhaltsformat streamen kann. Windows-Geräte unterstützen z. B. in der Regel während der Wiedergabe Silverlight Smooth Streaming-Format:

http://testendpoint-testaccount.streaming.mediaservices.windows.net/fecebb23-46f6-490d-8b70-203e86b0df58/­assetvideo.ism/Manifest

Dabei iOS-Geräte HLS-Videoformat und andere unterstützen:

http://testendpoint-testaccount.streaming.mediaservices.­windows.net/fecebb23-46f6-490d-8b70-203e86b0df58/­assetvideo.ism/Manifest(format=m3u8-aapl-v3)

Beachten Sie die ersten Buchstaben der URL, die nach "Manifest". angefügt werden nachfolgende Dieser Notationen Format unterstützen die Azure Media Services-Endpunkt zu identifizieren, das Format des Inhalte an das Gerät übertragen werden. Nach der Erstellung die Medien, die an das Gerät übertragen werden können, erstellen wir einer HTML-Seite für die Nutzung von Videos über Azure Media Player (bit.ly/1SQ8Rwr).

Verwenden von Medien und das Senden von Analysedaten an das Back-End

Azure Media Player ist eine Web-Videoplayer, der die Wiedergabe des Azure Media Services-Inhalte auf der Clientseite ergänzt. In Kombination mit einer zugrunde liegenden Browser Plattform zum Rendern von Inhalts des Videos (in erster Linie von Azure Media Services) mit minimaler Konfiguration im JavaScript-Code. Das Ziel ist jedoch nicht nur um das Medium wiederzugeben, aber auch zu analytische Daten über die Nutzung von ableiten und protokolliert sie in das Back-End. Da das Ziel ist die aggregierten Daten an das Ende der Lösung für die Analyse anzeigen, konzentriere ich mich nur auf eine begrenzte Anzahl von Parametern aufgezeichnet werden sollen; Halten Sie z. B. ein Bezeichner von Videoinhalten, Titel des Videos, Zeit, einen Zeitstempel und zusätzliche Hinweise/Daten ein.

Der HTML-Code für Spieler sieht daher wie Abbildung 3.

Abbildung 3: die Front-End-HTML-Code

<!DOCTYPE html>
<html>
<head>
  <title>Welcome to the awesome world of Azure Media Services</title>
  <link href="http://amp.azure.net/libs/amp/1.6.3/skins/amp-default/
    azuremediaplayer.min.css"
    rel="stylesheet">
  <script src="http://amp.azure.net/libs/amp/1.6.3/azuremediaplayer.min.
    js"></script>
  <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.1.min.
    js"></script>
    <meta charset="utf-8" />
</head>
<body>
  <video id="azuremediaplayer" class="azuremediaplayer
    amp-default-skin amp-big-play-centered"
    tabindex="0"></video>
  <script src="scripts/Player/Player.js"></script>
</body>
</html>

Der Code HTML (Entwurf) in Abbildung 3 einfach deklariert das Videoelement zusammen mit den Azure Media Player-spezifische Eigenschaften, um die Benutzeroberfläche des Players zu kennzeichnen. Beachten Sie die Datei Player.js, führen Sie die Aufgabe zum Erkennen von der Plattform, die video-URL angeben, erstellen ein Objekt Analysedaten und asynchron an den benutzerdefinierten Back-End zu senden.

Der einfachste Code in Player.js kann aussehen wie Abbildung 4.

Abbildung 4 Bildquelle festlegen und Erfassen von Azure Media Player-Attribute

var myOptions = {
  "nativeControlsForTouch": true,
  controls: true,
  autoplay: true,
  width: "640",
  height: "400",
    }
myPlayer = amp("azuremediaplayer", myOptions);
  myPlayer.src([
    {
// For feature detection, you can use libraries like Modernizr and then
// construct the URL
  "src": "http://demoendpoint.streaming.mediaservices.windows.
    net/8frnf8nf-1jd8-l9i8-009w-92073ffd3fsce/assetvideo.ism/Manifest",
  "type": "application/vnd.ms-sstr+xml",
  }
  ]);
  // Events
  myPlayer.addEventListener(amp.eventName.pause, _ampEventHandler);
  // More events like
  // Content load complete
  // Media completed
  // Video seek
  // Page unload
  function _ampEventHandler(eventDetails)
  {
    var eventName = eventDetails.type;
    var pauseTime = eventDetails.presentationTimeInSec;
    var title = "Hello Azure Media Service ! ";
    var ExtraData = "None";
    var dateTime = new Date().toUTCString();
    var data = {
      'MediaRef': 9999,
      'EventTime': pauseTime,
      'MediaTitle': title,
      'TimeStamp': dateTime,
      'ExtraData' : ExtraData
    }
  $(function () {
  $.ajax({
    type: "POST",
    data: JSON.stringify(data),
    url: "http://demowebapi.azurewebsites.net/api/MediaAnalytics",
    contentType: "application/json"
  });
  });
  }

Abbildung 4 zeigt die einfachste Form der Attribute, die aus dem Azure Media Player zu Referenzzwecken erfasst werden können. Ihrer Lösung MediaPlayer kann viele weitere Ereignishandler angefügt und umfangreichere Metriken erfasst (siehe bit.ly/1VA5osy). Obwohl der Code eine smooth streaming-Format verweist, können Sie die Features der Plattform erkennen und Medien-URL für das entsprechende Format des Inhalts vorzubereiten.

In diesem Beispiel ist ein Handler an das Ereignis "angehalten" der Azure Media Player angefügt, der aufgerufen wird, eine Back-End-Web-API durch ein AJAX-Aufruf (JQuery), um blockierende behindert die Videowiedergabe zu vermeiden. Daher, wenn der Benutzer das Video angehalten wird, der Back-End-Aufruf erfolgt asynchron an die Analytics-Datenbank, ohne jede Antwort wird an die HTML-Seite übertragen.

Da JavaScript eine stark typisierte Sprache ist, können Sie erstellen und Anfügen von dynamischen Eigenschaften für das Objekt und legen Sie die Werte. Das Objekt "Daten" in diesem Beispiel stellt die Instanz der Attribute aus dem Azure Media Player erfasst und als JSON-Zeichenfolge an die Back-End von einem der weit verbreitete Formate für die Kommunikation mit Web-API gesendet.

Die JSON-Zeichenfolge sieht folgendermaßen aus:

{
"MediaRef":12345,
"EventTime":15.5499976,"
MediaTitle":"Video - 21",
"TimeStamp":"Mon, 04 Apr 2016 16:03:36 GMT",
"ExtraData":"None"
}

Die Web-API und die Datenbank

Die Auswahl von Web-API und die Datenbank kann über einen weiten Bereich sein, da das Berichtstool für dieses Szenario Power BI ist (powerbi.microsoft.com). Allerdings wurde dies einfach zu halten, um ein ASP.NET Web API-Projekt erstellt zum Back-End-Dienst schnell einzurichten. Dadurch können Sie die Kommunikation zwischen dem Front-End einfach einrichten, ohne sich Gedanken über das Schreiben von viel Code für die Verbindung mit Datenbanksysteme machen. Im Gegensatz zu den Front-End-AJAX-Aufruf ist es wichtig, Konnektivität und Feedback aus der Datenbank sicherzustellen. Fehler beim Erfassen von Metriken für die clientseitige möglicherweise ein Problem mit CRUD-Operationen mit DB. Dieses Vorgehen hilft auch beim Testen der Web-API zu Datenbank-Verbindungen ohne komplexe Testfälle zu schreiben.

Der Code in Abbildung 5 zeigt, wie die Back-End-Web-API "Daten" JSON-Objekt aus dem HTML-Front-End empfangen und überträgt sie mit der SQL Azure-Datenbank.

Abbildung 5 die Web-API und die Datenbank

public class MediaAnalyticsController : ApiController
{
    async public void Post([FromBody]MediaWebAPI.Models.MediaData value)
  {
  using (SqlConnection connection =
    SQLConnHelper.CreateDatabaseConnection())
  {
    await connection.OpenAsync();
    int EntryID  =
       SQLConnHelper.SQLWriteAnalyticsDataAsync(value, connection);
    connection.Close();
    connection.Dispose();
  }
}
}

Ich bin größtenteils Ebene Klasse Datenzugriffscode und der tatsächlichen Treffer in der Datenbank zu abstrahieren, Optionen sind hier und kann diese allgemeinen Code, der die Verwendung mehrerer Arten von Middleware plus Datenbank Kombinationen hinzuzufügen kann. Beim erfolgreichen Einstieg in die Datenbank erhalten Sie die eindeutige ID für die Zeile EntryId. Anführen andere Methoden zum Empfangen von Feedback aus der Datenbank für einen erfolgreichen Betrieb und diese funktionieren hier ebenfalls.

Um die Analysedaten in einem strukturierten Format in der Datenbank darzustellen, habe ich eine Tabelle, die eng mit das Modell (in MVC) oder das JSON-Objekt aus dem HTML-front-End stammt, siehe Abbildung 6.

Eine vereinfachte Tabellenentwurf
Abbildung 6: eine vereinfachte Tabellenentwurf

Tipp: Eine schnelle Möglichkeit zum Erstellen von Back-End-als-Dienst ist Azure Mobile Apps, mit dem Sie beim Erstellen des Diensts schnell Bereitstellen von Web-API als auch Azure SQL-Datenbank verwenden können.

Zusammenfügen des Workflows: Gewinnen Einblicke über Power BI

Alle Phasen zuvor waren Bausteine zum Festlegen der Phase für das Endziel der hier besprochenen sehr Thema veranschaulicht: Analytics/BI mit der Azure Media Services-Komponente.

Mit der Kombination von Azure Media Services und Azure Media Player konnten Sie die Videowiedergabe schnell zu übermitteln, ohne viel über die Funktionen zur codieren und streaming. Allerdings interessiert sind, die meisten Organisationen auch gewinnen Einblicke in die Verwendungsmuster des Mediums Oberfläche, Trends zum Speicherbedarf. Azure bietet eine hervorragende visualisierungsplattform Innovationen und ermöglichen Entwicklern die Lösung zum Erstellen ansprechender um cloudbasierter Dienste auftritt. Power BI ist eine Visualisierung von Daten und der Analysetool, das Erstellung von interaktiven Dashboards Überwachen von Metriken/Leistungskennzahlen durch Konfigurieren entwicklungsumgebungen unterstützt.

Um die Visualisierung und die Oberfläche, die Trends in der Verwendung der Media-Inhalte zu erstellen, verwenden Sie das Power BI-desktop-Tool (bit.ly/1S8XkLO) konfigurieren und erstellen Sie die Berichte, die dann als Dashboards für die Überwachung der KPIs veröffentlicht werden soll. Klicken Sie auf dem Power BI-Desktop klicken Sie auf die Schaltfläche "Daten abrufen", und wählen Sie mehr aus der Dropdownliste aus. Sie sollten die Liste der verschiedenen unterstützten Datenquellen finden Sie unter und für diese Instanz wählen Sie Microsoft Azure SQL-Datenbank, siehe Abbildung 7.

Power BI-erste Schritte
Abbildung 7 Power BI-erste Schritte

Der Abrufen von Daten-Assistenten klicken Sie dann mit der Datenbank verbunden, und Sie können zusätzliche Optionen zum Importieren von Daten in den Designer angeben. Laden von Daten aus Datenquellen mithilfe von Power BI Datasets.

Nachdem die Daten importiert wurden, erstellen Sie einen Bericht mithilfe von Visualisierung Diagramme/Artefakte KPIs entsprechend. In einem Szenario mit mehreren Tabellen möglich Beziehungen zwischen Tabellen für komplexe Objekte, die in das Modell dargestellt werden können. Der Datasets und Visualisierungen können kombiniert werden, über den oberen rechten Bereich des desktop Power BI-Tools Siehe Abbildung 8.

Erstellen von Diagrammen Visualisierung
Abbildung 8 erstellen Visualisierung von Diagrammen

Jede Visualisierung bildet eine Schnittstelle Kachel im Power BI-Bericht entsprechend einen bestimmten KPI. In diesem Szenario sollte video Abschluss Raten, die Pausenzeiten und die meisten verbrauchten Media-Inhalte der Gesamttrend der Nutzung erhalten, was für Marketingkampagnen, Benutzer-Engagement-Analyse usw. verwendet werden kann.

Nachdem die KPIs abgeschlossen sind, können sie an angeheftet werden Dashboard – dem kann bilden einer einzelnen Ansicht des Produkts für CXOs, Entwickler, IT, Support-Funktionen und andere interessierte Parteien. Kacheln können auf verschiedenen Dashboards zu den Ansichten oder KPIs, die für Gruppen von Teams von Interesse sind verteilt werden. Z. B. des CxO möglicherweise von Interesse sein Anzeigen von Medien Abschluss Raten, demografische Informationen und am häufigsten verwendeten Kategorien, während IT und engineering-Teams kann auch andere KPIs zu überwachen, wie z. B. Fehlerraten, am häufigsten gestreamte Bitrate Analytics usw. Netzwerk.

Schließlich können die Berichte veröffentlicht werden, über das Internet an PowerBI.com für umfassende Nutzung und Nutzung, siehe Abbildung 9.

Power BI-Dashboard anzeigen von Berichten
Abbildung 9 Power BI-Dashboard anzeigen von Berichten

Nachbereitung

Dies ist nur die Spitze des Eisbergs Lösungen und Dienste von Microsoft Azure bietet Entwicklern und Lösungsanbietern. Azure Media Services können zusammen mit Video-on-Demand live-streaming-Diensten für umfangreichere Medieninhalten übermitteln. Es ist ausreichend Dokumentation um Anwendungsfälle und Szenarien für Azure Media Services, Web-apps und Datenbanken, die Entwickler bei bereitstellen und Ausführen von ASP.NET-Anwendungen in wenigen Minuten gestartet. Fortlaufende Verbesserungen werden von Azure und die Power BI-Plattform fast jeden Monat integriert, um relevanten Szenarien für die Dienste zu aktivieren.

Wenig Anpassung können Sie die spezifischen Bedürfnisse, und dieser Artikel ist ein Ausgangspunkt, um zu veranschaulichen, wie Nutzungsstatistiken erfasst und zum Bereitstellen von Medien-Verbrauch Analysen erweitert werden können.


Sagar Bhanudas Joshiist mehr als sechs Jahren mit Entwicklern und ISVs auf universelle Windows-Plattform und die Microsoft Azure-Plattform tätig. Seine Rolle umfasst arbeiten mit ISVs und Startups Architect, Entwurf und integrierte Lösungen zu ermitteln und zu Microsoft Azure, Windows und Office 365-Plattform. Joshi lebt und arbeitet in Mumbai Indien. Wenden Sie sich an ihm auf Twitter: @sagarjms behandeln.

Vielen Dank an den folgenden technischen Experten von Microsoft für die Überprüfung dieses Artikels: Sandeep J. Alur, leitender Experte

Sandeep Alur verfügt über 16 Jahre Erfahrung in der Branche Technologie und zur Architektur für Enterprise-Kunden bereitstellen. Seine Erfahrung Bereiche Dotcom Tage zum nächsten Generation, die verteilt und Cloud-computing-Technologie Zeitraum. Bei Microsoft er führt Technical Evangelism stehen für Indien und arbeitet mit der Start & ISV-Ökosystem geben eine Plattform zum Erstellen von Lösungen für die Cloud-Plattform.