locked
Ability to ingest multiple streams from live video cameras, store, search and recycle footage using Azure Media Services RRS feed

  • Question

  • Hello,

    We are researching Azure Media Services for the possible application in the solution we are building for our client. We need to record and store video streams from live video cameras (possibly 100s of devices), each stream needs to be broken down to manageable chunks and those chunks be indexed in the manner so that we know what time span it covers and from what camera it came. Then each chunk should be encoded in the number of different bitrate/format combinations for consumption using broad range of playback devices (PCs, tablets, mobile devices etc). There should be ability to set different retention period (12/24/48/72 hours) on different streams and automatic recycling/disposal of the recorded footage after retention period is expired. Live streaming from recording devices is not required at this point, we just need to be able to go at some point in time and review recorded footage. We estimate reasonably low number of viewers in the on-demand nature of service, single digits, possibly 10s of simultaneous viewers at this point. So, here are the questions we have at the time:

    - Given those requirements and current feature set of the Azure Media Services, is it feasible to build a solution like this that would not be prohibitively expensive in the operation costs (thousands of $ vs millions, this is not olympic scale project)?

    - How do we approach estimation of the expenses on per-camera/per-retention-hour basis?

    - Is this reasonable to assume that Azure Media Services allow ingestion of 100s of simultaneous live streams and what are reasonable bitrate/resolution could we expects to run on continuous operation basis?

    - What are the requirements to the outbound internet connections for the recording devices so that Azure Media Services would be able to reliably ingest video streams from the recording device?

    - Are there any COTS video recording devices that support Azure Media Services ingestion?

    If there's any Azure Media Services team member that we could setup time to talk to regarding those questions please PM me to setup time.

    Thanks in advance for help!

    Friday, August 7, 2015 6:46 PM

Answers

  • Each media services account has a quota of 5 concurrent channels. This is a soft quota and we can increase this number to 100. So it is possible to ingest from 100 sources.

    You can also segment your live archive using multiple programs. You can start a program and then start a new program when your desired segment end time is approaching and stop the previous program. With this logic you can segment your archives.

    For required bandwidth, actually it depends on your source quality. Your bandwidth at least needs to be as much as the quality of the source video. As an example if you have 1 mbps video source, your camera to Azure connection needs to be 1 mbps + some overhead (%10) + audio.

    For device support, we support RTMP push. We run tests with multiple devices and encoders. Unfortunately we didn't run any tests with direct camera connection. In theory if your device can provide RTMP push with H264/AAC output, it should work.

    For cost estimate, you can refer to our pricing page http://azure.microsoft.com/en-us/pricing/details/media-services/

    Channels prices hourly prorated minutely. There is a extra charge for ingested data.

    Over channel price you need to add the Azure storage price for the archived content. The storage price depends on how much data you stored which is a factor of video source.

    For encoding to multi-bitrate, are you planning to pre-encode on the source or considering to use cloud encoding? Also if you want to use cloud encoding do you want live encoding or on-demand encoding after live streams are archived?

    In summary what you are trying to achieve is possible.

    Let us know if you need more help.

    Saturday, August 8, 2015 11:56 AM

All replies

  • Each media services account has a quota of 5 concurrent channels. This is a soft quota and we can increase this number to 100. So it is possible to ingest from 100 sources.

    You can also segment your live archive using multiple programs. You can start a program and then start a new program when your desired segment end time is approaching and stop the previous program. With this logic you can segment your archives.

    For required bandwidth, actually it depends on your source quality. Your bandwidth at least needs to be as much as the quality of the source video. As an example if you have 1 mbps video source, your camera to Azure connection needs to be 1 mbps + some overhead (%10) + audio.

    For device support, we support RTMP push. We run tests with multiple devices and encoders. Unfortunately we didn't run any tests with direct camera connection. In theory if your device can provide RTMP push with H264/AAC output, it should work.

    For cost estimate, you can refer to our pricing page http://azure.microsoft.com/en-us/pricing/details/media-services/

    Channels prices hourly prorated minutely. There is a extra charge for ingested data.

    Over channel price you need to add the Azure storage price for the archived content. The storage price depends on how much data you stored which is a factor of video source.

    For encoding to multi-bitrate, are you planning to pre-encode on the source or considering to use cloud encoding? Also if you want to use cloud encoding do you want live encoding or on-demand encoding after live streams are archived?

    In summary what you are trying to achieve is possible.

    Let us know if you need more help.

    Saturday, August 8, 2015 11:56 AM
  • Hello Cenkd! Thanks for the detailed reply. I just did a breif calculation and it looks like the price is pretty hefty, it comes around $70k just for 100 live sources/channels per month + bandwidth + storage + encoding. Hence is my question, does billing accrue on channel only when it's started or around the clock (even if channel is stopped) as soon as channel exist in the AMS?

    We are considering both options - live cloud encoding (on-demand) and on-premises pre-encoding.

    Question regarding keeping rolling archive - so to create 1 hour segments over last 24 hours we will need to maintain 24 (1 hour each) rolling programs on the channel. Will we need to manually delete the program after retention period expires or will it auto erase?

    Monday, August 10, 2015 10:07 PM
  • Channel is only billed in start state. You can create channels and as long as they are in stop state there is no charge.

    For rolling archive, your understanding is correct. You can have a main program which is published with its own archive window and additional two programs for segmenting and rolling. Also you can consider having a bigger archive window and use dynamic manifest to trim the DVR window and when program is stopped use trimming filters to create segments.

    Thursday, September 10, 2015 10:18 PM