Redfire plugin for Spark ver 0.0.9

Ignite realtime communiity is happy to release the Redfire Spark plugin version 0.9

Changelog

  • Fixed: The screen sharing image does not scale down. When you resize the window smaller, the image should re-scale.
  • Fixed: When the connection ends, the remote window should close
  • Changed: Screen share default frame-rate is set at 15fps
  • Changed: When a video or screen share request is recieved, the user’s request buttons are disabled until pending request is accepted or rejected.

How to send a request to share video/audio or screen in chat or group chat

Start a normal chat or group chat

Share audio/video in chat or group chat (12 people max) by clicking on the red5 icon

Share all or part or your desktop screen in a chat or chat room by clicking on the picture icon next to the red5 icon

Image2.png

The other user(s) will receive a request to join audio/video or screenshare

Image1.png

Use the accept or decline buttons to accept or reject request. The red5 video and screen share buttons will be disabled until a choice is made.

How to upgrade your existing Redfire plugin for Spark,
  1. You should be using Redfire plugin for Openfire version 0.0.0.5 and above
  2. Quit Spark,
  3. Delete the redfire-plugin folder and redfire-plugin.jar file in your USER_HOME\Spark\plugins
  4. Download the new redfire-plugin.jar file from your Redfire home page
  5. Copy new redfire-plugin.jar to SPARK_HOME\plugins
  6. Restart Spark
Where can I download the plugin

Look for the file redfire-plugin.jar attached to this post.
redfire-plugin.jar (3807189 Bytes)

Hello Dele

I’m deploying Openfire and Spark in my company, and the last updates of the community were very helpful, almost everything is working, but right now I’m passing the following difficulty by opening a window to chat with video (redfire latest version of the plugin 0.0.5 to Openfire 3.7.0 and Spark 0.0.9), the window hangs and I can´t close, only closing the Spark process via the Windows task manager. I searched for old posts on the subject but found nothing, you’d have some clue of what might be causing this problem?

Thanks in advance.

Michaelh

Could you post the warn.log and error.log of Spark. What OS on the client? Windows? Also please confirm what version of Flash Player.

I can not do now because I’m not in the company, but tomorrow I’ll post the logs. The error is happening on Windows 7 x32 and x64 and Windows XP x32, I confirm the version of Flash too.

Thanks a lot!

Michaelh

Good Morning Dele !

The following information …

Flash Version is 10.3.181.26 …

errors.log from yesterday is :

20/06/2011 09:09:42 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 14:28:32 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 14:58:44 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 15:23:30 org.jivesoftware.spark.util.log.Log error

SEVERE: Error saving settings.

java.io.FileNotFoundException: C:\Users\michaelh\AppData\Roaming\Spark\spark.properties (A operação solicitada não pode ser executada em um arquivo com uma seção mapeada pelo usuário aberta)

at java.io.FileOutputStream.open(Native Method)

at java.io.FileOutputStream.(Unknown Source)

at java.io.FileOutputStream.(Unknown Source)

at org.jivesoftware.sparkimpl.settings.local.SettingsManager.saveSettings(Settings Manager.java:84)

at org.jivesoftware.spark.ui.ContactList.showEmptyGroups(ContactList.java:2032)

at org.jivesoftware.spark.ui.ContactList.addContactGroup(ContactList.java:1145)

at org.jivesoftware.spark.ui.ContactList.buildContactList(ContactList.java:602)

at org.jivesoftware.spark.ui.ContactList.loadContactList(ContactList.java:1801)

at org.jivesoftware.spark.ui.ContactList.access$1900(ContactList.java:112)

at org.jivesoftware.spark.ui.ContactList$25$1.run(ContactList.java:1788)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

20/06/2011 15:23:33 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 15:26:19 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 15:40:30 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 15:52:22 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 16:02:04 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 16:02:53 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

20/06/2011 16:03:09 org.jivesoftware.spark.util.log.Log error

SEVERE: Dictionary not found

and

warn.log from yesterday …

20/06/2011 09:09:12 org.jivesoftware.spark.util.log.Log warning

WARNING: Plugin Redfire for Spark has no -Tag, consider getting a newer Version

20/06/2011 09:09:42 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Properties-file does exist= C:\Users\michaelh\Spark\red5.properties

20/06/2011 09:09:42 org.jivesoftware.spark.util.log.Log warning

WARNING: Red-Info: Red5-servername from properties-file is= ecosv0227

20/06/2011 09:09:42 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-port from properties-file is= 7443

20/06/2011 09:09:42 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-protocol from properties-file is= https://

20/06/2011 09:33:23 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5ChatRoomDecorator: red5Button https://ecosv0227:7443/redfire/video/redfire_2way.html?you=michael.holtz&me=tiag o.alves&key=ac1a95f1

20/06/2011 09:33:23 org.jivesoftware.spark.util.log.Log warning

WARNING: BareBonesBrowserLaunch.openURL: https://ecosv0227:7443/redfire/video/redfire_2way.html?me=michael.holtz&you=tiag o.alves&key=ac1a95f1 tiago.alves@ecosv0227 windows 7

20/06/2011 14:28:09 org.jivesoftware.spark.util.log.Log warning

WARNING: Plugin Redfire for Spark has no -Tag, consider getting a newer Version

20/06/2011 14:28:32 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Properties-file does exist= C:\Users\michaelh\Spark\red5.properties

20/06/2011 14:28:32 org.jivesoftware.spark.util.log.Log warning

WARNING: Red-Info: Red5-servername from properties-file is= ecosv0227

20/06/2011 14:28:32 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-port from properties-file is= 7443

20/06/2011 14:28:32 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-protocol from properties-file is= https://

20/06/2011 14:33:15 org.jivesoftware.spark.util.log.Log warning

WARNING: RedfireExtension invite recieved conferencia.ecoverdi@ecosv0227/spark

20/06/2011 14:33:26 org.jivesoftware.spark.util.log.Log warning

WARNING: BareBonesBrowserLaunch.openURL: http://ecosv0227:7070/redfire/video/redfire_2way.html?you=conferencia.ecoverdi&m e=michael.holtz&key=f1fd6f37 Conferencia Ecoverdi windows 7

20/06/2011 14:58:28 org.jivesoftware.spark.util.log.Log warning

WARNING: Plugin Redfire for Spark has no -Tag, consider getting a newer Version

20/06/2011 14:58:44 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Properties-file does exist= C:\Users\michaelh\Spark\red5.properties

20/06/2011 14:58:44 org.jivesoftware.spark.util.log.Log warning

WARNING: Red-Info: Red5-servername from properties-file is= ecosv0227

20/06/2011 14:58:44 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-port from properties-file is= 7443

20/06/2011 14:58:44 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-protocol from properties-file is= https://

20/06/2011 15:11:32 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5ChatRoomDecorator: red5Button https://ecosv0227:7443/redfire/video/redfire_2way.html?you=michael.holtz&me=conf erencia.ecoverdi&key=1c3bbd68

20/06/2011 15:11:32 org.jivesoftware.spark.util.log.Log warning

WARNING: BareBonesBrowserLaunch.openURL: https://ecosv0227:7443/redfire/video/redfire_2way.html?me=michael.holtz&you=conf erencia.ecoverdi&key=1c3bbd68 conferencia.ecoverdi@ecosv0227 windows 7

20/06/2011 15:23:15 org.jivesoftware.spark.util.log.Log warning

WARNING: Plugin Redfire for Spark has no -Tag, consider getting a newer Version

20/06/2011 15:23:33 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Properties-file does exist= C:\Users\michaelh\Spark\red5.properties

20/06/2011 15:23:33 org.jivesoftware.spark.util.log.Log warning

WARNING: Red-Info: Red5-servername from properties-file is= ecosv0227

20/06/2011 15:23:33 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-port from properties-file is= 7443

20/06/2011 15:23:33 org.jivesoftware.spark.util.log.Log warning

WARNING: Red5-Info: Red5-protocol from properties-file is= https://

in the tests I did yesterday, the clients is windows 7 x64 and anothe computer with Windows XP x32.

Thanks !

good day to you

Michaelh

Sorry, I can’t see anything wrong

ok, no problem !

anyway thanks a lot for you time !

just one detail … on redfire test page, everything works fine … audio and video ! lol …

congrats for your work !

Michaelh

Hello Dele …

I have news

I changed the version of Spark to 2.5.8 and now is running fine.

without locking the chat window

cya

Michaelh

Dele

Thanks for your earlier response. We are still struggling with image quality while sharing a screen. The image looks as if it scaled wrong so that e.g. text is very hard to read. We tried with different screen resolutions and also sharing full screen or partial screen. We ran the receiving end in a browser (crhome) with the same result. I am wondering whether we are the only ones seeing this and what could be different.

Also, while sharing a screen the transmitting machine becomes fairly sluggish and also at the far end it is not very responsive. Bandwidth could play a role for the remote end, but the sluggishness at the transmitting end must have other reasons.

Thanks

–martin

I did my tests wth two PCs. Publisher running Windows XP (1GB) and the reciever running Windows 7 32bit with 2GB. I was able go full screen on viewer and when I double clicked to use remote control, response was not sluggish. Both machines have Java 1.6 update 22.

When you do a partial screen share, you should get very clear screen display in the viewer. I really don’t know why you are having a bad user experience.

Having said that, my testing was on a LAN.

Dele

This is on Windows 7 / 64bit with 4 GB RAM dual core CPU. We tried both LAN and Internet through NAT with the same result, using Spark 2.6.1 and OF 3.6.4. How can I see what version of Flash it uses? Is Flash embedded in the Spark plugin or does it use a browser Flash plugin? The receiving end is Chrome 12, so that should be fine. What else could have an impact on codec or image quality? We will continue testing.

–martin

If the reciever is Spark on a Windows PC, then it will recieve the prompt shown in the screenshot at the begining of this post and it will launch a native Java windows which embeds the IE browser control. If the reciever is NOT Spark or NOT a Windows PC, then a link will be recieved which launches the default browser for that PC. The Flash Player used will be determined by what is installed for the appropriate browser.

I don’t expect issues with Windows 64bit, but I did not test, so who knows

Ok, so for the receiving end and if Spark is used we got to make sure we have the latest Flash plugin for IE installed. How about the transmitting end using Spark? Does that use the IE Flash plugin as well to capture and encode the screen?

–martin

The sender is capturing the screens in pure Java running the in the same VM space as the Spark plugin as well as Spark itself. It does the screen encoding sends the packets through the RTMP or RTMFP connection. No Flash is involved in the transmission.

Dele

Thanks for the explanation - that helped. I think it is the aspect ratio that is wrong. We did the following test: At the receiving end we use Chrome and the browser window is made very wide but short. At the transmitting end we picked a partial screen area to be sent across that is narrow but long. The result at the receiving end is a completely distorted picture with the wrong aspect ratio.

The sluggishness gets a lot better if other applications are closed. We noticed that Spark requires quite a bit more memory when sharing a screen.

We also seem to have unpredicatable results with moving mouse control over. Sometimes double clicking works, sometimes not.

When I stop sharing at the transmitting end and then start again, the browser at the receiving end does not seem to automatically reload. I have to reload manually for it to pick back up.

–martin

Originally, I was capturing the screen every second and going to sleep. This was very CPU friendly, but produced a poor video user experience. In version 0.0.8, I modfied it to capture 30fps, but this was too CPU intensive affecting remote control so I reduced it to 15fps. In the next version, I will try and expose it as a parameter in the red5.properties file.

Maybe 15fps is still too CPU intensive?

I will look at the aspect ratio, but I suspect the issue maybe in the viewer as the publisher does not do any transformation. It just converts into a flash video and sends the co-ordinates, dimension and mouse postion as meta data over the RTMP connection. Try using the publisher and the generic RTMP client on the Redfire home page to view.

RTMP video streams uses a publish/subscribe model so even when the video stream publisher stops, the subscriber waits and resumes automatically. There is a short delay, but a publish notification is sent and the video resumes. My testing was limited, but I did see my screen share video resume.

The source code is all in[http://redfire.googlecode.com/svn/trunk/](http://redfire.googlecode.com/svn/trunk/)

Dele

Having the frame rate configurable would help. At least we could experiment with it a bit and possibly find out what is more optimal.

Re: Aspect ratio: It seems to me that if we e.g. share a screen reagion with let’s say 200 x 800 px and at the receiving end the browser happens to be opened in a window that is 1024 x 300 px, then the browser should apply scroll bars and show the image in the original aspect ratio the way it was recorded. That is not the case as on the receiving end the image is stretched to fit the current browser window and no scroll bars appear. --martin

Ok. I will add both feature requests to my todo list.