candy-chat / candy-plugins

Official plugin repository for Candy.
http://candy-chat.github.com/candy
MIT License
111 stars 72 forks source link

Audio & Video conferencing, 1 on 1, 1 on many or multiple on X #12

Open gmax21 opened 12 years ago

gmax21 commented 12 years ago

Not sure about the logistics of this but support for audio and video conferencing would be cool. Especially if you could limit it to specific groups/individuals.

It would open up the possibility to use the chat for one on one tutorials, or one on many online lectures, demonstrations, live web TV even having multiple cams broadcast to many (all room participants). Could even use used for enhanced social network or smutty dating websites. The possibilities and uses for this sort of plugin would be huge.

Perhaps it would need some assistance from Red5, Wowzer or similar. (Preferably open source :-)

I know its possible from the Inspired work on the OpenFire extension: http://code.google.com/p/inspired-social/ This is what they claim to use within their tool bar chat:

XMPP Webclient (competitor to Candy) SIP Webphone (http://www.phono.com) SIP Audio Conference Bridge (red5-voicebridge) RTMFP Video/Audio Conferencing (redfire) RTMP Screen Share (red5-screenshare) Embedded RTMP Server (Milenia Grafter 64K RTMP Server)

Of course there are other options.

This would be an amazing addition! :-)

mweibel commented 12 years ago

Hi gmax21,

Yes, thats something we definitively want to do. We already built basic audio support in a private project using http://phono.com/ and it works pretty good already. (Only 1:1 atm but could be improved with m:n) Didn't have time yet to release it publicly but I'll discuss that with patrick.

Regarding video conferencing: That's something not possible until now. Mozilla (https://github.com/mozilla/rainbow) & Chrome are implementing such a specification at the moment but it's not stable yet. See also http://www.webrtc.org/ for more informations.

It's definitively a very interesting subject and I will invest some more work into it as soon as I got some time..

pstadler commented 12 years ago

Hi gmax21,

our Phono implementation is far from being stable. I don't know yet, if we will release this any time soon. However we're really keen on messing around with WebRTC, as soon as it's better integrated in modern browsers :-)

gmax21 commented 12 years ago

Thanks guys for getting back to me.

I have been following the improvements of browsers and have to say I'm disappointed at the slow progress over the years. Key features in HTML5 video and audio still lack streaming abilities for simple things like shoutcast meaning if you want to broaden the scope of users without the need to download files or install programs beyond that of the browsers default install then you need to rely on Flash.

I like how http://tinychat.com/ perform their audio and video. Though they use Flash to achieve that. I don't mind flash, thats what our previous proprietary software was based on. I would just rather not use it unless there is no other option.

Thanks again for getting back to me, I look forward to seeing progress with this. Would be exciting to see video and audio. :-)

mweibel commented 12 years ago

Yeah I don't think we're doing something with flash or similar technologies. I'm really excited that the whatwg and browser vendors are developing a standard for it. I think it will gain more and more traction now because they seem to know that this is important. At least Google will push it, because I think they want to use it for Google+ instead of their Flash based (or whatever) solution atm.

I'd love to make some progress but I'm not even able to install the rainbow extension atm .. so maybe it needs some time ;)

mweibel commented 12 years ago

Btw. I'm currently implementing the basics for this feature (using webrtc & the jingle Protocol of XMPP) in my own branch of strophejs-plugins: https://github.com/mweibel/strophejs-plugins/tree/jingle/jingle

It needs a lot of work and is far from fully implemented but if anyone wants to help me - I'd appreciate that :)

gmax21 commented 12 years ago

Thats excellent. We have a new born (23rd Dec) so I probably won't be back to work until Jan. I'll try and give it a test then.

Very exciting stuff!! :-)

I took a quick, we're currently using using the OpenFire XMPP (which I like for the web interface), not played with their Jingle node yet. Don't suppose you have?

I also played with Tigase on a separate server and next plan to have a play with ejabberd. Do you have a preference?

I presume this is just dropped in like other plugins for Candy?

Thanks again, I look forward to having a good play! :-)

mweibel commented 12 years ago

Congratulations! :)

Well about trying it: It's not really in the stage where one can try it. At the moment it's just doing base work like negotiating the video/audio channel (it will be peer2peer communication) and the codecs which will be used.

Basicly it should be independent from the server you use, you just need a STUN/TURN server for traversing the NAT (e.g. ejabberd already has this feature built-in but I think there should be also such servers independently from XMPP).

In the end I hope I can write a plugin for Candy which uses the base work I'm doing now.

Regarding the servers: I used Openfire but dropped it because of memory/performance issues and I'm using now ejabberd because it's the one everyone recommends (and it's really great - just the documentation is a little bit awful). I don't know Tigase but there are another two which appeared on the market: Prosody and Vines (early dev. stage).

lkraav commented 10 years ago

You should take a look at Mozilla's http://togetherjs.com which could give you WebRTC Audio in Candy immediately.