I want to develop an application in ASP.NET MVC. Here's the detailed scenario -
- App should provide facility if "REAL TIME" video chatting. There should not be any lag (Latency below 4s in accepted but since it will be an interview, mroe than 4s is not acceptable at all.
- Application should record both the videos and upload the stream to Azure Blobs simultaneously so that it can be reviewed later on.
The problems I am facing
- I tried using Silverlight but it captures Video but does not save video + audio in mp4 or wmv format. (I tried using SocketCoder's code but it grabs sequence of jpegs and this won't help when I need an audio as well
- Expression encoder is good to have but the encoding takes a lot of time which causes a latency which is unacceptable..
Please help me with it. Is there any other technology that can be used to achieve this? How is Flex and how FLEXIBLE it is with ASP.NET MVC (.Net framework).
I would have a look at WebRTC. On the web site it reads:
WebRTC is a free, open project that enables web browsers with
Real-Time Communications (RTC) capabilities via simple Javascript
APIs. The WebRTC components have been optimized to best serve this
purpose.
I never used this but maybe you can adapt the project for your needs.
Have a look at OpenTok. Since you are using .Net might I recommend my library which is available on NuGet.
http://www.tokbox.com/opentok/api
https://github.com/khalidabuhakmeh/OpenTokApi
Hope this helps.
Your latency will be dependant on what resolution you want to encode to (1080p or whatever) and the hardware of the machine doing the encoding.
FFMpeg is a great tool and best of all Free as far as I know which is unbelievable considering the amount of functionality, a bit tricky to develop with though.
You may want to take a look at this, the Core of your app could hang over this tutorial:
https://www.virag.si/2012/11/streaming-live-webm-video-with-ffmpeg/
Also did you know skype has an API
http://dev.skype.com/desktop-api-reference#Reference
http://dev.skype.com/skype-uri