Question

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!

Was it helpful?

Solution

  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.

OTHER TIPS

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

Well, I'm late to the party on this one, but Frozen Mountain (whom I work for) has a product out now called IceLink that'll do what you want. It'll use native WebRTC when the browser supports it, and fall back to a Java applet.

In response to the specific questions you asked:

  1. RTMFP: Yep, proprietary communications is no fun. Bummer that they haven't opened the spec.

  2. Non-P2P definitely takes a performance hit. Also, scalability becomes an issue.

  3. Java applets are the only way to get pure UDP ports when the browser doesn't have native WebRTC, which is the route we took.
  4. Custom plugins are rough, on multiple fronts, as you noted. Java applets aren't great, but at least it's not a whole download/install process :)

Hope that helps a little!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top