My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
  Advanced search   Search tips   Subscriptions
Issue 720: Desktop Sharing Optimization using xuggler
3 people starred this issue and may be notified of changes. Back to list
Status:  Accepted

  • Only users with Commit permission may comment.

Sign in to add a comment
Project Member Reported by, May 4, 2009

-> Step 1 : Implementing xuggler conversion - colelcting images from 
jrdesktop, converting them into flv

-> Step 2 : Rebroadcasting vid into red5 scope

-> Step 3 : (optional) Finding and implementing solution to stream 
directly from client 

May 29, 2009
Project Member #1

brief shoutout bout the standing of my optimization efforts : 

Regarding the fact of being able to deliver openMeetings over the webcloud, there 
should be multiple possibilities of screensharing, to cope with any firewall, 
bandwidth and network issues.

-> the current solutions (transferring jpegs via Servletcall and showing them into 
whiteboard) are useful in low-bandwidth areas, but offer low quality and performance.

-> there are two other options, i evaluated supported by sebastian and both resulted 
in nice results  :

a) optimized ServletCall Sharer

- taking ScreenCaptures within WebstartClient
- Splitting each Image into lowered rectangels
- Evaluating the changed rectangels on client side (comparing RGB int[])
- Zipping Changed Rectangels via Huffmann
- Sending only changes rectangels to RED5 (ServletCall)
- Rebuilding Image on serverside
- Threadbased converion of the images into SWF (java2swf) or FLV (xuggle)

-> The resulting vids are quit nice and have a average framerate of 5-10 
videopictures in my tests (intranet...)

-> whats left to do for this solution would be a rebroadcast of the generated movies
into red5scope and notification of the laszloclients.

b) JMF based RTP Streamer
- Taking Screenshots within Webstart Client (java.awt)
- Scaling Images to desired Videoresolution (-> e.g. 1024x768) to receive a 
normalized dimension
- opening RTP Stream to desired IPs (unicast/multicast)

-> the result is a VNC like ScreenGrabber with high resolution and really acceptable 

-> the JMF Framework would also offer the possibility to record parallel and export 
the Screensharing session into a Movie format.

-> high scalability on clientside (JpegQuality, Videoresolution, ...)

-> i tested this solution local and over network bridge with best results so far 
(using JMF studio as faked RTP Receiver)

-> whats left to do for this solution : 
- building small GUI for stopping/starting sharing, setting quality and resolution
- implementing the RTP2RTMP (Xuggle) Solution into openMeetings
- Notifying laszloclients to start the stream and receive the video live in 
whiteboard/new area....

i plan to make the new solution configurable within OM, so there exists a sharing 
solution for each eventuality (the RTP Streamer colud cause problems due to 
firewalls blocking UDP Ports...)

see ya

May 29, 2009
Project Member #2
that sounds really fantastic!
I also prefer that we try to make both possibilities available so that we have an
option for different environments.
Jun 15, 2009
Project Member #3

i just commited the basic code for the new streamer, containing a full functional 
Sharer part (without GUI at the moment) and a test - applet showing the result...

at the moment, theres no interaction with openmeetings, so u can test this 
solution "standalone" : 

1.) Alter -> destinationaddress (also multicast, e.g.
2.) Start Executable (commandline, e.g.)
3.) Deploy rtpapplet and alter the IP address
4.) watch result

at the moment, u achieve besst quality with a screenresolution of 1024 x 768, higher 
resolutions are scaled down to 1024 x 768.

-> the Framerate for the resulting MJPEG Stream is set to 20 at the moment
-> highest JPEG Quality at the moment (1f)

short roadmap : 

Client : 

- SwingGui for Start/Stop/JPEG Quality/Framerate/Screen Dimensions
- Velocity template for jnlp download

Server : 

- on "Start ScreenSharing" within conference, a Thread gets started, receiving the 
RTP Stream from Moderator and re-broadcasting it to known conference participants

- Client notification for participants (-> opening browserwindow with RTP Receiver 
Applet) using velocity template for connection data

...unfortunately, theres no possibility at the moment to convert the incoming RTP 
Stream into RTMP ( we tried to use xuggle, but the underlying ffmpeg is not able to 
handle JPEG/RTP Streams at the moment, i opened a ffmpeg issue, so maybe we can use 
this in future), dependent on that fact, we cannot show the shared screen within 
whiteboard directly....

see ya


Jun 15, 2009
Project Member #4
ok! I will try to add my bits to the code.

You also need some kind of event-notifications from the Server to the Applet to start
/ stop the stream.

I slightly modified the location of some files and add the jmf.jar into lib/jmf and
to the classpath sothat you can build the project in Eclipse without an error beeing
Jun 15, 2009
Project Member #5

the jmf.jar is also requiered for the applet - maybe the archive tag has to be 
changed within test.html to download the jar when calling the applet...

btw : to test the sharer, it is also possible to use JMstudio (-> openRTP Session)

see ya

Jun 30, 2009
Project Member #6
(No comment was entered for this change.)
Labels: Milestone-Release0.9
Aug 26, 2009
What's the FFmpeg issue that you filed (the link to FFmpeg roundup if you know it)?

- Art
Jan 31, 2012
Project Member #8
(No comment was entered for this change.)
Labels: Restrict-AddIssueComment-Commit
Jan 31, 2012
Project Member #9
OpenMeetings moves to Apache Foundation, update your bookmarks to the new project page:

New Issue tracker is located:

New Mailing Lists located at: 
Sign in to add a comment

Powered by Google Project Hosting