views:

726

answers:

2

I'm looking for the best possible solution which will allow me to incorporate live video/audio conference between 2 users(only 2 at this point) into a flash gaming platform. The video chat is not just an extra feature, it's the main one.

I'm mainly looking at open source implementations or something I'll be able to implement myself, but will consider commercial products if they are exactly what I need.

Here are a few things I've looked at, but so far, I didn't find any of them good enough:

  1. Flash player 10's P2P capabilities sound promising, but I am aware of the fact that Adobe has not release any information on the RTMFP protocol and that there is no commercial server which supports it at this point.

  2. Stream all the video/audio live through a flash server (not p2p), but from my personal experience you don't get a smooth conversation.
    I think TokBox uses this method

  3. Java applets are a possible solution too (to perform p2p), but I don't think it will be a nice and elegant solution to combine them in the game at this point (and requires the user to authorize them). BTW, I couldn't find any useful implementations. So, If you know of any, i'll look into them.

  4. Google Gmail Video Chat uses a custom (and proprietary) browser plug-in which does the p2p and streams the video/audio into the flash player. This is a possible solution, but I rather not implement the entire p2p protocol stack + browser plug-in at this stage and concentrate on other aspect of the game itself. I think they are using XMPP based protocol similar to Jingle and they've release a Jingle librarby but without the video confrencing implementation.

  5. EDIT: In response to Branden:
    I am aware of Adobe Stratus. Stratus is a beta, hosted rendezvous service that aids establishing communications between Flash Player endpoints (RTMFP server).
    This current release of the Stratus is prerelease and is designed for evaluation purposes only. The service is not final.
    There is no guarantee that the service will continue to exist in the future or any information about the future cost.
    That's why I don't think it can be used as a commercial solution. At least not yet.

I'd appreciate your suggestions and advice. thanks!

+2  A: 
  1. The server in question is currently called Stratus. You can find out more about it at Adobe Labs.
  2. You can absolutely get smooth streaming with a server-based solution with Flash, but you have to have enough bandwidth to support all of the streams (4 streams for a two person conversation - 2 up and to down). There are a few options here, but the two best are probably Adobe's Flash Media Interactive Server and the opensource (and quite awesome) Red5.
  3. I agree that an applet-based solution would be inelegant, but it may be the only real way to get p2p video at this time.
  4. Jingle is very cool, but as you mentioned the open source bits don't support video yet. I don't think re-implementing it is a really viable solution only because of the level of effort required.
Branden Hall
Branden, thanks for your reply1. See edit in regards to Stratus2. I haven't experimented with Red5, as I was looking for a p2p solution. I am aware of it and am considering using it or another Flash Socket server that allows flash Streaming like ElectroServer
dtroy
In my experience ElectroServer scaled up really well and did a great job with data, but it had some issues with video streams - but this was about a year ago. Red5 ended up being the solution I went with. We didn't need it's origin/edge-based setup for our project, but I hear it can be used to scale things up quite well.
Branden Hall
+1  A: 

Adobe's LiveCycle Collaboration Service is a commercial implementation of Stratus. You pay on a per use basis.

Nathan Hurst