So perhaps you’re thinking:
I’m not ready to move my encoding workflow to the cloud, but I’m interested in exploring storage and streaming alternatives.
Ok, I understand where you’re coming from. I’ve worked with some of the largest content owners and getting it just right is not trivial. Or perhaps your studio contracts do not allow you to egress media assets unless you’ve applied the stipulated digital rights management encryption (PlayReady, I hope!).
Many large content owners have much more flexibility in their choice of storage, origin service and CDN providers. In this blog, I’ll touch on leveraging storage and origin services in Windows Azure Media Services without significantly altering your asset creation workflow, or writing any lines of code.
Prior to focusing on the cloud, our Media Services team had all been heads-down on various on-premise products and client frameworks. I had been working on Transform Manager. It’s an extensible media workflow tool which also offers a few transmuxing capabilities: Mp4 to Smooth Streaming, clear Smooth Streaming to PlayReady-protected Smooth Streaming, and (clear or PlayReady) Smooth Streaming to HLS. It also integrates nicely with Expression Encoder and our HPC Cluster technologies. While I can’t mention who uses it, I estimate it lights up a significant proportion of on-premise workflows worldwide. So, perhaps you’re one of the tens of thousands who have downloaded and are using Transform Manager. Great, but that doesn’t help your storage and streaming needs.
Move storage and streaming to the cloud!
Since TM is an extensible framework, anyone can build additional workflow tasks. Given my knowledge of the product, I decided to write one myself.
You can find it on codeplex at: http://createassettask.codeplex.com
What’s great about it?
- TM is a watch-folder based tool: drop the files in a folder, and the workflow is kicked off. No coding, no scripting.
- Just enter your Media Services credentials using the Transform Manager user interface.
What does it do?
- This task will create and upload a media asset to Windows Azure Media Services.
- It can also create a streaming URL for that asset at the same time.
- It outputs a json object with the data you’ll need to use or stream the asset
For existing TM users: you can chain this task at the end of your usual workflow. Just send a copy of the asset up to the cloud, get a streaming URL and give it to your QA team. It’s that easy.
For CMS users: you can set your CMS’s media id into the “IAsset.AlternateId” field. This will allow you to use your CMS id to make queries against your Media Services account to find the asset again. Otherwise, the task can use the TM job ID as the AlternateId, allowing you to correlate TM jobs to Media Services Assets.
The output of the task is a json object with the
- PrimaryFileUri (if you asked for one)
So you can pick up the json object with a web-page and start playing it, or read it with your CMS to pipe this information back into your system.
You do have to build it yourself in visual studio, I haven’t released it as a binary. All the build instructions are in the main CreateAssetTask.cs file at the top. The parameters are explained in the CreateAssetTask.xml, and will be visible in the Transform Manager user interface.
It would be easy to modify this task to run encode jobs in the cloud after uploading, but that would be a whole other blog post.
If you just need some sample code to build your own TM task, or to see how to upload an asset or get an origin url, go ahead and use it for that too.