Azure Streaming URL validity - azure

I'm currently looking into Azure Streaming service for client purposes and I am wondering if there is a way to create time limited URL for Adaptive Streaming (we need this for security purposes, when user wants to stream, we verify permissions then create time limited URL). I see that Streaming Locator can have the end date, but is it really the best practice to create new Streaming Locator each time when someone requests the stream? That means I would need to persist them, then clean them up after expiration. Is there any better way to create time limited URL for adaptive streaming in Azure Media Services?

I would recommend looking at the token authentication capabilities available in Azure CDN from Verizon Premium SKU - https://learn.microsoft.com/en-us/azure/cdn/cdn-token-auth. This would be the simplest path to take. The Azure CDN from Verizon Premium SKU can be enabled directly from configuration on your streaming endpoint. The endpoint will need to be stopped in order to enable Azure CDN for it. You could also accomplish directly using content protection capabilities available in Media Services - https://learn.microsoft.com/en-us/azure/media-services/previous/media-services-content-protection-overview. This path is much more complex one to take and would require significantly more development work.

Related

Azure Front door caching VS Azure CDN for blob storage

This is regarding usage of Azure Front Door caching and Azure CDN. I have a Azure static website that will displaying the data (mainly office files and videos) from Azure blob storage. The files in blob storage will rarely change. I am looking for the best way and cheapest way to cache these files, so that files can be fetched quickly.
Recommendation or supporting links will be helpful.
Thanks in advance.
Caching static website content is a technique to improve user experience as well as reducing the load on webservers by offloading the delivery of static content to a dedicated cache service.
Azure CDN:
Azure CDN is globally distributed network of servers that can deliver content to the customers in a very large scale.
It is a video streaming platform where videos are delivered based on the customer’s nearest edge location.
Azure CDNs stores cached content on the edge servers which results in minimizing network latency.
Azure Front door:
It provides Scalable, secure and fast delivery of your global applications .
It enables you to define, manage, and monitor the global routing for your web traffic.
It provides best performance and instant global failover for high availability.
Based on your scenario, that best caching you can use is Azure CDN due to the following:
Azure CDN is best for delivering static content like Videos, Images and PDFs whereas Azure Front Door is for delivering sites, services and APIs.
Azure CDN is cost-effective whereas Azure Front Door charges per ruleset.
Azure CDN does all the functionality similar to Azure Front Door.
Azure CDN performs a good job at content delivery at a cheaper price!.
Update: As suggested by #silent, you can also make use of Azure Front Door Standard which is a combination of classic CDN and Front Door.
For more information, please refer below links:
https://techcommunity.microsoft.com/t5/azure-developer-community-blog/azure-on-the-cheap-azure-front-door-caching-vs-azure-cdn/ba-p/1372262
https://kishoregopalan.medium.com/azure-front-door-or-azure-cdn-what-solution-will-you-use-for-your-high-availability-sites-be26bb34aee7
https://walkingtree.tech/azure-front-door-azure-cdn-solution-will-choose/

Azure Media Services - creating a small video player

If I was to use Azure Media Services to consume encoding of small video files and then playing back on a web app and mobile app, do i need to turn on the 'Streaming Endpoint' option? I am getting charged ~$65 a month just to have streaming endpoint, not sure if i need it.
The pricing doesn't quite make sense because I can get the same basic features from Vimeo for $7 a month.
Am I consuming this correctly?
If I was to use Azure Media Services to consume encoding of small video files and then playing back on a web app and mobile app, do i need to turn on the 'Streaming Endpoint' option?
Yes, the official documentation explains that a streaming endpoint is the service that delivers content directly to the client application for live-streaming, video on demand, or progressive download.
So this means that you would need at least one streaming endpoint to be able to serve your videos to a client. A Media Services account already includes a default standard streaming endpoint. According to the documentation, this default streaming endpoint would be enough for the vast majority of workloads.
Take a look at the pricing page for more info: https://azure.microsoft.com/en-us/pricing/details/media-services/
According to the pricing page, the default streaming endpoint does cost ~$65/mo.
In regards to your comparison with Vimeo, the service that you end up using really depends on your particular case. While I understand pricing is a big factor when building an application, you should still consider the security of your videos at rest and in transit, scalability, availability of services, support, etc.

Azure Media Services or simple Storage Account for video storage for STA

We are developing a "multi tenant application" (MTA) on AZURE. In addition we develop "single tenant applications" (STA) for customers that utilise MTA data via a REST API end point i.e so the STA can be hosted anywhere.
A specific STA uploads and stores video files. Security for these video files is important and 1xVideo 1xConcurrentUser most likely consumption use case. It not clear at this stage the user will consume the content by streaming or download.
QUESTIONS
Using Azure MEDIA SERVICES account/keys its easy to upload , store and download media content. What are the benefits of using MEDIA SERVICES over a standard Azure STORAGE ACCOUNT ? ? I understand MEDIA SERVICES use a STORAGE ACCOUNT.
Does isolating a STA into a new Azure subscription makes sense to isolate video related costs categorically ? the itemised bill contains 6000+ rows. Difficult to extract the relevant data for an STA each month. In theory a STA customer could in future take control of this account management and costs.
Is there a max number of CONTAINERS that can be added to a STORAGE ACCOUNT ?
Should the CONTAINER be of type PRIVATE to secure the content but still allow access for the STA?
Thank you
Scott,
Media Services is good if you're looking to accept incoming video and process it to serve in other formats or to leverage streaming media playback. Serving video directly out of an Azure Blob Storage Account is possible but it will not provide smooth streaming or transcoding (no streaming playback may mean stop / start of video for users with high latency connections).
I would advise against putting each STA into their own subscription. While it will give you a degree of control over the management of charging back usage to the STA user it will be a big overhead to manage. Your best bet would be to use an appropriate storage account / container setup to allow you track calls some other way and provide estimated costs. Don't forget that Azure is always changing and it may be that future features give you the ability to tag and track costs inside a subscription more effectively.
There is no limit on number of containers in a storage account. The limits are 50 storage accounts per subscription and a maximum of 500TB of storage per account. Storage and Subscription Limits are documented here: http://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#storagelimits
You can use Shared Access Signatures to control access to Blobs in Azure Blob Storage. See here for how to create and use them: http://msdn.microsoft.com/en-us/library/azure/jj721951.aspx and here for guidance on setting permissions on Blob Storage containers: http://msdn.microsoft.com/en-us/library/azure/ee393343.aspx
HTH
Simon.
I will try to answer the first question:
Using Azure MEDIA SERVICES account/keys its easy to upload , store and download media content. What are the benefits of using MEDIA SERVICES over a standard Azure STORAGE ACCOUNT ? ? I understand MEDIA SERVICES use a STORAGE ACCOUNT.
Answer: Azure Media Services origin server is the IIS media service in the cloud. All video contents are stored in Azure Blob storage and there is a mapping between the media service and storage. There are many advantages of using media server rather than directly downloading from storage: (1) Media server has the intelligent to forward the right data fragment(right bitrate, time stamp) to your client efficiently. (2) our origin server dynamically package multiple bitrate MP4 from storage account into multiple streaming format (HLS, Smooth streaming and MPEGDASH), which get to played on various devices and platform. Hence, you save on the cost for encoding your video into multiple formats. (3) Our origin server supports live streaming.
I think this question goes into why we invent media server. I have a blog explains how video streaming works for your reference: http://mingfeiy.com/adaptive-streaming-video-streaming.

Does Windows Azure have the equivalent of AWS Identity Access Management?

So I have a mobile app that uses AWS's IAM infrastructure that effectively allows me to provide temporary access tokens to anonymous mobile devices, so that they can run queries against AWS services directly from the mobile device.
Does anyone know if Windows Azure has a drop in replacement for this sort of thing too? I've read about Windows Azure Access Control but all examples seem to focus on allowing authentication via the likes of Facebook, Twitter or Windows Live etc. In my case, I don't want the mobile user to have to "log-in" anywhere, I just want them to be able to access Azure services such as table storage, without having to go via my server.
Thanks!
You do have the ability to create Signed Access Signatures for all three Windows Azure Storage services (BLOBs, Queues and Tables) as well as for Windows Azure Service Bus Brokered Messages (Queues, Topics & Subscriptions). These SAS urls are temporary and you can create them ad-hoc with expiration times. After that time expires the device would have to request a new one, likely from your server. This reduce the load as they aren't coming back all the time, but you do still have to run something that will gen these SAS uris for the devices. You can generate SAS manually against the REST API direct, or you can use one of the SDKs to generate them for you (which also hit the REST API).
Note that when you create a SAS you have the option of doing so as a Policy, or adhoc. A policy allows you to revoke a SAS at a later time, but you can only have so many of these defined at a time (likely too big of a restriction for a mobile scenario if you are doing by device). The adhoc approach allows you pretty much as many as you need (I think), but you don't have the ability to revoke it, it just has to expire.
Another option is to look at Windows Azure Mobile Services. This service runs on servers managed by Microsoft and you can use it to get at just about anything you want. You'd want to look at the "Custom API" feature. Also, make sure you understand the pricing model of mobile services (or really, that stands for any option you decide to go with).
It's called managed identities in Azure

Persistent encoding job

Can I have persistent encoding job in Azure?
I want to upload video stream into page blob and encode it on the fly when new portion of data is available.
Can it be done with azure or I need 3rd party solution like wowza?
Adding to the comments of David Makogon - no, currently you cannot achieve your goal. The current state of Azure Media Services works only for Video-On-Demand. What you need is more like a live streaming.
For live streaming you can use IIS Media Services. You can install IIS Media Services along with the Transform Manager Extension. To almost fully achieve your goal. And you can do this on a Windows Server image of Azure Virtual Machine.
To achieve elasticity and scalability however will not be an easy task.
To conclude - the current state of all Azure services is not 100% suitable for your scenario. And it does not provide out-of-the-box solution for your need. If you find a 3rd party provider that suits your needs today, then just go ahead and test/use it.

Resources