Hy,
I'm Khyrul Bashar, 4th year CSE student from Bangladesh. I've participated
successfully in GSoC-2015. I've coded the PDFDebuuger app of PDFBox project
in apache foundation.
This year I hope to code Openmeetigns-550. I find it an interesting problem
but to solve available documentation resources is almost none like the
issue says "there is hardly any documentation on that available in the
internet". So far I've build the OpenMeetings source code and gone through
the source code in brief.
I'm trying to understand how the Openmeetings conference live streaming
works. This is I've understood so far, in client side flash 'publish' the
media and in server side that other clients in same scope is made aware
about the video. ScopeApplicationAdapter class which has extended
ApplicationAdapter class of Red5 gets notified on a new video stream in
'streamPublishStart' method. And from there Openmmetings messages other
concerned clients via their 'Connection'. In flash client side upon
receving the message the video is playback. All the necessary url, port are
stored in 'FlexGlobals.topLevelApplication', One thing I don't understand
how "FlexGlobals.topLevelApplication" data are populated in the first
place. Pardon me if it's trivial,  I've read the ActionScript code today
for the first time.
Now my understanding of the issue is, we have to implement a way so the
video published by the client is available in three resolution (low,
medium, high) to other clients in the same room. As red5 takes care of
handling the live streaming itself(it's my understanding), to make any
versions of the video but original available we need  to intervene in the
middle. e.g. like recording we add stream listener and from there data is
pulled using 'StreamPacket'. From this, we make an input for an FFmpeg
command which gives us transcoded videos as our requirement. Then those
outputs are relayed to other clients according to their demand.
I'm concerned about this approach as there is a real chance for latency as
one more step is added in the middle. Again as for the last three days, I
spent most of the time just to understand red5 and yet not really confident
(thanks to red5 documentations!), I haven't really chance to look at FFmpeg
workings, so I'm not sure, how the data received from the client is made
available to FFmpeg to transcode. I would appreciate some guidance here.
Please feel free to correct my understanding of the problem and application
architecture.

Thanks
Khyrul Bashar

PS: Why Red5 documentations are so rare? I'm not complaining just curious.
Red5 seems a decent media server used by many e.g. facebook.

Reply via email to