Video calling in desktop application .net
Asked Answered
D

2

6

I am working on a wpf application which is suppose to have video calling feature. So I am going for Skype to provide me with the solution.

I am using Skype4COM library to do it. I got all the friends from Skype in my application, I can make call to my friends and even can do video call, but I cant control streaming. Video is being shown in Skype window, I want to show it inside my application like a part of my application.

I don't even know which control should I use to handle the video streaming.

If there is another better way or free way to add video calling in a WPF application. I am ready to change my preferences.

I had previous plans to use Web browser control and go for WebRTC but that does not support IE and believe there is no web browser control from Mozilla and Chrome.

Dog answered 19/2, 2014 at 12:11 Comment(2)
Refer to the Skype Integration in WPF Applications. It might help you.Tarsuss
@JohnStephen I have followed that article while developing the application, but it is limited chat and call, not video callingDog
R
4

Videoconferencing is not trivial to implement. You have to first look at a signalling protocol like SIP or XMPP which would provide infrastructure to maintain a list of 'friends' and whether they are online or offline. The signalling infrastructure would also let you place a call and alert you when you receive a call. And then there is the question of actually flowing video/audio between two endpoints. There is no single solution that you can plug into your app.

You can look at Google's Libjingle or ConferenceXP for a starting point.

To establish a video conference you would need the following information:

  1. Whom can you call? This is your friends list. You would need a mechanism to add friends to your list and ensure that you can only add friends that are willing to communicate with you

  2. How do you establish a communication channel with your friends? For example what is their IP Address, can they support a particular video codec and so on.

  3. Once you have established a way to communicate with your friend, then there is the question of receiving audio and video information and displaying it with correct timing.

For points 1 and 2 you would need what is called a signalling and presence protocol. SIP and XMPP are two very popular open protocol.

For point [3] you would look at a protocol like RTP.

You can google SIP, XMPP and RTP. You would receive a wide variety of literature. Look at the RFC documents for exact information they they can be a bit arcane.

Libjingle is a library written in C++ implements XMPP and RTP ConferenceXP is a RTP implementation in C# with some basic signalling but I think you can get a start with the examples without really getting into details.

Rabies answered 27/2, 2014 at 17:53 Comment(2)
Hi, your answer is interesting, can you please elaborate on it so it would be much more helpful for me and other users with same problems.Dog
Look at my edits in the answer. Its just a summary.. but hope it gives you a better ideaRabies
T
3

You may or maynot be able to control that screen. If skype decides to share that level of control with you.

But it looks like skype4com library is on a dead end. It will stop working soon. :(

http://gigaom.com/2013/07/13/skype-says-it-will-kill-desktop-api-by-end-of-2013/

http://aragonresearch.com/microsoft-kills-skype-desktop-apis-leaves-developers-scrambling/

I'd recommend you not to invest time on skype4com, but look to other solutions to get the video chat working.

Please go through the following thread, as this discussess few alternative ways for video chatting.

Developing a Video Chat Application with high quality video streaming

Another promising thing is the Bittorent Live. But you will have to wait. It claims

BitTorrent Live is a powerful new web-based live streaming technology. Designed to eliminate barriers to broadcast, Live is an entirely new protocol, designed to deliver high quality video to large audiences - with significant reduction in infrastructure cost and network delays.

http://live.bittorrent.com/

Its not open yet, let see :)

Tamarra answered 23/2, 2014 at 7:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.