[ejabberd] RTMP video and audio with ejabberd

Pablo Platt pablo.platt at yahoo.com
Tue Jun 17 04:00:58 MSD 2008

RTMP is the low level protocol used in Flash to stream video.
red5 is an open source java server that use this protocol to stream video, enable video conference... http://osflash.org/red5
erlyvideo is an erlang server that I suppose to have the same functionality as red5
but it is not ready and I'm not sure when it is suppose to be stable http://code.google.com/p/erlyvideo/
OpenFire has a red5 plugin. The XMPP server handle the handshaking and red5 handle the RTMP connections and streaming.
I think that ejabberd being a powerful XMPP server probably have most of red5 functionality 
except for the actual RTMP streams functionality.
Ejabberd module for handling RTMP will be fantastic.
A user will create a new type of pubsub node for live streaming through XMPP and broadcast to it using Flash.
Other users will be able to subscribe to this node using XMPP and get the live stream using Flash.
The module will parse the RTMP packets and broadcast it to all the subscribed users.
I thought that maybe mod_proxy65 combined with pubsub and the RTMP parsing from erlyvideo could be a start.
I'll appreciate your comments.

----- Original Message ----
From: Badlop <badlop at gmail.com>
To: ejabberd at jabber.ru
Sent: Tuesday, June 17, 2008 12:53:35 AM
Subject: Re: [ejabberd] RTMP video and audio with ejabberd

On Mon, Jun 16, 2008 at 1:47 AM, Pablo Platt <pablo.platt at yahoo.com> wrote:
> I'll use red5 docs about the RTMP protocol
> http://osflash.org/documentation/rtmp

Disclaimer: I read about RTMP for the first time 5 minutes ago,
so maybe I didn't understood correctly the topic
and my tips are nonsense.

> I need to:
> - Create the handshake between two ejabberd users..
> - Receive the RTMP message from user A, process it, send a response to user
> A or pass an RTMP stream to user B
> Is there a module that can help me start?

Check mod_echo.erl. This ejabberd module (included in ejabberd, but
disabled by default) tells ejabberd that it will handle any XMPP
stanzas that users send to the JID "echo.example.org" [1]. When the
module receives an XMPP stanza from User1, the module simply sends
again the same stanza to User1 [2].

> Is it something that can be part of ejabberd or do you think it  is a huge
> project that has to be separate?

Well, if the only features that you need to implement is 'create
handshake, analyze stanzas and send a pair of XMPP stanzas', you can
do this with an ejabberd module.

If it's something more complex, then I don't know.

[1] ejabberd_router:register_route(MyHost),
[2] ejabberd_router:route(To, From, Packet2),
ejabberd mailing list
ejabberd at jabber.ru

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jabber.ru/pipermail/ejabberd/attachments/20080616/fb835310/attachment.htm 

More information about the ejabberd mailing list