SlideShare a Scribd company logo
1 of 24
Build the Next YouTube:
Windows Azure Media Services
Sasha Goldshtein
CTO, Sela Group
Level: Intermediate
Windows Azure
Media Services, you can
With

upload, manage, encode, and

media to a variety
of devices on a cloud
scale.
stream your
Maybe you have a bunch of
training videos you want to share
with your global employee
contingent, in the office and on the
go …
… or maybe you are hosting the
Olympic Games and need to
stream to hundreds of millions of
consumer devices, with peaks of
100x the standard traffic …
… or maybe you’re a TV network, a
cellular carrier, a radio station, an
ad agency, a consumer video
website … and you want to stop

worrying about infrastructure and
embrace cloud scale.
Features
VOD

Live
streaming
coming soon

Encoding to
multiple
formats

Encryption
(DRM)

Progressive
download
from blob

Smooth
streaming

Dynamic
packaging

.NET and
Java SDKs

REST
endpoints
Supported Formats
•

Import formats
– Codecs: H.264, MPEG-1, MPEG-2, MPEG-4 v2, VC1, WMV, DV

– File formats: AVI, MP4, MPEG, WMV, 3GP, ASF, DV,
TS, VOB, …
•

Export formats
File Format

Video Codec

Audio Codec

.wmv

VC-1

WMA

.mp4

H.264

AAC

Smooth Streaming File Format
(.ismv)

H.264
VC-1

AAC
WMA
Supported Devices
•
•

Almost all devices for progressive
Device coverage for adaptive streaming:

Platform

IIS Smooth Streaming

Apple HTTP Live
Streaming (HLS)

Windows (IE)

Silverlight

3rd party SDK (Flash)

OS X (Safari)

Silverlight

<video> element

Windows RT

Microsoft SDK

3rd party SDK

Android (Browser)

3rd party SDK (Flash)

<video> element

<video> element

iOS (Safari)
Windows Phone

Microsoft SDK

3rd party SDK

iOS (in-app)

Microsoft SDK

MediaPlayer FW

Android (in-app)

3rd party SDK

VideoView

Xbox

Microsoft SDK
Pricing Principles
Component
Data processing (input and output)
Encoding
Packaging

Up to $0.07 / GB

Outbound bandwidth

Up to $0.12 / GB

Reserved encoding unit

$99 / month

Reserved on-demand streaming unit
Guaranteed 200 Mbps per unit

•

Up to $1.99 / GB
Up to $1.49 / GB

Storage

•

Price

$199 / month

Available in all sub-regions
99.9% availability guarantee with OnDemand Streaming Reserved Unit
Windows Azure Media Services Portal

DEMO
MANAGING AND PLAYING
ASSETS
Ingesting Assets from the .NET
SDK
Obtain a CloudMediaContext
• Gives you access to all objects and APIs

Create an asset (IAsset)
• A collection of media files

Create a file (IAssetFile)
• A single file within an asset

Create an access policy and locator
• Determines ACL for asset and provides a URL
for upload
Encoding Assets from the .NET
SDK
Obtain a media processor
(IMediaProcessor)
• Media processors can encode and package assets

Create an encoding job (IJob)
• A job is a set of tasks for Media Services

Add tasks to the job (ITask)
• E.g., encode WMV file for Apple HLS
• Tasks have input assets and output assets

Monitor job progress until it completes
Delivering Assets from the .NET
SDK
Locate the output asset for a job

Create an access policy and locator

Generate URLs
• For progressive download
• For streaming (IIS/HLS)

Optional: Enable CDN
• For progressive download (blob storage)
• For streaming origin server
Uploading and encoding an asset from the .NET SDK

DEMO
Playing Progressive Download
Assets
•

For progressive download in browsers
that support HTML5 video, use the
<video> element

<video width="640" height="480" controls>
<source src="@Html.Raw(Model.Mp4SourceUrl)"
type="video/mp4" />
</video>
Playing IIS Smooth Streaming
•

For PC and Mac delivery of IIS Smooth
Streaming, use the Silverlight Smooth
Streaming SDK
– Sample player available on CodePlex
– http://playerframework.codeplex.com/

<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2"
Server-hosted
Silverlight player
width="100%" height="100%">
<param name="source"
value="/Content/SmoothStreamingPlayer.xap"/>
<param name="InitParams"
value="mediaurl=@Model.SilverlightStreamingUrl"/>
</object>
Parameters for player
Playing HLS In-App on iOS
•

The iOS MediaPlayer framework natively
supports Apple HLS URLs

self.player = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL URLWithString:...]];
self.player.scalingMode = MPMovieScalingModeAspectFill;
self.player.controlStyle = MPMovieControlStyleDefault;
[self.view addSubview:self.player.view];
[self.player play];
Delivering assets to various devices

DEMO
END-TO-END FLOW
On-Premises

Windows Azure

ASP.NET
Web Site

Upload App

Queue
Storage

1 2 3 4

4

2

1

3 8

Azure Blob
Storage

(1)
(2)
(3)
(4)

Upload file to Web Site
Store file in Blob Storage
Store metadata in Table Storage
Put encoding command in queue

Worker Role
5 6 7 8

5

7

Azure Table
Storage

(5)
(6)
(7)
(8)

Media
Services
Encoder

Media
Services
Streaming

Start encoding job
Wait for job to complete
Generate streaming URLs
Update metadata in Table Storage
End-to-end flow and CMS

DEMO
Summary & Call to Action
•

•
•
•

Windows Azure Media Services is a cloudscale platform offering for media
management, conversion, and delivery
.NET management SDK and REST
endpoints
Wide device reach with adaptive streaming
and progressive download
Try it for free as part of the Azure 90-day
trial
Thank You!
Questions?

Sasha Goldshtein
@goldshtn
blog.sashag.net

More Related Content

Viewers also liked

Benefits of the Azure Cloud
Benefits of the Azure CloudBenefits of the Azure Cloud
Benefits of the Azure CloudCaserta
 
Task and Data Parallelism: Real-World Examples
Task and Data Parallelism: Real-World ExamplesTask and Data Parallelism: Real-World Examples
Task and Data Parallelism: Real-World ExamplesSasha Goldshtein
 
Advanced Debugging with WinDbg and SOS
Advanced Debugging with WinDbg and SOSAdvanced Debugging with WinDbg and SOS
Advanced Debugging with WinDbg and SOSSasha Goldshtein
 
.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance TipsSasha Goldshtein
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloudJames Serra
 
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingMicrosoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingIlyas F ☁☁☁
 

Viewers also liked (7)

Benefits of the Azure Cloud
Benefits of the Azure CloudBenefits of the Azure Cloud
Benefits of the Azure Cloud
 
Task and Data Parallelism: Real-World Examples
Task and Data Parallelism: Real-World ExamplesTask and Data Parallelism: Real-World Examples
Task and Data Parallelism: Real-World Examples
 
Advanced Debugging with WinDbg and SOS
Advanced Debugging with WinDbg and SOSAdvanced Debugging with WinDbg and SOS
Advanced Debugging with WinDbg and SOS
 
.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloud
 
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingMicrosoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
 
Azure Cloud PPT
Azure Cloud PPTAzure Cloud PPT
Azure Cloud PPT
 

More from Sasha Goldshtein

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing LandscapeSasha Goldshtein
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerSasha Goldshtein
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF AbyssSasha Goldshtein
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkSasha Goldshtein
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSasha Goldshtein
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinSasha Goldshtein
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile AppsSasha Goldshtein
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionSasha Goldshtein
 
Delivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesDelivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesSasha Goldshtein
 
Building Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendBuilding Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendSasha Goldshtein
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesSasha Goldshtein
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesSasha Goldshtein
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android DevelopmentSasha Goldshtein
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS DevelopmentSasha Goldshtein
 
JavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureJavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureSasha Goldshtein
 

More from Sasha Goldshtein (20)

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing Landscape
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF Primer
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF Abyss
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET Framework
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS X
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile Apps
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and Production
 
Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
State of the Platforms
State of the PlatformsState of the Platforms
State of the Platforms
 
Delivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesDelivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in Minutes
 
Building Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendBuilding Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET Backend
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile Services
 
Task and Data Parallelism
Task and Data ParallelismTask and Data Parallelism
Task and Data Parallelism
 
What's New in C++ 11?
What's New in C++ 11?What's New in C++ 11?
What's New in C++ 11?
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android Development
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS Development
 
JavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows AzureJavaScript, Meet Cloud: Node.js on Windows Azure
JavaScript, Meet Cloud: Node.js on Windows Azure
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Build the Next YouTube: Windows Azure Media Services

  • 1. Build the Next YouTube: Windows Azure Media Services Sasha Goldshtein CTO, Sela Group Level: Intermediate
  • 2. Windows Azure Media Services, you can With upload, manage, encode, and media to a variety of devices on a cloud scale. stream your
  • 3. Maybe you have a bunch of training videos you want to share with your global employee contingent, in the office and on the go …
  • 4. … or maybe you are hosting the Olympic Games and need to stream to hundreds of millions of consumer devices, with peaks of 100x the standard traffic …
  • 5. … or maybe you’re a TV network, a cellular carrier, a radio station, an ad agency, a consumer video website … and you want to stop worrying about infrastructure and embrace cloud scale.
  • 6. Features VOD Live streaming coming soon Encoding to multiple formats Encryption (DRM) Progressive download from blob Smooth streaming Dynamic packaging .NET and Java SDKs REST endpoints
  • 7. Supported Formats • Import formats – Codecs: H.264, MPEG-1, MPEG-2, MPEG-4 v2, VC1, WMV, DV – File formats: AVI, MP4, MPEG, WMV, 3GP, ASF, DV, TS, VOB, … • Export formats File Format Video Codec Audio Codec .wmv VC-1 WMA .mp4 H.264 AAC Smooth Streaming File Format (.ismv) H.264 VC-1 AAC WMA
  • 8. Supported Devices • • Almost all devices for progressive Device coverage for adaptive streaming: Platform IIS Smooth Streaming Apple HTTP Live Streaming (HLS) Windows (IE) Silverlight 3rd party SDK (Flash) OS X (Safari) Silverlight <video> element Windows RT Microsoft SDK 3rd party SDK Android (Browser) 3rd party SDK (Flash) <video> element <video> element iOS (Safari) Windows Phone Microsoft SDK 3rd party SDK iOS (in-app) Microsoft SDK MediaPlayer FW Android (in-app) 3rd party SDK VideoView Xbox Microsoft SDK
  • 9. Pricing Principles Component Data processing (input and output) Encoding Packaging Up to $0.07 / GB Outbound bandwidth Up to $0.12 / GB Reserved encoding unit $99 / month Reserved on-demand streaming unit Guaranteed 200 Mbps per unit • Up to $1.99 / GB Up to $1.49 / GB Storage • Price $199 / month Available in all sub-regions 99.9% availability guarantee with OnDemand Streaming Reserved Unit
  • 10. Windows Azure Media Services Portal DEMO
  • 12. Ingesting Assets from the .NET SDK Obtain a CloudMediaContext • Gives you access to all objects and APIs Create an asset (IAsset) • A collection of media files Create a file (IAssetFile) • A single file within an asset Create an access policy and locator • Determines ACL for asset and provides a URL for upload
  • 13. Encoding Assets from the .NET SDK Obtain a media processor (IMediaProcessor) • Media processors can encode and package assets Create an encoding job (IJob) • A job is a set of tasks for Media Services Add tasks to the job (ITask) • E.g., encode WMV file for Apple HLS • Tasks have input assets and output assets Monitor job progress until it completes
  • 14. Delivering Assets from the .NET SDK Locate the output asset for a job Create an access policy and locator Generate URLs • For progressive download • For streaming (IIS/HLS) Optional: Enable CDN • For progressive download (blob storage) • For streaming origin server
  • 15. Uploading and encoding an asset from the .NET SDK DEMO
  • 16. Playing Progressive Download Assets • For progressive download in browsers that support HTML5 video, use the <video> element <video width="640" height="480" controls> <source src="@Html.Raw(Model.Mp4SourceUrl)" type="video/mp4" /> </video>
  • 17. Playing IIS Smooth Streaming • For PC and Mac delivery of IIS Smooth Streaming, use the Silverlight Smooth Streaming SDK – Sample player available on CodePlex – http://playerframework.codeplex.com/ <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" Server-hosted Silverlight player width="100%" height="100%"> <param name="source" value="/Content/SmoothStreamingPlayer.xap"/> <param name="InitParams" value="mediaurl=@Model.SilverlightStreamingUrl"/> </object> Parameters for player
  • 18. Playing HLS In-App on iOS • The iOS MediaPlayer framework natively supports Apple HLS URLs self.player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:...]]; self.player.scalingMode = MPMovieScalingModeAspectFill; self.player.controlStyle = MPMovieControlStyleDefault; [self.view addSubview:self.player.view]; [self.player play];
  • 19. Delivering assets to various devices DEMO
  • 21. On-Premises Windows Azure ASP.NET Web Site Upload App Queue Storage 1 2 3 4 4 2 1 3 8 Azure Blob Storage (1) (2) (3) (4) Upload file to Web Site Store file in Blob Storage Store metadata in Table Storage Put encoding command in queue Worker Role 5 6 7 8 5 7 Azure Table Storage (5) (6) (7) (8) Media Services Encoder Media Services Streaming Start encoding job Wait for job to complete Generate streaming URLs Update metadata in Table Storage
  • 23. Summary & Call to Action • • • • Windows Azure Media Services is a cloudscale platform offering for media management, conversion, and delivery .NET management SDK and REST endpoints Wide device reach with adaptive streaming and progressive download Try it for free as part of the Azure 90-day trial

Editor's Notes

  1. Image taken from http://www.flickr.com/photos/yotut/5432398958/ under Creative Commons 2.0 license.
  2. Image taken from http://www.flickr.com/photos/dskley/7717799328/ under Creative Commons 2.0 license.
  3. Image taken from http://www.flickr.com/photos/scobleizer/4870003098/ under Creative Commons 2.0 license.
  4. Full list of supported import and export formats and codecs: http://msdn.microsoft.com/en-us/library/hh973634.aspx
  5. Remarks:Third-party SDK for HLS on Windows RT and Windows Phone 8: http://3ivx.com/technology/windows/metro/http_live_streaming.htmlThird-party SDK for IIS Smooth Streaming on Android in-app: http://axinom.com/en_axinom_news_android_sdk.AxCMS (there are others)Android supports HLS natively only since 3.0, and there are some issues with this support (browser and in-app): http://www.longtailvideo.com/blog/31646/the-pain-of-live-streaming-on-android/Also see: http://en.wikipedia.org/wiki/HTTP_Live_Streaming#Clients for some more links and details
  6. Example:Encoding a 200MB video to both IIS Smooth Streaming and HLS formats in various bitrates may produce 800 MB of output, for a total of 1GB encoding I/O. Total cost: $1.99.Storing the 800 MB of output would cost approximately $0.06 per month (without geo-replication).Streaming the 200 MB video to 10,000 clients per month (assuming 50% average consumption rate) = 976GB would cost approximately $117 per month.
  7. Illustrate the creation of a new media service.Upload a small mp4 asset. (clipcanvas…mp4)Publish the source (show that the URL is a simple blob storage URL).Use the built-in test player for the source, or simply copy the URL to the browser (this is a progressive download player).Encode the asset for HLS. Explain that there is an intermediate step that encodes to IIS Smooth Streaming and then creates an additional manifest for HLS.Monitor job progress.Publish both the intermediate IIS Smooth Streaming output and the HLS output.Use the built-in test player for IIS Smooth Streaming playback.Use an iPhone/iPad/iOS Simulator for HLS playback.
  8. Show the SimpleUploadEncodeDeliver demo console application:Review the code that creates an asset, gets a storage URL (locator) for uploading the asset, and uploads it.Review the code that configures the encoding job (MP4 ==&gt; IIS Smooth Streaming ==&gt; Apple HLS).Review the code that waits for the encoding job to complete.Review the code that generates the final streaming URLs.(This code was taken from the walkthrough that you see on the dashboard of every new Media Service.)
  9. Show HTML5 page on Mac, Windows, iPad (progressive download with &lt;video&gt; element) – from IBA portalShow Silverlight page on Mac, Windows – from IBA portalShow iOS app with MediaPlayer framework
  10. Demonstrate the IBA pilot “CMS” running end-to-end on Windows Azure.Upload a media file:curl -X POST http://wams-sdp13.azurewebsites.net/Home/Upload?file=test.mp4 --data-binary @test.mp4Wait for encoding to complete.Demonstrate the resulting URLs on Windows / OS X / iOS.Demonstrate the SkyRocketMedia CMS: http://www.skyrocketmedia.netWalk through the different screens, explain that it is a nice wrapper on top of the Azure portal.