Juin 2016

Volume 31, numéro 6

Cet article a fait l'objet d'une traduction automatique.

Power BI - Microsoft Azure Media Services et Power BI

Par Sagar Bhanudas Bhanudas | Juin 2016

Microsoft Azure Media Services propose une plate-forme riche pour les développeurs et éditeurs de logiciels indépendants fournir une vidéo à la demande et l’expérience de diffusion en continu sur le Web et les applications natives. Pour enrichir les expériences et obtenir un aperçu de l’utilisation de contexte/application, il est important d’armure de robustesse inter-plateformes dans le serveur principal pour la visualisation des données et analyses. Actuellement, la plateforme Azure Media Services n’offre pas analyse prête à l’emploi ; Par conséquent, les développeurs peuvent faire toujours l’utilisation de demandes commerciales à partir d’un point de vue d’analyse.

Cet article est centré sur l’aide pour les développeurs à la conception d’une plateforme analytique au sommet d’Azure Media Services (et de son infrastructure de lecture) pour faire émerger des tendances d’utilisation. L’espace de la solution inclut l’utilisation d’un service (API Web) intermédiaire et la base de données, avec la visualisation Upgrades avec Power BI.

Scénario

La plupart des organisations création/incorporation du contenu multimédia devez plonger dans les données d’utilisation / d’analyse dans le but d’improviser l’utilisateur final. Pour ce faire, les développeurs doivent enregistrer certains des indicateurs de performance clés (KPI) liées à leur consommation vidéo ou des éléments multimédias. Voici les plus courants et souhaitables indicateurs de :

  • Qui est le plus regardé ?
  • Combien de personnes regardé la vidéo jusqu'à la fin ?
  • Combien de fois était la vidéo en pause et à quelle position ?
  • Quel est le format/débit plus en flux continu ?
  • Informations de plate-forme et d’autres informations démographiques.

Dans l’ordre pour déterminer la meilleure combinaison de services et d’outils qui aideront à fournir ces indicateurs de performance clés, beaucoup de temps et d’énergie est passé pour créer chaque composant dès le départ des ou tirer parti des services de plateforme éprouvée.

Heureusement, la plateforme de Cloud Azure possède un jeu complet de services qui peuvent être exploitées dans la conception de la solution globale pour les spécifications d’analyse de capture et l’adresse. Les composants suivants seront utilisés pour ce scénario :

  • Azure Media Services
  • Azure Media Player
  • Applications Web Azure
  • Base de données SQL Azure
  • Power BI

L’idée consiste à capturer les données brutes d’Azure Media Player et flux une couche intermédiaire (API Web), qui sert d’intermédiaire pour la connexion avec la base de données SQL Azure (reporting) managé. Ensuite, vous vous connectez Power BI aux sources de données dans la base de données de création de rapports d’exposer les tendances de consommation d’utilisation/support via les visualisations.

Autres sections de cet article décrit en détail l’implémentation réelle de l’activation de ce scénario.

Empaquetage et préparation pour la consommation de vidéo

La meilleure partie de l’utilisation d’Azure Media Services est que vous pouvez prendre votre contenu audio/vidéo et préparer pour la consommation sur différentes plateformes. Vous pouvez y parvenir en utilisant le portail Azure ou en effectuant les mêmes étapes à partir de code si vous avez besoin automatiser l’étapes/solution. Cette section du scénario décrit les tâches suivantes :

  • Identifier le contenu (dans ce cas, je vais choisir un contenu vidéo de démonstration) pour être utilisée à la demande
  • Télécharger la vidéo à Azure Media Services (soutenu par un compte Azure Storage)
  • Surveiller la progression du téléchargement et de soumettre la tâche pour l’empaquetage dynamique
  • Obtenir les URL pertinentes pour la consommation sur différentes plateformes

Je vais utiliser l’exemple Azure situé dans bit.ly/22Iy1ST pour vous familiariser avec l’application de console c# pour réaliser ces tâches. Bien que cet exemple s’appuie sur les packages NuGet et le programme c#, vous pouvez utiliser les kits de développement logiciel disponibles dans d’autres langues. Le code le plus important ici consiste à envoyer la vidéo pour l’encodage et l’URL, comme indiqué dans Figure 1.

Figure 1 Code pour l’envoi d’un travail d’encodage

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;
}

Si vous êtes novice dans Azure Media Services, voici une liste rapide des terminologies :

  • Asset (ou IAsset) — une entité représentant un lot multimédia avec Azure Media Services. Il peut contenir un ou plusieurs fichiers de contenu.
  • Tâche (ou IJob), une entité qui représente une unité de travail « codage » devant être exécutées par le Service de support Azure. Elle sert de conversion d’un fichier d’un format vers un autre.
  • À débit adaptatif, un format de codage qui s’adapte à la fonctionnalité du processeur/réseau du système cible et fournit le contenu correspondant aux critères plus adaptés à l’appareil. Il vous suffit de créer les fichiers à débit adaptatif et Azure Media Services identifiera la vitesse de transmission droite être diffusés sur le périphérique client.

À présent, assemblage des morceaux à partir du code dans Figure 1, la fonction soumet un « actif » à l’encodeur Media Services Standard pour la conversion de la ressource de format Adaptive Bitrate MP4 source.

L’exemple montre également la progression des tâches, ou vous pouvez le suivre via le portail comme indiqué dans Figure 2 dans la section « tâches ». (J’ai occultées les valeurs de champ d’ID).

Exemple de progression de la tâche d’Azure Media Services
Figure 2 Azure Media Services exemple illustrant la progression des tâches

Maintenant que vous avez créé un élément multimédia prêt à être utilisées sur les périphériques et plates-formes, vous devez être sûr d’informer Azure Media Services la plateforme de l’appareil cible afin qu’elle peut diffuser le bon codage et le format du contenu. Par exemple, les appareils Windows prennent généralement en charge le format de diffusion en continu lisse de Silverlight en lecture :

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

où les appareils iOS prennent en charge format vidéo TLS et autres :

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

Notez que les premières lettres de l’URL, qui sont ajoutés après « Manifeste » de fin Les notations format aident le point de terminaison identifier le format du contenu à diffuser en continu à l’appareil Azure Media Services. Maintenant que vous avez le support prêt à être diffusé sur le périphérique, nous allons créer une page HTML pour l’utilisation de la vidéo via Azure Media Player (bit.ly/1SQ8Rwr).

Utilisation des données multimédias et l’envoi de données d’analyse pour le serveur principal

Azure Media Player est un lecteur vidéo Web qui vient compléter la lecture de contenu Azure Media Services côté client. Il fonctionne avec une plateforme de navigateur sous-jacente pour restituer le contenu vidéo (principalement à partir d’Azure Media Services) avec une configuration minimale dans le code JavaScript. Toutefois, l’objectif est non seulement pour lire le média mais également de dériver de l’utilisation des données analytiques et se connecter au serveur principal. Étant donné que l’objectif est d’afficher les données d’agrégation vers la fin de la solution pour l’analyse, je me concentrerai uniquement sur un numéro de sélection de paramètres doit être enregistré ; par exemple, un identificateur du contenu vidéo, le titre de la vidéo, un temps de pause, horodatage et remarques/données supplémentaires.

Par conséquent, le code HTML pour le lecteur recherche similaire dans Figure 3.

Figure 3 le Code HTML du serveur frontal

<!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>

Le code HTML (création) dans Figure 3 déclare simplement l’élément vidéo ainsi que les propriétés spécifiques à Azure Media Player pour désigner l’interface utilisateur du lecteur. Notez que le fichier Player.js, lequel effectuer la tâche de détection de la plateforme en spécifiant l’URL de la vidéo, créer un objet de données d’analyse et envoyer de façon asynchrone vers le serveur principal personnalisé.

Le code le plus simple de Player.js peut ressembler similaire Figure 4.

Figure 4 définition de Source vidéo et la capture d’Azure Media Player attributs

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"
  });
  });
  }

Figure 4 montre la forme la plus simple d’attributs qui peuvent être collectés à partir du lecteur Azure pour référence. Votre solution media player permettre attacher des gestionnaires d’événements plus nombreuses et capturer des mesures plus détaillées (voir bit.ly/1VA5osy). Bien que le code fait référence à un format de diffusion en continu lisse, vous pouvez détecter les fonctionnalités de plateforme et préparer rapidement l’URL du média pour le format du contenu approprié.

Dans cet exemple, un gestionnaire est attaché à l’événement « pause » de Azure Media Player, qui appelle une API Web de back-end via un appel AJAX (JQuery) afin d’éviter toute interférence de blocage avec la lecture vidéo. Par conséquent, chaque fois que l’utilisateur place la vidéo, le principal est appelé pour transmettre les données de façon asynchrone à la base de données d’analyse, sans recevoir de réponse est transmis à la page HTML.

Étant donné que JavaScript n’est pas un langage fortement typé, vous pouvez créer et ajouter des propriétés dynamiques à l’objet et définir ses valeurs. L’objet « données » dans cet exemple représente l’instance des attributs capturée à partir d’Azure Media Player et envoyées sous forme de chaîne JSON à la fin d’un des formats largement utilisées pour les communications de l’API Web.

La chaîne JSON ressemble à ceci :

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

L’API Web et la base de données

Le choix de la base de données et les API Web peut être dans tout le spectre, car l’outil de création de rapports pour ce scénario est Power BI (powerbi.microsoft.com). Toutefois, pour simplifier cela, un projet d’API Web ASP.NET a été créé pour configurer rapidement le service principal. Cela vous permet de configurer facilement les communications depuis le front-end sans avoir à vous soucier d’écrire beaucoup de code pour se connecter aux systèmes de base de données. Contrairement à l’appel AJAX frontal, il est important de vérifier la connectivité et les commentaires de la couche de base de données. Échec de la capture des mesures côté client peuvent entraîner des problèmes avec les opérations de base de données. Cette approche permet également de tester les connexions Web API de base de données sans avoir à écrire des tests complexes.

Le code dans Figure 5 montre comment l’API Web dorsal reçu l’objet JSON de « données » de la partie frontale HTML et exécute un push de la base de données SQL Azure.

Figure 5 l’API Web et la base de données

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();
  }
}
}

Je suis en faisant abstraction le code de classe couche accès aux données et l’accès réel à la base de données, comme les options peuvent varier ici et cela peut être code général qui peut symboliser l’utilisation de plusieurs types de combinaisons de middleware et de la base de données. Lors de la saisie réussie de la base de données, vous recevez l’ID unique de la ligne, l’ID d’entrée. Il existe certainement d’autres méthodes de recevoir des commentaires à partir de la base de données pour assurer le bon fonctionnement et un d’eux fonctionne dans ce cas, également.

Pour représenter les données d’analyse dans un format structuré dans la base de données, j’ai créé une table de correspondance étroitement le modèle (MVC) ou l’objet JSON que j’ai reçu de l’avant HTML, comme indiqué dans Figure 6.

Conception d’une Table simple
Conception de Table simple figure 6

Conseil : Un autre moyen rapide pour créer le serveur principal en tant que Service consiste à utiliser les applications mobiles Azure, qui vous permet de rapidement configurer API Web, ainsi que la base de données SQL Azure, lors de la création du service.

Assemblage du flux de travail : Idées via Power BI

Toutes les phases précédemment étaient des blocs de construction pour préparer la démonstration de l’objectif final de la rubrique très abordée ici : Analyse BI à l’aide du composant d’Azure Media Services.

Avec la combinaison d’Azure Media Services et Azure Media Player, vous pouviez fournir rapidement l’expérience vidéo sans avoir à vous préoccuper de beaucoup sur les fonctionnalités de codage et de diffusion en continu. Toutefois, la plupart des organisations cherchent également à idées dans le modèle d’utilisation du média à la surface des tendances de consommation. Azure propose une plateforme de visualisation excellent à innover et permettent aux développeurs de solutions créer des expériences autour de ses services basés sur le cloud. Power BI est une visualisation des données et l’outil d’analyse, qui prend en charge la création de tableaux de bord interactifs pour surveiller les mesures/indicateurs de performance clés dans les environnements de développement facile à configurer.

Pour créer des visualisations et surface les tendances dans l’utilisation de contenu multimédia, vous allez utiliser l’outil Bureau Power BI (bit.ly/1S8XkLO) pour configurer et créer les rapports, qui seront ensuite être publiés en tant que tableaux de bord de surveillance des indicateurs de performance clés. Dans le bureau de Power BI, cliquez sur le bouton obtenir les données et sélectionnez plus dans la liste déroulante. Vous devez voir la liste des différentes sources d’une base de données pris en charge et, pour cette instance, sélectionnez Microsoft Azure SQL Database, comme indiqué dans Figure 7.

Power BI mise en route
Figure 7 Power BI mise en route

L’Assistant données se connecte ensuite à la base de données et vous pouvez spécifier des options supplémentaires pour importer des données dans le concepteur. Power BI utilise des jeux de données pour charger des données à partir de sources de données.

Après avoir importé les données, vous allez créer un rapport à l’aide de la visualisation des graphiques/artefacts afin de refléter les indicateurs de performance clés. Dans un scénario de plusieurs table, il peut être relations entre les tables pour les objets utilisateur complexes qui peuvent être représentés dans le modèle. Les jeux de données et les visualisations peuvent être jumelées via le volet supérieur droit de l’outil Bureau Power BI, comme indiqué dans Figure 8.

Création de graphiques de visualisation
Figure 8 Création des graphiques de visualisation

Chaque visualisation constitue une interface en mosaïque dans le rapport Power BI pour refléter un indicateur de performance clé particulière. Dans ce scénario, les taux de fin vidéo, temps de pause et la plupart des contenus multimédia utilisé doivent fournir la tendance générale de l’utilisation, puis peut être utilisée pour les campagnes marketing, analyse de l’intérêt des utilisateurs et ainsi de suite.

Une fois que les indicateurs de performance clés sont finalisées, ils peuvent être épinglés au tableau de bord, qui peut former une seule vue du produit pour les membres de la direction, les développeurs, informatique, les fonctions de prise en charge et d’autres parties intéressées. Les mosaïques peuvent être répartis entre les différents tableaux de bord pour former les vues ou les indicateurs de performance clés qui présentent un intérêt pour les jeux d’équipes. Par exemple, Businesses peuvent être intéressées par affichage des taux de fin de support, des informations démographiques et plus consommés catégories, tandis qu’informatiques et les équipes d’ingénierie peut choisir de surveiller d’autres indicateurs de performance clés tels que le taux de défaillance, à vitesse de transmission plus en flux continu, analyse du réseau et ainsi de suite.

Enfin, les rapports peuvent être publiés sur le site Web PowerBI.com pour la consommation de large et d’utilisation, comme indiqué dans Figure 9.

Tableau de bord Power BI affichage de rapports
Figure 9 Power BI affichage tableau de bord des rapports

Synthèse

Il s’agit simplement de l’iceberg concernant les solutions et services Microsoft Azure peuvent fournir aux développeurs et fournisseurs de solutions. Avec la vidéo à la demande, Azure Media Services peut également fournir des services de diffusion en continu en direct pour des expériences multimédia plus riches. Il existe une documentation suffisante autour de cas d’usage et des scénarios pour Azure Media Services, applications Web et les bases de données qui peuvent aider les développeurs à configurer et démarrer l’exécution d’applications en quelques minutes. Améliorations continues sont intégrées à Azure et la plateforme de Power BI presque tous les mois pour activer des scénarios pertinents pour les services.

Très peu de personnalisation peut vous aider à répondre aux besoins spécifiques et cet article est un point de départ pour illustrer comment les statistiques d’utilisation peuvent être capturées et étendus pour fournir l’analyse de la consommation du média.


Sagar Bhanudas Joshia travaillé avec des développeurs et éditeurs de logiciels indépendants sur la plateforme Microsoft Azure et la plateforme Windows universelle pour plus de six ans. Son rôle inclut l’utilisation des Démarrages et les éditeurs de logiciels pour aider les architectes, conception et solutions intégrées et applications de Microsoft Azure, Windows et la plate-forme Office 365. Joshi réside et fonctionne à Mumbai, en Inde. Contactez-le sur Twitter : @sagarjms gérer.

Merci à l'experte technique Microsoft suivante d'avoir relu cet article : Sandeep J. Alur, spécialiste de prospect

Sandeep Alur a plus de 16 ans d’expérience en fournissant la technologie et des conseils architecturaux pour les clients d’entreprise. Son expérience est comprise entre dotcom jours suivant génération distribuées les ère de la technologie d’informatique en nuage. Chez Microsoft, il entraîne la charte de promotion technique pour l’Inde et fonctionne avec l’écosystème de démarrage et d’éditeurs de logiciels pour leur donner une plate-forme permettant de créer des solutions sur la plateforme de Cloud.