We've just started using Microsoft Azure, and trying to investigate is it possible to - upload video and convert it to web format automatically.
Maybe someone has already did it and has some experience.
Have a look at Azure Media Services.
You can encode to adaptive multi-bitrate MP4 with dynamic packaging on top (think MPEG-DASH, HLS, Smooth Streaming).
Encoding via the Azure Portal:
https://learn.microsoft.com/en-us/azure/media-services/media-services-portal-encode
.NET SDK:
https://learn.microsoft.com/en-us/azure/media-services/media-services-dotnet-encode-with-media-encoder-standard
REST API:
https://learn.microsoft.com/en-us/azure/media-services/media-services-rest-encode-asset
For an event-based approach look at Azure Functions with a Blob Trigger. As soon as there's a new source file to be encoded you can kick off a job.
Related
I am currently on a student plan for azure (gotta stay finessing as a college student lol) and am looking for the best way to upload videos to azure blob storage. Currently, I am using an azure function api to upload the video, but I am encountering a "Javascript heap out of memory" error when I try and multiparts parse big video files.
Ideally, I'd be able to quickly upload 3.5 minute music videos from mobile and desktop to azure blob storage with this method.
Either a better way of uploading videos to blob storage from my front-end or a solution for the javascript heap out of memory error would be amazing help.
Here's the link to that other post, if you are curious: How to fix JavaScript heap out of memory on multipart.Parse() for azure function api
Approaches:
After a workaround based on your issue, I would suggest that you use Azure Media Services.
Media Services can be integrated with Azure CDN. Refer to check Media Services-Managing streaming endpoints.
All supported formats use HTTP to transport data and benefit from HTTP caching. In live streaming, actual video/audio data is separated into fragments, which are cached in CDNs.
To start, I recommend that you use the Azure Storage SDK with Node.JS. The SDK will handle everything for you. Attaching few uploaders below to check accordingly.
Upload a video to Azure Blob examples
Refer MSDoc & SO thread by #Gopi for uploading a video with the .mp4 extension to Azure blob storage using C#.
You can upload a video using Azure functions directly. But to use Azure Functions, you must create a back-end component written in.NET, Java, JavaScript, or Python.
You can use the "Azure Storage Rest API" to upload files/video files using a storage account, like you mentioned. You will be able to get the desired result by using this Azure Storage Rest -API-MSDoc.
does anyone know how we can upload to azure media service asset from a url without encoding?
the video stored on s3 amazon is in mp4 format and I don't need to encode it (it takes time), but I need to upload it to my azure media service and make it public for streaming on client side video players.
I use asp.net and azure media service sdk.
I've used Media Services before, and indeed indexed at time of upload. However, this blog seems to cover your scenario
https://blog.genreof.com/post/azure-media-services–indexing-existing-videos
I'm using blob storage to serve uploaded user posted videos in a xamarin application, but the performance is terrible. Can Azure media services serve these videos with good performance?
Try one of our quick starts for encoding and streaming and see if you get better performance for your scenario.
https://learn.microsoft.com/en-us/azure/media-services/latest/
There are some threads on using adaptive streaming in Xamarin as well.
I have an MVC 4 application that contains a view to show "Videos" from azure blob storage of MP4 format only. Currently I'm using MediaElment.js(or any typical flash player) as the video player. How can I play these videos in a smooth streaming or progressive download(Adaptive streaming) method. What are the configurations that I have to set in Azure to support streaming? Is there anything that I have to do before uploading MP4 file to blob storage?
I have gone through this link
http://msdn.microsoft.com/en-us/spazuretrainingcourse_spblobstorageazure.aspx and as far as I understood, Windows Azure Blobs Uploader is used to upload video files to azure and silverlight as the client. In my case, the video is uploaded from a seperate application so the manipulation of video file is not possible. So is there any way to implement streaming without any change and play it in a video player other than using silverlight ?.
Is it possible to do anything if I can change the media file while uploading?
Thanks.
I have been doing almost exactly this, but without the Adaptive Streaming (I'm dealing with video files of only 25mb or smaller). I am using JWPlayer for the front end in my web page, and the video is in Azure blob storage.
I'm using the pre-built windows binary ffmpeg.exe I uploaded it to Azure (put it in root of Worker Role project), then I use System.Diagnostics.Process in a WorkerRole to massage the video files. You could do the same to create the different quality versions you want.
So, when a user uploads a video my business logic layer plops a message in an Azure message queue, my worker role picks it up, copies the video onto Azure LocalStorage (LocalStorage is physical disk you can configure in your Azure project settings file), runs ffmpeg.exe over the file and then puts it back in blob storage.
I am wondering if it is possible to host videos on the azure platform. Does Azure allow encoding videos using expression encoders before storing them as a blob. I am imaging a process/architecture where video is upload via client, saved to a location on azure and queued up. A process runs to pick it up from queue, encode it and save it as a blob. Any ideas will be helpful.
I do not think that there are services in azure today for video encoding. Could be a good business idea to write an app to do this.
You could load the video up to azure, then have another service that downloaded the video, encoded it, and sent it up to the cloud again. The major problem with this approach is the bandwidth cost that you would incurr.