I am looking into a project where they want to stream the input from several cameras to a central server. The cameras are observing a production plant, and we need to be able to generate alerts (sms/mail) to operators (potenital outside the plant) to quickly connect to the cameras and review the problem.
The users should be able to choose camera, and have a live video stream from the selected camera. The end user can be using PC (ie browser+silverlight) a smart phone (android, iphone, wp7) or a pad (android, ipad, win8)
I also need to store the video stream (pr camera) for a configurable amount of time for "on demand playback"
I was hoping Windows Azure + IIS Smooth Streaming + Expression Enco开发者_JS百科der 4.0 API could be used to solve this.
I am wondering if I am thinking in the correct way here, or if we should choose some other solution..
Here are some blog posts describing how to use Expression Encoder in Azure, but I havent seen anything about live streaming.
- http://msdn.microsoft.com/en-us/library/ff728356.aspx
- http://www.wadewegner.com/2011/01/using-expression-encoder-4-in-a-windows-azure-worker-role/
- http://www.wadewegner.com/2010/08/using-the-expression-encoder-sdk-to-encode-lots-of-videos/
Ideas ?
Although technically feasible I have a feeling that the bandwidth and storage costs involved would make it uneconomic to do transcoding for this kind of application in the cloud.
I'd suggest a better approach would be to encode the video streams locally on an on-site server, then stream them directly from this on-premise server to the client browsers.
You'll want to do the math: consider on one hand the cost of bandwidth and compute resources in Azure, versus the cost of an on-site server (together with its care and feeding).
If your requirement for on-demand playback covers situations where the manufacturing site is unreachable then it may be sensible to store the historic videos in Blob storage in Azure. Inbound data traffic to Azure is free, so you'd only pay for the outbound data traffic from the on-premise server; if the video has been transcoded into a sensible format this shouldn't be too expensive.
Heisann, Ronny :) One way (without a central server - decoupled clients) is using Azure Service Bus relay to do the handshake between the clients and then stream the video directly between the clients over the Azure Service Bus. But I don't think you will get adaptive streaming this way without adding it yourself. Also, I think there is a limit of 16 clients?
精彩评论