My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
for
  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
Owner:  i...@oliver-becherer.name

Restricted
  • Only users with Commit permission may comment.


Sign in to add a comment
 
Project Member Reported by i...@oliver-becherer.name, 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 i...@oliver-becherer.name
hola,

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 
performance.

-> 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

Smoeker
May 29, 2009
Project Member #2 seba.wag...@gmail.com
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...@oliver-becherer.name
hola,

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 Streamer.java -> destinationaddress (also multicast, e.g. 192.168.178.255)
2.) Start Executable Main.java (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

Smoeker

Jun 15, 2009
Project Member #4 seba.wag...@gmail.com
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
throwd.
Jun 15, 2009
Project Member #5 i...@oliver-becherer.name
hola,

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

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

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

http://incubator.apache.org/openmeetings/

New Issue tracker is located: https://issues.apache.org/jira/browse/OPENMEETINGS

New Mailing Lists located at: http://incubator.apache.org/openmeetings/mail-lists.html 
Sign in to add a comment

Powered by Google Project Hosting