This blog is credited to Program Manager Anton Kucer in our Media services team. I learnt a lot pricing detail from a email conversation with him. If you choose to use Windows Azure Media Services, here is a detail explanation of what you will need to pay. Also, it provides some guidance on how you choose right amount of services such as # of reserved units. If you have more questions, please put your comments below and I will pick them up into Q&A section in this blog.
These are pricing details posted on official Windows Azure home page. Please read the official post first and if you still have questions, read this blog which is my best effort for explaining pricing. As said, if you choose to go through general media workflow (encoding your content and host them for streaming purpose), you will incur 4 types of costs.
1. Encoding GB Processed
Encode charges = Input File size + (Each output format size). For instance, I could load a video in WMV format with 2 GB, and after encoding into H.264, I get a output file of 2.5 GB by using Windows Azure Media Encoder. In that case my total encoding charges will be 4.5 GB of data. Price detail please see the table below and please contact firstname.lastname@example.org for monthly data usage more than 100 TB. Pricing in this table may change over time and please refer to official page.
2. Encoding Reserved Units
The cost of encoding reserved unit is $99/month but your account will be charged on a daily basis using the highest number of Reserved Units that are provisioned in your account on that day. The daily rate is calculated by dividing $99 by 31. For example if you start with 3 Reserved Units but an hour later you go to 5 and then another hour later you drop to 2, the charge will be based on 5 Reserved Units for that day.
With Reserved Units you get the benefit of parallelization of your tasks. As an example if you have 5 Reserved Units, then the service will run 5 of your tasks in parallel. As soon as one of the task finishes, the next one from your queue will get picked up for processing
If you do not have any reserved units then the wait time for a task to start processing may be several hours. If you have only reserved unit then the service will run one task at a time but will schedule the next one as soon as the current one finishes
In summary, the number of media tasks that will be processed in parallel will be equal to the number of encoding reserved units provisioned in your account at any given time. In Windows Azure portal, you could request for 5 Reserved Units max, but you could follow this post to request for more Reserved Units.
Question: By adding more encoding reserved units, will it speed up the encoding process?
Answer: With Reserved Units, the time of encoding one single media file will not change. However, if you have multiple files, the total encoding time will be shortened as multiple files will be encoded in parallel.
3. Data storage Cost
Videos will be stored in Windows Azure Blob storage hence you will need to pay for normal storage cost. Please refer to Storage price for Windows Azure.
4. On-Demand Streaming Reserved Units
The cost of On-Demand Streaming Units is $199 each per month. For each reserved unit there is a minimum of 200 Mbps of bandwidth allocated. The SLA currently only applies when one is using 80% or less of available bandwidth. That said, in many cases customers will see significantly more bandwidth available per reserved unit. This is because each reserved unit is made up of 1 or more medium VM’s. Additional VM’s are added to ensure allocated bandwidth per reserved unit isn’t impacted when VM’s fail, are upgraded, etc. When all VM’s are available, at lower # of reserved units there is significantly more excess network capacity available. As the # of reserved units is increased the excess network capacity drops off and levels out at 6-8% range.
Question: Could you still do streaming without purchasing a on-demand streaming reserved unit?
Answer: Yes. However, without a reserved unit, there is no SLA and streaming is done via a shared pool of resources for which there is no ability to control individual customers usage. So if one customer starts using lots of bandwidth (e.g. viewing of one of their videos goes viral) this will have an impact on all other customers. The shared pool is great for customers that just have limited streaming capabilities and aren’t in need of an SLA.
Question: How do I estimate # of on-demand streaming reserved unit I need?
Answer: For the most conservative estimate you can go directly with SLA limitations - i.e. total bandwidth is 160 Mbps * # of RU’s. To obtain an initial estimate you can take the # of concurrent customers * top bitrate that you are encoding video at. For most video business, I think it is always better to be conservative first and if you end up over provisioning, you could always reduce # of reserved unit.
Use of a CDN complicates this equation as the amount of bandwidth is now directly related to how customer requests are spread across content. This will be unique per each customer. Requests for content that has been recently served by the CDN will be served directly from the CDN’s cache versus request to a customer’s RU’s. To simplify initial determination of impact of CDN one can just estimate % of content that is long tail content (seldom watched so low likelihood of being in CDN cache) versus fat tail content (watched often so being highly likelihood of being in CDN cache). Then use this percentage to adjust down the # of RU’s required.