windows azure media services: des api pour encoder, transmuxer, diffuser,

49
Windows Azure Media Services Des API pour encoder, multiplexer et diffuser vos vidéos depuis le cloud public Benjamin Moulès, Xavier Pouyat – Microsoft Julien Corioland – Infinite Square Architecture / Azure / Cloud http://aka.ms/wams

Upload: microsoft-technet-france

Post on 28-Nov-2014

551 views

Category:

Technology


5 download

DESCRIPTION

Windows Azure Media Services: des API pour encoder, transmuxer, diffuser vos vidéos sur le cloud public. Mode de fonctionnement, démos, retours d'expérience, et questions-réponses !

TRANSCRIPT

Windows Azure Media Services

Des API pour encoder, multiplexer

et diffuser vos vidéos depuis le

cloud public

Benjamin Moulès, Xavier Pouyat – Microsoft

Julien Corioland – Infinite Square

Architecture / Azure / Cloud

http://aka.ms/wams

Donnez votre avis !

Depuis votre smartphone, sur :

http://notes.mstechdays.fr

De nombreux lots à gagner toutes les heures !!!

Claviers, souris et jeux Microsoft…

Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr

Souscrivez à l’offre d’essai ou activez votre accès Azure MSDN

Présentez-vous sur le stand Azure (zone Services & Tools)

Participez au tirage au sort

à 18h30 le 13 février

• Le Cloud et les médias,

Windows Azure Media Services

• Les plateformes clientes en relation avec

Windows Azure Media Services– Démonstration du portail, SDK .NET, des Frameworks

clients

• Retour d’expérience: « Web TV »

Sommaire

Quels changements pour l’industrie des Médias?

100 Millions de foyers dans le monde

POSSEDENT AU MOINS UNETV CONNECTEE

50%

SMARTPHONES

19%

TABLETTES

AUTRE ACTIVITEtout en regardant la TV

80%10 Milliards

d’appareils mobiles connectésd’ici2016

*Source: Cisco, Gartner

IT Continuum

Scénarii d’utilisation du Cloud

PrincipesPlusieurs Formats

Smooth Streamingmpeg-DASHFlash HTTP Dynamic StreamingApple HTTP Live StreamingTéléchargement Progressif

Plusieurs Protocoles

HTTPRTMP

Plusieurs DRM

PlayReadyAdobe Access

Atteindre tout terminal

avec les meilleurs format, protocole et DRM possibles

WINDOWS AZURE MEDIA SERVICES

Services multimédias dans le Cloud

Architecture des services multimédias

Partenaireset clients médias “Build-On”

CDN

Azu

reCD

Ns P

arte

naire

sO

rigi

ne

ProcesseursMédiasPartenaires

“Build-In”

Présence

mondiale

Amérique, Europe, Asie

6 Data Centers

Version publiée le 22 janvier : fonctionnalités

flux VOD

via HTTP sécurisé et UDP rapide avec Aspera*

via Windows Azure Media Encoder

vers Smooth Streaming et Apple HLS

avec PlayReady, distribution de licenses via EZDRM*

avec le support de Apple HLS et de Smooth Streaming, multiplexage

dynamique

et SDK pour .NET et Java

LA CHAINE DE PRODUCTION VOD

Services multimédias dans le Cloud

Chaîne de production (VOD)

Acquisition

Encodage

Multiplexage

Encryption

Distribution

Etape 1 : Acquisition du contenu

Acquisition d’un fichier pivotTransfert HTTP gratuit

Interconnexion réseau directe avec les datacenters Windows

Azure

Transferts haute vitesse en UDP via Aspera, facturés suivant les

abonnements vendus dans le Store Azure

PlusCoût de stockage Windows Azure

BLOBAcquisition

Etape 2 : Encodage, Multiplexage ou Encryption

Encodage vers le(s) format(s) de sortie souhaité(s)Encodeur WAMS : coût par Go (entrée+sortie)

Encodeur partenaire : prix dans Azure Store fixé par le

partenaire

Tâches d’encodage parallèles

Coût de stockage Windows Azure

BLOBBLOB Encodage

Etape 3 : Distribution du contenu

Coûts pour diffuser le contenu vers l’exterieurUnités réservées du service d’origine (streaming)

Coût de sortie classique d’Azure (/Go)

Coûts de CDN (CDN Azure ou tierce partie)

BLOB Streaming CDNBLOBAcquisition Encodage

Tarifs de l’encodage audio/video (WAME)

Données traitées Prix public

Premiers 5 To / mois 1,4820 € par Go

15 To suivants / mois 1,1916 € par Go

30 To suivants / mois 0,9607 € par Go

50 To suivants / mois 0,7596 € par Go

Plus de 100 To / mois Nous contacter

Accord Entreprise possible

Tarifs des unités réservées

Unités réservées d’encodage Prix public

1 RU = 1 Tâche simultanée 73,73€ /mois

Unités réservées de Streaming Prix public

1 RU = 200 mbps de débit en sortie 148,20€ /mois

Accord Entreprise possible

Facturation à la journée

Multiplexage dynamique

Fichier

MP4

Fichier

MP4

Fichiers

MP4

multidébits

ATEME

TranscoderService d’origine

(unité dédiée)

Multiplex. dyn.

Windows Azure Media Services

Streaming vers les terminaux

(Smooth Streaming avec PlayReady, MPEG DASH avec Common Encryption, HLS, ….)

PORTAIL, .NET SDK

Utilisation d’Azure Media Services

Asset

Source

Storage REST

SDK Storage

SDK Media Services

Données

Media

Services

REST Media Service

REST Access Control Service

Source

Demo.exe

Obtention de l’autorisationCréation d’un Asset et AssetFile(s)Téléchargement montant du fichier

Asset

multidébit

Smooth

Asset

Source

Storage REST

SDK Media Services

REST Media Service

Encodage

Demo.exe

Création d’un jobEncodage de l’asset en SmoothMultiplexage de l’asset vers HLS

Multiplexage

Asset

multidébit

HLS

Données

Media

Services

Asset

multidébit

Smooth

Asset

Source Asset

multidébit

HLS

Storage REST

SDK Media Services

REST Media Service

Demo.exe

Smooth

HLS

Origine

Données

Media

Services

Création d’un locatorPréparation des originsRéponse aux demandes clientes

API REST pour tous les environnements

Librairie .NET

https://nuget.org/packages/windowsazure.mediaservices

Librairie JAVA

http://www.windowsazure.com/en-us/develop/java/java-home

Windows / Mac / Linux

Librairies Open Source disponibles avec leur code source sur GitHub

https://github.com/windowsazure/azure-sdk-for-java/

API et SDKs Media Services

SERVICE LIVE

Services multimédias dans le Cloud

• Infrastructure utilisée par France Télévisions, RTVE, CTV

et Terra

• Acquisition video, hébergement, archivage et

transcodage avec redondance géographique via 5

datacenters sur 2 continents

• Plus de 4,000 heures de streaming live, jusqu’à 3,5

mbps 720p

• Plus de 12 000 jobs de transcodage

• Diffusion vers Flash, iOS, Android, Silverlight, Windows

Phone, et Xbox

• Partenaires : deltatre, Akamai, Southworks

Jeux Olympiques de Londres 2012

Techdays TV

Ingest Server

Loadbalancer

Loadbalancer

Origin ServerFlux vidéo

Techdays TV

Diff Smooth Streaming

Smooth Streaming LiveApple HLS

Régie vidéo

Encoder

Smartphones

Tablettes

PC / Mac

PLATEFORMES CLIENTES

Azure Media Services

Fragmentation et explosion des usages

WEB

99% sur PC FIXES

et PORTABLESsl

MOBILE

Il y a une application pour cela

APPLICATIONS

NAVIGATEURVIDEO

PAS DEPLUGIN

TELECHARGEMENT PROGRESSIF

STREAMING ADAPTATIF

Plateformes clientes et lecteurs médiasW

EB Silverlight

Smooth Streaming Player FrameworkSmooth Streaming Client SDK

FlashPlugin OSMF pour smooth streaming

HTML5HTML5 Player Framework

APPS Windows 8

Smooth Streaming Player FrameworkSmooth Streaming Client SDK

XBoxSmooth Streaming Player FrameworkSmooth Streaming Client SDK

TV/DécodeursSmooth Streaming Porting KitPortage par des partenaires

MO

BIL

E WinPhonePlayer Framework pour WinPhone 8Smooth Streaming Client SDK

AndroidSDKs et Frameworks de partenairesPlugin OSMF pour smooth streaming

iOSPlayer Frameworks pour smooth streaming avec PlayReadyPlayer Framework pour HLS

Support de MPEG-DASH prochainement

Player Framework pour iOS (Apple HLS)

GitHub https://github.com/WindowsAzure/azure-media-player-framework

Player Framework pour HTML5 (Navigateur)

Téléchargement du Player Framework HTML5 (Preview): lien

• Utilisable pour délivrer une expérience vidéo simple (pas de solution DRM)

• Balise HTML5 <video> pour une transition douce entre une publicité et le contenu

• Gestion de la publicité via les standards VAST et VMAP

• Application de test pour jouer différents types de contenus sur divers navigateurs

L’état de la vidéo avec HTML5*

Apple iOS permet le Http Live Streaming mais ce n’est pas un standard

*Informations fournies par longtail video

Client FlashPlugin OSMFOpen source Media Framework: http://www.opensourcemediaframework.com/

Evolution possible des players existants en ajoutant le module client Smooth Streaming, comme par exemple le strobe media player

MonétisationPlugin OSMF Publicité / Analyse de l’audience

Support additionnel pour des normes (VMAP)

A venirSupport du streaming Live

Lien de téléchargement du client pour Flash

FLASH, HTML5

Exemples de développement de lecteurs

Client pour Windows 8

Smooth Streaming (VOD et live)

Sous-titrage

Publicité

HistoriqueVidéo Mode Progressif

Choix du design

Contrôle du DVR

DRM PlayReady

Analyse d’audience

Déconnecté

Multiple Audio Accélération GPU

Modes de lecture

Dolby Digital+

H.264

AAC

« WEB TV »

Retour d’expérience

UseCase – « Web TV »

• Création d’un référentiel de stockage et

d’archivage de vidéo– Forte volumétrie : jusqu’à 1 giga / 5 min

– Des dizaines de fichiers par jour

– Format HD264 pour diffusion sur Internet /

plateformes mobiles

Problématique(s)

UseCase – « Web TV »

• Azure Blob Storage

• Azure Compute

• Azure Media Services

• SQL Azure

• ASP.NET MVC 4

Solutions

MP4 en qualité

intermédiaire

Thumbnails

Smooth Streaming

Azure Media Services

UseCase – « Web TV »

Workflow de diffusion

Répertoire

Réseau

Service

Windows

Azure Blob

Storage

UseCase – « Web TV »

Architecture globale

Service

Windows

.NET 4.5

SI « Web TV » Windows Azure

Web RôleWeb Rôle

(applicatif)

Web RôleWorker Rôle

(traitement)

Azure

Media

Services

Web

AP

I

SQL

Azure

1. Récupération du SDK Media Services

2. Instanciation du CloudMediaContext

CloudMediaContext cloudMediaContext =

new CloudMediaContext(mediaServiceName, mediaServiceAccessKey);

3. Création d’un Asset

IAsset asset =

cmc.Assets.Create(fileName, AssetCreationOptions.None);

IAccessPolicy policy =

cmc.AccessPolicies.Create(policyName, TimeSpan.FromDays(1),

AccessPermissions.Write | AccessPermissions.List);

Ilocator locator = cmc.Locators.CreateSasLocator(asset, policy);

4. Envoi du fichier

IAssetFile file = asset.AssetFiles.Create(fileName);

await file.UploadAsync(filePath, blobTransfertClient, locator,

CancellationToken.None)

file.IsPrimary = true;

file.Update();

5. Récupération d’un Media Processor

public IMediaProcessor GetLatestMediaProcessor(string mediaProcessorName)

{

var mediaProcessor = cmc.MediaProcessors

.Where(m => m.Name == mediaProcessorName)

.AsEnumerable()

.OrderBy(p => p.Version)

.LastOrDefault();

return mediaProcessor;

}

6. Création du traitement d’encodage

IJob job = cmc.Create(jobName);

IMediaProcessor mediaProcessor =

GetLatestMediaProcessor("Windows Azure Media Encoder");

ITask encodingTask =

job.Tasks.AddNew(taskName, AssetCreationOptions.None);

job.Submit();

6. Publication d’un Asset

IAccessPolicy policy =

cmc.AccessPolicies.Create(name, TimeSpan.FromDays(200),

AccessPermissions.Read);

ILocator locator = cmc.Locators.CreateSasLocator(asset, policy);

string url = string.Format("{0}/{1}{2}", locator.BaseUri, file.Name,

locator.ContentAccessComponent);

Questions & Réponses

http://aka.ms/wams (en)

http://aka.ms/wamshelp (en)

http://blog.pouyat.com (fr)

http://www.juliencorioland.net (fr)

[email protected]

[email protected]

[email protected]

Retrouvez nous en ligne