Storing live video on Azure Media Services - azure

I have one interesting scenario using Windows Azure to store video directly from IP cameras.
I know Azure Media Services is amazing to video streaming, but I do not know if it is possible to use Media services to store video from IP secure cameras.
Have someone here experience with that?

Yes it's possible if your camera or your streaming software supports RTMP or Fragmented MP4 as streaming protocol.
How to get things ready:
As you can see in the image below, the entity that stores a live streaming is "Program".
Common live streaming scenario
The following steps describe tasks involved in creating common live streaming applications.
Connect a video camera to a computer. Launch and configure an on-premises live encoder that outputs a multi-bitrate RTMP or Fragmented MP4 (Smooth Streaming) stream. (Like WireCast) This step could also be performed after you create your Channel.
Create and start a Channel.
Retrieve the Channel ingest URL. The ingest URL is used by the live encoder to send the stream to the Channel.
Retrieve the Channel preview URL. Use this URL to verify that your channel is properly receiving the live stream.
Create a program. When using the Azure Management Portal, creating a program also creates an asset. When using .NET SDK or REST you need to create an asset and specify to use this asset when creating a Program.
Publish the asset associated with the program. Make sure to have at least one streaming reserved unit on the streaming endpoint from which you want to stream content.
Start the program when you are ready to start streaming and archiving. Optionally, the live encoder can be signaled to start an advertisement. The advertisement is inserted in the output stream.
Stop the program whenever you want to stop streaming and archiving the event.
Delete the Program (and optionally delete the asset).
All these task can be made by using the Azure Management Portal, .NET SDK, Java SDK, Azure Media Services REST API, etc.
More details here

Related

What is the best way of hosting a video on Azure?

To clarify: I have a website hosted in Azure. I want to add a 1.5 minute howto video. I can't imagine it will get shown more than a few tens or hundreds a month (maybe a few thousand if the site takes off).
I was planning on using Azure Media Player to play the video.
In relation to this I thought the video would sit in a streaming endpoint.
But this seems an expensive way of doing this. Are there better ways (especially cheaper)?
EDIT: is it possible to host the video elsewhere and have it embedded in Azure?
The cheap way to do this would be to place the video in a blob storage then play it using a web page.
There is a video explaining how to do this here: https://www.youtube.com/watch?v=qmzns7PgP0A
I would recommended to use Media Service: video-on-demand, content delivery service with an Azure Media Services application in the Azure portal.
Azure Media Services lets you deliver any media, on virtually any device, to anywhere in the world using the cloud. The collection of services provide encoding, live or on-demand streaming, content protection and indexing for video and audio content.
The Windows Azure Media Services platform has four types of services: content uploading, encoding, encrypting content and streaming.
Media Service Pricing: https://azure.microsoft.com/en-in/pricing/details/media-services/
Additional information : Streaming Videos from Azure ( Blob or Media Services)

Change record time for IoT DevKit AZ3166 language translator example

I am following the guide IoT DevKit AZ3166 to make a translator using the MxChip.
I was able to follow most of the steps at ease but was wondering How I can increase the recording time for the translation ? - this is such that it can translate phrases that are a bit longer.
Thank you.
The DevKitTranslator example is only a proof-of-concept to leverage the Azure IoT Hub, Functions and cognitive translator API to process audio sensor data. This example records the audio data and store it temporally in the device flash (1M). So due to this memory resource limitation it is hard to record a longer audio.
If you really want to expand the record time, it would probably need a re-architecture of this example:
Change the device code to use WebScoket streaming to upload the audio to cloud continually. We have already provided a WebSocket client library for DevKit.
Build a Azure Web App that supports WebSocket protocol to process the audio streaming from the device, and then invoke cognitive service translator API to do the translation.
Send the translation result back to the device via IoT Hub C2D message.
If you really want to try this solution architecture above you can refer to or try the DevKit Chat Bot example. This is a more sophisticated example to demonstrate the power of the IoT DevKit to integrate with more Azure AI Services which is transmiting the continuate audio data via WebSocket streaming.

Azure Media Services Broadcast to Another Service

I have looked through the examples for creating a live stream on Azure, but this leaves you with a url where the stream can be viewed at. I'm wondering if there's anyway to push the live stream to another service (such as twitch.tv or youtube live streaming)?
Currently live streaming doesn't support to push to another service.

On-demand viewing of MP4 files from Azure Storage with Azure Media Player

I am working on a school project and using my MSDN subscription for Azure access. I have written a program that uploads MP4 recordings (video surveillance) from a private network to Azure storage on a scheduled basis.
I want to be able to view these MP4 files using the Azure Media Player. I will be the only one using this stream and it would only be on a very infrequent basis (while away on vacation). I played around with the Azure Media Services a bit and it seemed like the only way I could get an "endpoint" for the media player was to open a live streaming channel. Once I did that it gave me an endpoint which I put in the player and it played my video as expected. I turned in my project proposal to my professor based on this prototype and got it approved as my semester project (40% of my grade).
To my surprise two days later I got an email alert saying that my Azure account had shut down automatically due to my exceeding the $50/mth allocation. I was surprised since the files I uploaded amounted to only 5MB and I only downloaded them twice during my proof of concept work.
While reviewing my billing details it appears all these charges came from the media services channel and it appears to based on the time the channel is "alive". 43 hours of this pretty much ate up my whole allotment for the month.
Here are my questions (keeping in mind I am a decent C# developer but completely green about all things Azure):
1) Am I going about this the right way? Do I need a live streaming channel to use the Azure Media Player?
2) If yes to the above, is there a way I can start/stop the live streaming service from code? In this way could I send a command to Azure to wake up the channel when viewing is needed then shut down when complete?
3) Is there some other html5 based media player I could use against Azure file storage so I bypass the live streaming channel and associated costs?
Thanks for any help. When I called Microsoft support all they could do was explain the billing to me and steered me here for technical support.
Based on your project descriptions you already have files encoded to mp4 and uploaded to Azure Media Services.
You don't need to create streaming endpoint and start live channel to playback your files. You need instruct system to generate playback url which will accesible for you during defined period of time and use this url in player.
Example of code:
IAsset asset =_mediaContext.Assets.Where(c=>c.Name="Your MP4 Asset").First();
IAccessPolicy accessPolicy = _mediaContext.AccessPolicies.Create("Read15Min", TimeSpan.FromMinutes(15), AccessPermissions.Read);
ILocator locator = _mediaContext.Locators.CreateLocator("ReadOnlyLocator", LocatorType.Sas, asset, accessPolicy, startTime: null);
var uribuilder = new UriBuilder(locator.Path);
uribuilder.Path += "/" + asset.AssetFiles.First().Name;
var fileUri = uribuilder.ToString();
To test if it is actually working simply go to http://aka.ms/azuremediaplayer and paste value of fileUri to Url input textbox.
If you serious about security i would recommend to read about Content Protection in Azure Media Services and dynamically encrypt content to use token authentication. In my blog post I showed how you can integrate Azure AD authentication in your ASP.NET MVC app with Azure Media Services to protect your content.
You can point your Azure Media Player directly towards the mp4 file's "Absolute URI" found when marking the file and clicking "Edit" at the bottom.

Azure Live Streaming RTMP with CDN

Previously I'm using Amazon AWS, now I'm moving to Microsoft Bizspark program which can use azure for free for certain limitation. I'm new to azure, and I want to setup RTMP live streaming with CDN. I'm using FlowPlayer in my website and OBS software to broadcast my live stream. Can I use Azure CDN with RTMP live streaming ?
Azure Media Services supports ingesting live feeds using RTMP and uses Dynamic Packaging to dynamically transmuxe live streams for delivery in MPEG-DASH, Microsoft Smooth Streaming, Apple HLS, or Adobe HDS formats.
You can use Azure Media Player and Wirecast instead of Flow Player and OBS Software. You can follow this article to setup the live streaming.

Resources