views:

750

answers:

3

I'm going to be building an application within the next six months that will be functioning as a 2-way video-conferencing system, as well as sharing some other data back and forth. I'll probably be using some sort of relatively expensive USB webcam, and am aware of the USB Video Class Device standard, which seems to the way to go.

Now, what can I use to program against that (or some other direction)? OS is not that important as it is not decided (will choose to fit overall needs), nor is language. Network will be VPN, worst case 256kbps symmetrical. Ideally it would handle encoding and compression too, but basically I'm just looking for some sort of starting point to begin research (have just found TAPI and H.323 so far, not sure of best way to program them).

+1  A: 

with gnome, you have ekiga. You can cross compile it for win32 too. It uses OPAL (Open Phone Abstraction Library) underneath. Maybe the tool itself will suit your needs, otherwise you can adapt it (OSS) or you can only keep low level API

PW
A: 

I agree with PW.

  • OPAL is an excellent choice.
  • It supports audio and video devices
  • It compiles on windows, linux, and a few others

Also - I recommend using the SIP protocol (as opposed to H323) - You don't need to use Ekiga. Ekiga is a front-end to OPAL. You can take a look at the OPAL samples, and build up from those.

DanJ
A: 

I don't recommend usage of H.323 at all to build new applications, especially user oriented. I'd recommend SIP because of much more simple and cleaner signaling / negotiations e.t.c.

From the other point of view I don't recommend to use OPAL if you're building something with more then 5 calls density. This is because of number of architecture solutions placed there (thread management with some race conditions, very complex containers management with lazy copying which actually makes things much more dangerous and so on). This is because of OpenH323 legacy approach (indeed ptlib library which was used for OpenH323).

Maybe something was changed from the days I had headache with OpenH323 and early Opal but I don't think something basic.

What about take a look on FreeSwitch platform? People say it is much more better designed.

Roman Nikitchenko