Migrate smooth streaming encoded video files to Azure Media Service - windows

My company streams videos using IIS Media Services to Silverlight players, the streams are delivered as adaptive bitrates (Microsoft Smooth Streaming). Due to support for Silverlight plugin being dropped by all major browsers, we are planning to migrate our streaming platform to Azure.
I have checked the documentations, samples & read articles and couldn't find anything on how to use existing smooth streaming encoded video without having to re-encode. We have quite a large asset to migrate, around 400GB, re-encoding is not an option, also we plan to dynamically encrypt our content using AES. Does anyone know how to go about this?

You need to perform following steps
Create azure media services asset
Upload files for specified asset.
Then you need to run media encryptor encoder "Windows Azure Media Encryptor"
Configure delivery options
See https://github.com/Azure/azure-sdk-for-media-services/blob/dev/test/net/Scenario/JobTests.cs.
Method
private IAsset CreateSmoothAsset()
covering step 1&2.
There are various tests in this file to cover encrypting asset using "Windows Azure Media Encryptor" encoder(see usage of
GetMediaProcessor(_mediaContext, WindowsAzureMediaServicesTestConfiguration.MpEncryptorName);
)
To configure delivery of protected content see - https://azure.microsoft.com/en-us/documentation/articles/media-services-protect-with-aes128/ .
There is also media processor called "Windows Azure Media Packager" which will allow you to package your smooth asset for example to HLS.

You can onboard your existing Smooth streaming assets to Azure Media Services without re-encoding them and apply dynamic encryption of AES and dynamic packaging to different streaming formats such as HLS, MPEG-DASH and Smooth Streaming. However, there can be some limitations and constrains. If your content is already encrypted such as Smooth Streaming + PlayReady it is not supported to dynamic encrypt to AES. Your content needs to be in clear form if you want to use dynamic encryption. Also your Smooth Streaming assets needs to be Smooth Streaming spec complaint. There are tools which generates Smooth Streaming files which is not spec complaint and not supported by Azure Media Services.
You can use creating assets from existing storage blobs article to start
https://azure.microsoft.com/en-us/documentation/articles/media-services-copying-existing-blob/
I hope this answers your question.
Cenk

Related

Does TokBox support a codec compatible with Google Speech API?

Google Speech API claims to support a number of codecs (https://cloud.google.com/speech/docs/basics). I'm interested in processing an archive of a session produced by TokBox WebRTC.
Is there a sample code that does something like this? Does the archive need to be converted to a compatible format?
The default audio codec for WebRTC is Opus, which is indeed supported by Google Speech API. The trick is getting the audio out of an OpenTok stream and forwarded along to the recognition service; unfortunately this is no small effort.
Although some work has been done on this in an experimental capacity, there is no official support at this time. Recommend reaching out to TokBox support directly to discuss the specifics of what you're trying to build (email support at tokbox.com).
Disclosure: I work at TokBox.

Can we implement live audio streaming functionality using tokbox

I am having a requirement to broadcast live audio on my website.
Scenarios are:
One user will talk/sing in my application (only audio) and
His followers will have to listen that live audio instantly in the same application(followers can listen only).
After broadcasting live audio the followers may give replay through chat.
Can we implement the above scenario using Tokbox?
Note: I am developing my web application in ASP.Net MVC5 + WEB API.
You should be able to do it with TokBox.
Use OT.initPublisher({ videoSource: null }) to publish audio only. See https://tokbox.com/developer/guides/audio-video/js/#voice And for singing you may want to tune the audio quality, see https://tokbox.com/developer/guides/audio-video/js/#audio-tuning
Subscribing to this stream will allow your users to listen to the live audio
You will be able access the audio by creating an audio-only archive. The TokBox API provides the audio-only archive for you but you will have to integrate a playback system into your chat system yourself. See https://tokbox.com/developer/guides/archiving/

How to copy existing Blob into Azure Media Services using the CLI

I'm looking for a way to copy an existing Blob from an Azure "Storage account" to an Azure "Media Services account" using the CLI or the portal.
There seems to be plenty of documentation for Windows centric platforms- but nothing for 'nix or Mac users.
Side note: Why is there an assumption that I would want to do this via code? (which btw also seems to require a Windows platform)? I've got a large video (e.g., larger then the 200MB limit for portal upload) - I want to load it into media service - why is that so difficult?
I'm not an expert on this, but from a quick glance at the portal and testing it, it seems like you can just upload your video to the (classic) Storage Account created with Azure Media Services, using any tool that can handle Azure Blob Storage, such as the cross platform Cyberduck. After that you can simply select that video in the portal under upload content > from storage. Note that it only works with classic storage accounts.
You can upload you media to any blob storage account
Then when you want to create a media services asset you can copy it to the Media Services blob storage and create an asset using the blob you moved.
Unfortunately at the moment Azure Media Service is not supported VIA Azure Cli
But there is a power shell support
See this article
You can write some code and do everything using the SDK
There are SDKs for .Net , Java, Python, Node, Php and more...
To be visible in the Azure Media Service storage explorer UI, your files need to add a valid extension, as answered here : Azure not displaying blobs within container in Storage Account
Hope this helps,
Julien

What options do I have for storing video files for my website?

If I'd like to create website where users will be able to upload videos what options do I have for storing and streaming the video files?
One is of course storing it on my website. But I don't think that's good option. I will need a lot of storage (to expensive) and streaming will slow down my sever. I think it should be cheaper to store it in some external service. It would also take the load off my server. But I don't know of any.
Do you any services that may help here? If my website is not commercial and if it becomes commercial. This probably shouldn't matter but I'm using ASP.NET or ASP.NET MVC.
I am currently in a processes of designing a similar functionality for a product I develop.
The design that I came up with is:
Storage: AWS S3
Processing: zencoder.com or www.pandastream.com
Player: jplayer.org
To sum this up: User uploads the video(via asp.net) to S3. A service sends the unprocessed video from S3 to zencoder/pandastream for encoding and puts it back to S3 in the encoded formats. From there jplayer will play the files on all the platforms.

How to share files created by an app?

How do I share files (music, video, image) create by my app? I am interested in sharing audio file specifically.
Imagine I have a program that generates wav file.
How do I take it from isolated storage?
Is it possible to sent an attachment with e-mail?
Save it on SkyDrive?
Share on Facebook?
Put it to media library?
At least in some convenient for a user way to take it out from WP7 device?
Any help regarding this topic would be welcome
You cannot directly send it as an attachment through the EmailComposerTask, however you can use your own implementation of an email sending mechanism.
You can save it to SkyDrive, but then again you have to use a custom API layer (developed by you or by a third-party) to achieve this.
A better choice in my opinion would be having a WCF service that will transmit the byte array of the generated content to a specific location - this will ultimately give you more control over the transmission layer.
You can save images to the MediaLibrary - from where you can access it via the Zune Software and transfer to PC, etc.
This can be done with the MediaLibrary.SavePicture method. (Yes, this is an XNA method but it can be used from within a Silverlight application also.)
The other alternative is to upload it to a webserver and send it from there.
There is currently no way to save songs or movies.
How to upload a file to a webserver very much depends on: the server; the software it is running; and any security concerns realting to the content.
There is the start of a discussion on this at Uploading XML files from WP7, possible, how to etc?

Resources