JScrCap screen capture utility for both FMS and Wowza Media Server

I have been evaluating JScrCap for a while now and finally i got something to write about. I got it working with both FMS and Wowza.  There are few pros and cons I am detailing below in the article.

Quality and memory usage is pretty good compare to the VH Capture which, we (flash media community) were used to use for screen-sharing applications.

You just have to put the JScrCap bundle on any web-server and use the JScrCap as an Applet in html page to start with. Just call the web page and it will prompt the client that there is an applet you want to run it or not. As soon as user clicks the run he is ready to share his screen through Flash media server or Wowza Media server.

FMS (Flash Media Server)

  1. You can’t use the default code i.e. SVC1 and also free codec used for screencapture with JScrCap utility as FMS doesn’t recognize this codec. Actually FMS  drops connection after first frame. Access log shows 419 x-status code, which means “License to receive screen sharing video failed”See more info or feedback from Flash community as Steafen puts in his blog.
  2. You can only use H264 codec for screencapture which does have licensing limitations.
  3. Using H264 you can’t reocrd flv file on server you can only create mp4 files. So in case you want to use FMS for screensharing using JScrCap and want to record the stream on server as well you have to make sure you record the incoming stream as mp4 stream not flv. Following is the error i see in log file if I try to record the h264 data as flv “2009-07-09 15:07:30 7180 (w)2611179 Warning from libflv.dll: Recording H264 to FLV is unsupported, tried in FLV :
    F:\RnD\FlashCom\FlashComm Applications\livestreamrecord\streams\_definst_\livestream.flv.
    2009-07-09 15:09:03 7180 (e)2601163 Failed to record F:\RnD\FlashCom\FlashComm Applications\livestreamrecord\streams\_definst_\livestream, no space left on device -“

  4. You can record metadata in mp4 file using FMS.

Wowza Media Server

  1. You can use both codec i.e. default one SVC1 or H264 for screencapture.
  2. You can record flv or mp4 files using h264 codec in Wowza.
  3. Wowza doesn’t record data in mp4 stream. So if you want to access data across in recorded stream make sure you only record the stream as flv.
  4. JScrCap sent mouse coordinates data as onMouseData so in case you are using Wowza with JScrCap you have to listen on onMouseData on Netstream object. This was an update Vladimir done recently on request as earlier the way data was being sent across using JScrCap was only recognized by FMS not Wowza. It was pointed to me by Charlie that the wowza doesn’t record the metadata the way JScrCap is sending so he suggested the way it should be and thankfully Vladimir did it very quickly.
  5. The other major benefit of using Wowza is that you can use EC2 instance of wowza which has very less cost compared to the upfront cost you have to pay to get FMS.

I tested it on Windows and Mac and it worked fine. I think any user’s platform which will be able to run java applet through JVM etc. can have screensharing working through his system.

The other important thing I noticed in JScrcap notes is that SVC1 – works on all platforms, H264 – works only on Windows and MacOSX. So as FMS can only interpret h264 stream not SVC1  that means we wont be able to use screensharing on Linux machines with FMS we have to use Wowza there as it does recognize SVC1 compressed stream.

Please post your views regarding this article or if there is anything missing I can update it here.

Advertisements

46 thoughts on “JScrCap screen capture utility for both FMS and Wowza Media Server

  1. Hi,
    Thank you very much, this helps a lot.

    I have some questions:
    JScrCap acts as a webcam, like VHScrCap?

    In other words: How do I call JScrCap inside my app? It’s like invoking VHScrCap?

    • JScrCap doesn’t act as a webcam as VHScrCap does. It’s a java applet which streams your screen on an rtmp connection you specify to applet through html page or flash page and pass on to java applet through javascript. You will see the html page containing applet in the JScrcap kit mentioned above.
      You have to invoke applet residing on html page which in turn maybe containing your flash application as well. Java applet’s commands can be called through javascript. So it can be anything like you give button on html page or it can be a flash button residing in your flash application.

  2. Have you tried this out with Red5? I can’t seem to view the stream when I publish – it appears to connect, but nothing ever plays. (Yes, I tried h264 instead of svc1).

    • Hi Todd sorry didn’t tried it with Red5. I will see if i can get some info for you. Will update that if I get any information regarding that.

  3. That’s nice to know Todd :). Will surely try Red5 someday. Didn’t give it a serious shot so far.

  4. Hi,

    I am about to purchase a wowza server, just concerned over something, in the demos the latency time and the black horizontal lines. Can anyone guide me on that? Are those due to the demo?

    Thanks,
    Muhammad Umair

    • Black horizontal lines are just because of demo version of Jscrcap. Latency is not because of being it a demo version. Just try out different settings on SVC1 keeping bitrate above 100000, see if that helps

      • Hi, I am trying the JScrCap, the latency when i try it within my LAN is absolutely low almost 2 to 3 secs, and when i try using the EC2 instance or similar service over the internet, the latency goes to 10 sec, 15 secs and 20 secs, even though I have increased the bitrate to over 2000000 and the bandwidth at my end is upto 2Mbps leased line.

        Has anyone got the same problem, or knows what exactly is going wrong here.

  5. Hi,

    I noticed that the jscrcap doesnt show the mouse pointer, when streaming the desktop.

    Does any body knows a way with which the jscrcap also shows the mouse pointer when streaming the desktop?

    Thanks

    • Jscrcap doesn’t relay the mouse pointer it only relay the screen captures. But it does send mouse pointers on each frame which you can capture. You can put onMouseData handler like onMetaData.

      Below is the code snippet for both meta data handler and mouse data handler for AS2, nsPlay is the stream on which captured screen is being played:

      nsPlay.onMetaData = function(infoObject:Object){
      for (var propName in infoObject){
      txtLog.text += propName + ” : ” + infoObject[propName] +”\r”;
      }
      }
      nsPlay.onMouseData = function(infoObject:Object){
      for (var propName in infoObject){
      txtLog.text += propName + ” : ” + infoObject[propName] +”\r”;
      }
      }

      Thanks.
      Vivek.

    • Just add mousedata handler as you will do normally for metadata handler on receiving stream.
      metaDataObj = new Object();
      ns = new NetStream(nc);
      ns.client = metaDataObj;
      metaDataObj.onMetaData = metaDataHandler; //listen to netstream metadata
      metaDataObj.onMouseData = mouseDataHandler; //listen to netstream mousedata event.

      And then you can write methods to handle data coming as a metadata or mousedata like:

      private function metaDataHandler(infoObject:Object):void {
      for (var propName:String in infoObject){
      trace("property name: "+ propName +" property value:- "+infoObject[propName])
      }
      }

      private function mouseDataHandler(infoObject:Object):void {
      for (var propName:String in infoObject){
      trace("property name: "+ propName +" property value:- "+infoObject[propName])
      }
      }

      In above mouseDataHandler and metaDataHandler you will get both properties name and their values. You can tweak them according to your requirement.

      Thanks,
      Vivek.

    • I have given the link to download a free copy of jscrcap in my blog. You can download by clicking there. But i am not the owner of Jscrcap so I can’t send you one :).

  6. About Jscrcap licensing, if anyone is interested here is the answer from Spiltmedialabs to my question regarding the purchase of a license :

    Hmelyoff’s Labs is the original author of Java Screen Capture toolkit. Due to a recent merger with SplitMedia, Inc. We have generally stopped license sale to new clients before we have repackaged components, established new license- and service level agreements in addition to updating documentation.- This is a process that we do not expect to complete before early January 2010.

    I do understand if this time schedule does not suit your requirements, so you may submit a project description to us and we will try to provide you with licensing terms as soon as possible.

    I may add that we are only able to discuss licensing terms for a non-source code commercial license at this time. Subject to certain restrictions contained in the license you may, with the said license, use the toolkit as part of your custom non-developer product, but may not distribute applet as component software with access to API.

  7. I have failed on replaying mp4 or f4v files saved on Flash Media Server. Even I have used tools like Adobe F4V Post Processor for fix Atoom data with no success (error -14 no valid data tracks in file)
    viveklakhanpal did you success in replaying saved files on FMS? Could be my fail because I’m using the free demo (i get the horizontal lines also)

    Jorge

    • If I can remember I was able to record and playback the mp4 file, have you set codec option to h264?. I have to look back into it again. Regarding horizontal lines it’s because of demo.

      Wowza work great for both flv and mp4 and playback files nicely with svc and h264.

      Vivek.

  8. Hello Vivek,

    we are trying to contact Split media labs to try/buy JScrCap SDK. But, there seems to be no response from them. Any ideas?

    Thanks, Kamal

    • Hi Kamal,

      Last time I heard from them. They have it in private beta. Not sure what approach they are taking to deliver it to the market not in touch with them for some time now. Sorry.

      Vivek

  9. Hello Vivek.
    Thanks for such an fabulous post.
    For my project I have installed VHScrCap and also screen streaming is done using FMS and Flash Player.
    Though I am not storing the stream right now.

    Now my question is I don’t want end user to install the driver (i.e. VHScrCap.exe)
    because many of them will be using MAC also.

    So I would like to go with Applet approach.
    But the issue is I am not able to get how the applet will work with screen capture driver ? Means do I need to install driver (EXE) even if I want to use Applet approach?

    Means I don’t want to ask for the user to install the EXE first and then try screen sharing 😦

    So any idea or another better approach?

    • Hi Sid,

      Actually the company who acquired Jscrcap from hmelyoff.com has put it off the web and it’s not more available openly. So as of now you have to look into adobe livecycle approach or maybe something else which can better suit your requirement.

      Vivek

  10. Ok Vivek. Thank you very much.

    Anyways plz keep updating whatever this company decides about Jscrcap driver and related thing.
    And atleast paste the URL of ur that (related to Jscrcap update) blog over here so that I can be in touch.

    And also mention if u come to know about any other way for screen sharing online.
    I will be watching this post regularly for ur updates.

    Anyways thank u very much.

    • It’s no more available for download. This product has been acquired by other company and since then there is no update on it.

    • Earlier it was more of a problem at flash player end but recently flash player has released update using which you can record H.264 profile videos as H264 allows you to do high resolution streaming so it seems more doable now then in the past. Regarding your query how you can do your screen live streaming the one standard solution right now available is Adobe LiveCycle you can explore that. Other then that the company acquired JScrCap tool is SplitmediaLabs you can checkout their website for more details regarding if they have anything suiting your requirements.

Comments are closed.