Top Banner
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
49

Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

Nov 28, 2014

Download

Technology

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 !
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 2: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 3: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 4: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

• 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

Page 5: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 6: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

IT Continuum

Page 7: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

Scénarii d’utilisation du Cloud

Page 8: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 9: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

WINDOWS AZURE MEDIA SERVICES

Services multimédias dans le Cloud

Page 10: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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”

Page 11: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

Présence

mondiale

Amérique, Europe, Asie

6 Data Centers

Page 12: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 13: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

LA CHAINE DE PRODUCTION VOD

Services multimédias dans le Cloud

Page 14: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

Chaîne de production (VOD)

Acquisition

Encodage

Multiplexage

Encryption

Distribution

Page 15: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 16: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 17: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 18: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 19: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 20: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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, ….)

Page 21: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

PORTAIL, .NET SDK

Utilisation d’Azure Media Services

Page 22: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 23: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 24: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 25: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 26: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

SERVICE LIVE

Services multimédias dans le Cloud

Page 27: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

• 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

Page 28: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 29: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

PLATEFORMES CLIENTES

Azure Media Services

Page 30: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 31: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 32: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

Player Framework pour iOS (Apple HLS)

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

Page 33: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 34: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 35: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

FLASH, HTML5

Exemples de développement de lecteurs

Page 36: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 37: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

« WEB TV »

Retour d’expérience

Page 38: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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)

Page 39: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

UseCase – « Web TV »

• Azure Blob Storage

• Azure Compute

• Azure Media Services

• SQL Azure

• ASP.NET MVC 4

Solutions

Page 40: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

MP4 en qualité

intermédiaire

Thumbnails

Smooth Streaming

Azure Media Services

UseCase – « Web TV »

Workflow de diffusion

Répertoire

Réseau

Service

Windows

Page 41: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 42: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

1. Récupération du SDK Media Services

Page 43: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

2. Instanciation du CloudMediaContext

CloudMediaContext cloudMediaContext =

new CloudMediaContext(mediaServiceName, mediaServiceAccessKey);

Page 44: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 45: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

4. Envoi du fichier

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

await file.UploadAsync(filePath, blobTransfertClient, locator,

CancellationToken.None)

file.IsPrimary = true;

file.Update();

Page 46: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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;

}

Page 47: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 48: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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

Page 49: Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...

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