June 2012


Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sean Luke <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Wed, 6 Jun 2012 14:12:06 -0400
text/plain (69 lines)
About JMF.

JMF is an abandoned Sun project for generating and viewing media of all kinds, but primarily video.  Rather than produce Java versions of various video codecs, Sun decided to go the cheapo route and rely on "performance packs" -- their term for wrappers over native operating-system-specific codecs.  This was a dumb decision, since it wasn't portable in any way, and you had to rely on JMF being installed system-wide on your computer.

So anyway.  The jmf.jar file that MASON uses by default (see the libraries on the MASON website) has no "performance packs" at all.  It's pure Java, which means it can only write out with a single codec: Motion JPEG.  Motion JPEG is little more than a stream of JPEG images, and as you might imagine, it generates gigantic video files.

This is easily fixed though: just generate the movie, then load it into a decent video program (Quicktime or iMovie will do on the Mac, I can't speak to Windows) and save it out again under a good codec.  I suggest H.264, though Apple Animation makes better files in some situations.

That's the first problem.  The second problem is that JMF generates Quicktime wrappers with corrupted format description strings.  This is also easily dealt with in the same way: load into Quicktime or iMovie or whatnot and save back out again under a different codec.

Because JMF is abandonware, you should never expect these to get fixed.  And there is no Java library I am aware of which can replace JMF realistically.  MASON, NetLogo, Processing, and Repast all have this issue.  But these are minor bugs that are easily worked around -- pump out the movie, then resave it as a different codec.

I'd suggest against stuff like CamStudio (or Snapz Pro on the Mac) because it doesn't sync with the actual frame rate of the simulation, but instead relies on a frame rate tied to real-time video.  That can't be good.

I added that note to the movie generation screen hoping it'd be helpful, but it sounds like it's just scaring people off.  Any suggestions about how to change the text?


On Jun 6, 2012, at 12:12 PM, John McManus wrote:

> I teach courses using Mason and Eclipse to students using a verity of
> computers and operating systems. This year, we all had this problem. Some
> fixed it with auto-installs of Java3D. Others had to import Java3D jars.
> Some had to do both. One student imported a missing file directly into her
> Java installation. I suggest trying the auto-install and, if necessary,
> loading the jars. We also did loaded complete jars for JFreeChart (might as
> well -- they add to our capabilities). 
> The JMF bugs with the media classes will remain, however. JMF auto-installs
> in some systems but not others. You can use the jar approach for this.
> However, Mason now has a pop-up note that a bug in JMF prevents easy
> creation of QuickTime files. I suggest ignoring those errors and use
> something like  the free CamStudio for making films, though I have not
> tested this.
> These are all very minor issues given the superb advantages provided by
> Mason.
> Cheers!
> John McManus 
> -----Original Message-----
> From: MASON Multiagent Simulation Toolkit
> [mailto:[log in to unmask]] On Behalf Of Axel Kowald
> Sent: Wednesday, June 06, 2012 10:53 AM
> To: [log in to unmask]
> Subject: Not all classes loaded, due to error: probably no Java3D
> Hello everybody,
> I installed MASON 16 on my win7 32bit laptop and the simulation that I
> develop runs without any errors. Now I installed MASON also on my win7 64
> bit machine and I get the error "Not all classes loaded, due to error:
> probably no Java3D".
> My simulation runs without problems (probably because I don't use any 3D
> stuff), so it is more a kind of annoying warning. It is generated when I
> create a new Console object, but the point is that the same
> java3d-1_5_1-windows-i586.exe is installed on both machines. So why should I
> get the warning only on the 64 bit machine?  Is there a special version for
> 64bit?
> Btw., I'm using the mason.jar file together with Eclipse to develop my
> simulation.
> Axel