Giugno 2016

Volume 31 Numero 6

Il presente articolo è stato tradotto automaticamente.

Power BI - Servizi multimediali di Microsoft Azure e Power BI

Da Sagar Bhanudas Bhanudas | Giugno 2016

Servizi multimediali di Microsoft Azure offre una piattaforma avanzata per gli sviluppatori e fornitori di software indipendenti distribuire un video on Demand e esperienze di live streaming tramite il Web e le applicazioni native. Per arricchire l'esperienza utente e ottenere informazioni approfondite sull'utilizzo di contesto o dell'applicazione, è importante fondere una solida soluzione multipiattaforma nel back-end per la visualizzazione dei dati e analisi. In questo modo, la piattaforma di servizi multimediali di Azure non offre analisi predefinita; di conseguenza, gli sviluppatori sono sempre interessati da dati di utilizzo di business richieste dal punto di vista dell'analisi.

Questo articolo per gli sviluppatori fornisce informazioni su come creare una piattaforma di analisi basata su Servizi multimediali di Azure e Azure Media Player per individuare le tendenze di utilizzo. Lo spazio di soluzione include l'utilizzo di un servizio intermedio (API Web) e un database, con la visualizzazione che si conclude con Power BI.

Lo Scenario

La maggior parte delle organizzazioni creazione/incorporare contenuti multimediali è necessario eseguire ricerche sui dati o l'analisi di utilizzo nel tentativo di improvvisare esperienza dell'utente finale. A tale scopo, gli sviluppatori devono registrare alcuni indicatori di prestazioni chiave (KPI) correlati al loro consumo video o dei supporti. Ecco alcuni degli indicatori KPI più comuni e utili:

  • Qual è il video più richiesti?
  • Quante persone hanno guardato il video fino al completamento?
  • Quante volte è stato il video in pausa e in quale posizione?
  • Qual è il più flussi di formato/bit rate?
  • Informazioni sulla piattaforma e altre informazioni demografiche.

Affinché la scelta giusta combinazione di servizi e strumenti che consentono di distribuire questi indicatori KPI, una quantità significativa di tempo ed energie viene impiegata per creare ogni componente da zero backup o di compilazione basato su servizi di piattaforma di comprovata efficacia.

Per fortuna, la piattaforma di Cloud di Azure offre un ampio set di servizi che possono essere sfruttati nella progettazione della soluzione complessiva ai requisiti di analisi di acquisizione e l'indirizzo. Verranno utilizzati per questo scenario i componenti seguenti:

  • Servizi multimediali di Azure
  • Azure Media Player
  • App Web di Azure
  • Database SQL di Azure
  • Power BI

L'idea è di acquisire dati non elaborati da Azure Media Player e feed, tornare a un livello intermedio (API Web), che la connessione con il database di SQL Azure (report) gestita di connessione. È quindi possibile connettere Power BI per le origini dati all'interno del database reporting per esponendo le tendenze di utilizzo supporti il consumo tramite visualizzazioni.

Altre sezioni di questo articolo in dettaglio l'implementazione effettiva dell'abilitazione di questo scenario.

Creazione dinamica dei pacchetti e preparazione per l'uso del Video

La parte migliore dell'utilizzo di servizi multimediali di Azure è che è possibile richiedere il contenuto audio/video e prepararlo per l'utilizzo su varie piattaforme. È possibile ottenere questo risultato tramite il portale di Azure o eseguendo gli stessi passaggi dal codice se è necessario automatizzare il passaggi o la soluzione. In questa sezione dello scenario vengono illustrate le attività seguenti:

  • Identificare il contenuto (in questo caso, si sceglierà un contenuto video demo) deve essere usato su richiesta
  • Caricare il video in servizi multimediali di Azure (supportata da un account di archiviazione di Azure)
  • Monitorare lo stato di caricamento e inviare il processo di creazione dinamica dei pacchetti
  • Ottenere gli URL rilevanti per l'utilizzo su piattaforme diverse

Utilizzare l'esempio di Azure si trova in bit.ly/22Iy1ST per iniziare con l'applicazione console c# per la realizzazione di queste attività. Sebbene in questo esempio si basa su pacchetti NuGet e il programma c#, è possibile utilizzare SDK disponibili in altre lingue. È qui il codice più importante per inviare il video per la codifica e ottenere gli URL, come illustrato Figura 1.

Figura 1 codice per l'invio di un processo di codifica

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

Se si ha familiarità con servizi multimediali di Azure, ecco un breve elenco di terminologie:

  • Asset (o IAsset), ovvero un'entità che rappresenta un pacchetto di supporto con servizi multimediali di Azure. Può contenere uno o più file di contenuto.
  • Processo (o IJob), ovvero un'entità che rappresenta un'unità di lavoro "codifica" deve essere eseguita tramite il servizio di supporto di Azure. Considerarla come convertire un file da un formato a altro.
  • Velocità in bit adattiva, ovvero un formato di codifica che si adatta alle funzionalità di rete della CPU del sistema di destinazione e fornisce contenuto corrispondenti ai criteri che meglio semi il dispositivo. È sufficiente creare i file a velocità in bit adattiva e servizi multimediali di Azure indica la velocità in bit destro da trasmettere al dispositivo client.

A questo punto, completamento delle operazioni dal codice nel Figura 1, la funzione Invia un "asset" al codificatore di servizi multimediali Standard per la conversione dell'asset di origine formato MP4 a velocità in bit adattiva.

L'esempio mostra anche lo stato del processo oppure è possibile monitorare tramite il portale di Azure come illustrato nella Figura 2 nella sezione "processi". (Have spente i valori dei campi ID.)

Esempio che mostra lo stato dei processi di servizi multimediali di Azure
Stato del processo che Mostra esempio di servizi multimediali di Azure figura 2

Ora che è stato creato un asset multimediali pronto per essere usati in dispositivi e piattaforme, è necessario assicurarsi di informare servizi multimediali di Azure la piattaforma del dispositivo di destinazione in modo che è possibile trasmettere la codifica corretta e il formato del contenuto. Ad esempio, i dispositivi Windows supportano in genere la riproduzione del formato Smooth Streaming di Silverlight:

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

in cui i dispositivi iOS supportano il formato HLS video e altri:

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

Si noti il carattere finale le prime lettere dell'URL, che vengono aggiunti dopo "Manifesto". Le notazioni formato Guida servizi multimediali di Azure endpoint identificare il formato del contenuto da trasmettere al dispositivo. Ora che si dispone del supporto pronto per essere trasmessi al dispositivo, creiamo una pagina HTML per l'utilizzo di video tramite Azure Media Player (bit.ly/1SQ8Rwr).

Utilizzo di file multimediali e l'invio di dati di analisi per il back-End

Azure Media Player è un lettore video Web che integra la riproduzione di contenuti di servizi multimediali di Azure sul lato client. Funziona con una piattaforma browser sottostante per il rendering del contenuto video (principalmente da servizi multimediali di Azure) con la configurazione minima di codice JavaScript. L'obiettivo è, tuttavia, non solo per riprodurre il file multimediale, ma anche per derivare i dati analitici di utilizzo e di registrarla per il back-end. Poiché l'obiettivo consiste nel visualizzare i dati aggregati verso la fine della soluzione per l'analisi, mi concentrerò solo su un numero di parametri devono essere registrate; ad esempio, un identificatore di contenuto video, titolo del video, tempi di pausa, timestamp e la sezione osservazioni o dati aggiuntivi.

Di conseguenza, il codice HTML per Windows Media player presenta simili Figura 3.

Figura 3. il codice di front-end HTML

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

Il codice HTML (progettazione) in Figura 3 semplicemente dichiara l'elemento con le proprietà specifiche per Azure Media Player per indicare l'interfaccia utente del lettore video. Si noti il file Player.js, che eseguirà l'attività di rilevamento della piattaforma che specifica l'URL del video, creare un oggetto di analisi dei dati, inviare in modo asincrono al back-end personalizzata.

Il codice più semplice in Player.js può avere un aspetto simile Figura 4.

Figura 4 impostazione origine Video e l'acquisizione degli attributi di Azure Media Player

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

Figura 4 viene illustrata la forma più semplice di attributi che possono essere raccolti da Azure Media Player per riferimento. Il lettore multimediale soluzione possibile collegare molti più gestori di eventi e acquisire le metriche più complete (vedere bit.ly/1VA5osy). Sebbene il codice fa riferimento a un formato smooth streaming, è possibile rilevare le funzionalità della piattaforma e preparare rapidamente l'URL di supporto per il relativo formato del contenuto.

In questo esempio, un gestore è associato all'evento "sospeso" di Azure Media Player, che chiama un'API Web back-end tramite una chiamata di AJAX (JQuery) per evitare qualsiasi interferenza blocco con la riproduzione del video. Di conseguenza, ogni volta che l'utente posiziona il video, inserire i dati in modo asincrono nel database di analisi, senza risposta passata nuovamente alla pagina HTML viene effettuata la chiamata di back-end.

Poiché JavaScript non è un linguaggio fortemente tipizzato, è possibile creare e aggiungere proprietà dinamiche per l'oggetto e impostare i relativi valori. L'oggetto "dati" in questo esempio rappresenta l'istanza di attributi acquisito da Azure Media Player e inviate come una stringa JSON per il back-end di un formato ampiamente utilizzato per le comunicazioni di API Web.

La stringa JSON è simile al seguente:

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

L'API Web e il Database

La scelta di API Web e il database può essere in spettro perché lo strumento di segnalazione per questo scenario è Power BI (powerbi.microsoft.com). Tuttavia, per rendere più semplice, un progetto API Web ASP.NET è stato creato per impostare rapidamente il servizio back-end. Ciò consente di configurare facilmente le comunicazioni da front-end senza doversi preoccupare di scrivere grandi quantità di codice per la connessione a sistemi di database. A differenza della chiamata di AJAX front-end, è importante verificare la connettività e commenti e suggerimenti dal livello di database. Qualsiasi problema con le operazioni CRUD con il database potrebbe causare un errore per acquisire le metriche sul lato client. Questo approccio risulta utile anche in test le connessioni Web API di database senza dover scrivere complessi test case.

Il codice in Figura 5 indica come l'API di back-end Web ha ricevuto l'oggetto JSON "data" dal front-end HTML e lo inserisce nel database di SQL Azure.

Figura 5, l'API Web e il Database

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

È astrazione gran parte del codice di classe livello di accesso ai dati e il calo effettivo nel database, come le opzioni possono variare qui e questo può essere codice generale che può rappresentare l'utilizzo di più tipi di combinazioni di middleware più database. Al momento dell'accesso riuscito per il database, viene visualizzato l'ID univoco per la riga, EntryId. Esistono certamente altri metodi di ricevere commenti e suggerimenti dal database per completare l'operazione e uno di essi avrà esito positivo, anche.

Per rappresentare i dati di analisi in un formato strutturato all'interno del database, ho creato una tabella che corrisponde maggiormente il modello (MVC) o l'oggetto JSON ricevuto dal front-end HTML, come illustrato nella Figura 6.

Progettazione di una tabella semplice
Progettazione tabella semplicistico figura 6 A

Suggerimento: Un altro modo rapido per creare back-end come un servizio consiste nell'utilizzare App mobili di Azure, che consente di rapidamente il provisioning API Web, nonché database SQL di Azure, durante la creazione del servizio.

Unire il flusso di lavoro: Ottenere approfondimenti tramite Power BI

Tutte le fasi in precedenza sono blocchi predefiniti per l'impostazione della fase per dimostrare l'obiettivo finale di argomento molto descritto di seguito: Analisi/BI mediante il componente di servizi multimediali di Azure.

Con la combinazione di servizi multimediali di Azure e Azure Media Player, era in grado di offrire rapidamente l'esperienza video senza doversi preoccupare troppo le funzionalità di codifica e streaming. Tuttavia, la maggior parte delle organizzazioni sono inoltre interessate a ottenere approfondimenti il modello di utilizzo del supporto all'area le tendenze di utilizzo. Azure offre una piattaforma di visualizzazione ideale a innovare e consentono agli sviluppatori di soluzioni creare interessanti esperienze per i servizi basati sul cloud. Power BI è uno strumento di analisi, che supporta la creazione di dashboard interattivi per monitorare le metriche e KPI tramite ambienti di sviluppo semplice per configurare e visualizzazione dei dati.

Per creare le visualizzazioni e una superficie orizzontale le tendenze nell'utilizzo di contenuti multimediali, si utilizzerà lo strumento di Power BI desktop (bit.ly/1S8XkLO) per configurare e creare i report, che verranno quindi pubblicati come dashboard per monitorare gli indicatori KPI. Nel desktop di Power BI, fare clic sul pulsante Carica dati e selezionare dall'elenco a discesa. Verrà visualizzato l'elenco di diverse origini di database supportato e, per questa istanza, selezionare Database SQL di Microsoft Azure, come illustrato nella Figura 7.

Power BI introduzione
Figura 7 Power BI introduzione

La procedura guidata recupera dati si connette al database ed è possibile specificare opzioni aggiuntive per importare dati nella finestra di progettazione. Power BI Usa i set di dati per caricare dati da origini dati.

Dopo aver importati i dati, si creerà un report utilizzando la visualizzazione grafici o elementi in modo da riflettere gli indicatori KPI. In uno scenario di più tabelle, possono esistere relazioni tra tabelle per gli oggetti utente complessi che possono essere rappresentati nel modello, nonché. Il set di dati e le visualizzazioni possono essere associate tramite il riquadro superiore destro dello strumento Power BI desktop, come illustrato nella Figura 8.

Creazione di grafici di visualizzazione
Figura 8 creazione della visualizzazione grafici

Ogni visualizzazione costituisce un'interfaccia di sezioni del report di Power BI per riflettere un indicatore KPI particolare. In questo scenario, la velocità di completamento video, tempi di pausa e la maggior parte dei contenuti utilizzati dovrebbe fornire la tendenza complessiva dell'utilizzo, che potrà essere utilizzato per l'analisi il coinvolgimento degli utenti campagne di marketing e così via.

Una volta finalizzati, gli indicatori KPI possono essere bloccati in del dashboard, che può formare una singola visualizzazione del prodotto per CXOs, gli sviluppatori, IT, le funzioni di supporto e altre parti interessate. Le sezioni possono essere distribuite in dashboard diversi per creare le viste o indicatori di prestazioni chiave sono di particolare interesse per i set di team. Ad esempio, CXOs potrebbero essere interessati per la visualizzazione di velocità di completamento di supporti, i dettagli demografici e più utilizzate categorie, mentre IT e team di progettazione è possibile scegliere di monitorare altri KPI come non riuscite, più flussi a velocità in bit, analisi di rete e così via.

Infine, i report possono essere pubblicati tramite Web all'indirizzo PowerBI.com per ampio utilizzo e l'utilizzo, come illustrato nella Figura 9.

Visualizzazione di report Dashboard di Power BI
Figura 9 Dashboard Power BI di visualizzazione dei report

Avvolgendo

Questo è solo la punta dell'iceberg relative soluzioni e servizi Microsoft Azure possono fornire agli sviluppatori e fornitori di soluzioni. Insieme di video on demand, servizi multimediali di Azure può anche offrire servizi di streaming live per multimediali più ricche. È molto documentazione per i casi di utilizzo e gli scenari di servizi multimediali di Azure Web App e i database che consentono agli sviluppatori di eseguire il provisioning e avviare l'esecuzione di applicazioni in pochi minuti. Miglioramenti continui sono incorporati in Azure e la piattaforma di Power BI quasi ogni mese per abilitare gli scenari rilevanti per i servizi.

Poche operazioni di personalizzazione consentono di soddisfare esigenze specifiche e in questo articolo è un punto di partenza per illustrare come le statistiche di utilizzo possono essere acquisite ed estesa per fornire analisi di utilizzo di supporti.


Sagar Bhanudas Joshiha lavorato con gli sviluppatori e gli sviluppatori su piattaforma universale di Windows e la piattaforma Microsoft Azure per oltre sei anni. Il suo ruolo prevede l'utilizzo degli ISV e neo-imprese per aiutarli a soluzioni integrate, progettazione e architetto e alle applicazioni di Microsoft Azure, Windows e la piattaforma Office 365. Joshi attiva e opera Mumbai, India. È possibile contattarlo su Twitter: @sagarjms gestire.

Grazie all'esperto tecnico Microsoft seguente per la revisione di questo articolo: Sandeep J. Alur, Evangelist Lead

Sandeep Alur dispone di oltre 16 anni di esperienza nel settore fornendo tecnologia e indicazioni architetturali per i clienti aziendali. La sua esperienza varia da boom giorni alla successiva generazione distribuita e il cloud computing era di tecnologia. Microsoft ha comporta la carta Evangelism tecniche per l'India e funziona con l'ecosistema avvio & ISV per fornire una piattaforma per la creazione di soluzioni sulla piattaforma Cloud.