JMF/FOBS4JMF FramePositioningControl Problem

Hi everyone...
i'm really fed up with a bug.. i'm playing video file usinf jmf/fobs4jmf 4.1 on ubuntu 8.04 the problem i face is when i seek or skip using FramePositioningControl
... it skips alot of frames does not move to specified frame.. it works fine on windows...
heres output of a program i wrote
Fobs Java2DRenderer: stop
Resetting Thread[Loop thread: com.omnividea.media.parser.video.VideoTrack@1df5a8f,3,system]
Opening Thread[Loop thread: com.omnividea.media.parser.video.VideoTrack@1df5a8f,3,system]
599.067First Position: 0, 0 Duration: 599066
Frame Rate: 15
Setting position Thread[AWT-EventQueue-0,6,main]
New position request: 45.9214
Seeking pos: 45921 - Real: 44921000
mdb:466, lastbuf:0 skiping granule 0
mdb:466, lastbuf:0 skiping granule 1
mdb:478, lastbuf:397 skiping granule 0
Fobs Java2DRenderer: start
mdb:461, lastbuf:458 skiping granule 0
bits_left=189
bits_left=35
bits_left=-5
mdb:509, lastbuf:493 skiping granule 0
overread, skip -9 enddists: -3 -3
overread, skip -4 enddists: -2 -2
bits_left=178
mdb:474, lastbuf:461 skiping granule 0
overread, skip -6 enddists: -4 -4
mdb:503, lastbuf:486 skiping granule 0
bits_left=47
Please help
Edited by: Arsal on Feb 27, 2009 7:20 AM

Arsal wrote:
Ok fine i get the point but it is working fine on one system and not on another both Ubuntu 8.04 i dont know what i'm missing in the other system :(I'd reinstall everything on the system that doesn't work (and by everything, I mean JMF, FOBS, possibly Java, possibly your video codecs...) and make sure you're not having a permissions problem with any of the files...

Similar Messages

  • Jmf video fps problem

    Hi to all,
    I'm developing a program that takes frames from a video, which are currently working on a jmf player object, and display them with jogl in a GLJPanel. the video is 30 fps. But my display function is called 20 times per second. Therefore I'm loosing some of the frames and video cannot be seen smoothly. I guess that the problem is due to the jmf player's frame rate, because it is the only thing that triggers jogl display function. What I want to know is if there is a way of displaying a 30 fps jmf video by jogl bindings and if yes how? I'm taking the current frame and displaying it as a texture within the display function. Is it ok for my application?
    I will be glad if anyone can help me..Thank you very much.

    Two things you should know:
    1) You can't play ANYTHING in AE.  It's not an editing application, and it doesn't work like one... as in, "push the spacebar and video plays".  Nope.   You have to do a RAM Preview by hitting the zero key on the numeric keypad.
    2) You'll save yourself days of frustration and anger by learning the basics, which can be found here:
    Getting started with After Effects (CS4, CS5, CS5.5,  CS6, & CC)

  • JMF set up problem

    Hi,
    when i install JMF in my linux(RedHat 9), at the end of process, it showed those message :
    Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type VirtualBinding
    Warning: Cannot convert string "<Key>Home,_Key_Begin" to type VirtualBinding
    Warning: Cannot convert string "<Key>F1,_Key_Help" to type VirtualBinding
    Warning: Cannot convert string "Shift<Key>F10,_Key_Menu" to type VirtualBinding
    Warning: Cannot convert string "<Key>F10,Shift_Key_Menu" to type VirtualBinding
    Warning: Cannot convert string "<Key>KP_Enter,_Key_Execute" to type VirtualBinding
    Warning: Cannot convert string "Alt<Key>Return,Alt_Key_KP_Enter" to type VirtualBinding
    Warning: Cannot convert string "-tlc-song-medium-r-normal--*-140-*-*-c-*-gbk-0" to type FontStruct
    JavaSound Capture Supported = true
    JavaSoundAuto: Committed ok
    java.lang.Error: Can't open video card 0
    java.lang.Error: Can't open video card 1
    java.lang.Error: Can't open video card 2
    java.lang.Error: Can't open video card 3
    java.lang.Error: Can't open video card 4
    java.lang.Error: Can't open video card 5
    java.lang.Error: Can't open video card 6
    java.lang.Error: Can't open video card 7
    java.lang.Error: Can't open video card 8
    java.lang.Error: Can't open video card 9
    Does anyone know what they mean ? Will they cause program when i run my program ?
    Because when i run a program to playing a music ,
    java PlayMusicTest /tmp/music/test/music_test.mp3
    it showed these error message:
    Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type VirtualBinding
    Warning: Cannot convert string "<Key>Home,_Key_Begin" to type VirtualBinding
    Warning: Cannot convert string "<Key>F1,_Key_Help" to type VirtualBinding
    Warning: Cannot convert string "Shift<Key>F10,_Key_Menu" to type VirtualBinding
    Warning: Cannot convert string "<Key>F10,Shift_Key_Menu" to type VirtualBinding
    Warning: Cannot convert string "<Key>KP_Enter,_Key_Execute" to type VirtualBinding
    Warning: Cannot convert string "Alt<Key>Return,Alt_Key_KP_Enter" to type VirtualBinding
    Unable to handle format: mpeglayer3, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=32768 bits
    Failed to realize: com.sun.media.PlaybackEngine@6c347
    Error: Unable to realize com.sun.media.PlaybackEngine@6c347
    Any suggestion would be appreciate, THANK YOU!!

    This is still true ???
    Q: What media types does JMF 2.1.1 support?
    JMF 2.1.1 supports a wide array of media types, including
    * protocols: FILE, HTTP, FTP, RTP
    * audio: AIFF, AU, AVI, GSM, MIDI, MP2, MP3*, QT, RMF, WAV
    * video: AVI, MPEG-1, QT, H.261, H.263
    * other: HotMedia
    *MP3 is supported only on the Windows platform.
    For a complete set of formats, check out: http://java.sun.com/products/java-media/jmf/2.1.1/formats.html
    I use Slackware 10.2.
    I installed in my computer:
    JDK 5.0 Update 7
    JMF 2.1.1e
    JMF MP3 Plugin
    JMStudio plays my mp3 file but only for a little moment and suddenly #$#$%#$$%$rdksldjflkdsjarklaj runs to the end of this.
    Tested the same config in Windows and JMStudio gets to play the same music perfectly.
    Had the same trouble even converting the mp3 to wav.
    Tried to rip directly a song from cd to wav, the problem remains.
    mid archives works perfectly in JMStudio in Linux.
    In XMMS (player for linux) all the samples work perfectly.
    Any idea why ?
    extra info for linux users:
    to be able to open JMStudio I had to input the following command:
    java -Dawt.toolkit=sun.awt.motif.MToolkit JMStudio

  • JMF on PersonalJava problem

    Hi,
    I am using JMF cross-platform edition to write a mediaplayer program run in PPC using Jeode. It can play thw wav file. But it cannot show the GUI visual component. But it can in PC using Emulator. Or even in J2SE.
    How can I do?
    Also, I have a problem:
    Is all the visual component in JMF use AWT?

    hi,...regarding to your post you have suceeded to implement jmf cross platform. i've download it to my pc but i cant find any RegistriLib.java...where is it??
    i have running this project for months... i really need your reply,..thanks

  • JMF and Memory Problems

    I'm trying to read frames from a movie file, but the code I'm using keeps quite a bit of memory (about 600k). Can anyone please help me plug the leaks! The code below shows Java's memory usage at each file open/close. Please change the URL to point to an AVI or QuickTime file.
    Thanks!
    import java.awt.*;
    import java.awt.event.*;
    import javax.media.*;
    import javax.media.control.FramePositioningControl;
    import javax.media.control.FrameGrabbingControl;
    import javax.media.util.BufferToImage;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import java.lang.Runtime;
    public class JMFMemTest {
       public Player p;
       public FramePositioningControl fpc;
       public FrameGrabbingControl fgc;
       public MediaLocator ml;
       public Buffer frame;
       public Format format;
       public BufferToImage bti;
       public Image biFrame;
       public JMFMemTest(String s) {
            try{
            ml = new MediaLocator(s);
            p = Manager.createRealizedPlayer(ml);
            fpc = (FramePositioningControl) p.getControl("javax.media.control.FramePositioningControl");
            fgc = (FrameGrabbingControl) p.getControl("javax.media.control.FrameGrabbingControl");
            fpc.seek(0);
            frame = fgc.grabFrame();
            bti = new BufferToImage((VideoFormat)frame.getFormat());
            frame = null;
        ml = null;
            catch (Exception e) {
                 System.out.println(e.toString());
       public void close() {
            fpc = null;
            fgc = null;
            bti = null;
            ml = null;
            frame = null;
            biFrame = null;
            p.deallocate();
            p.close();
        //p.deallocate();
       public static void main(String args[]) {
            Runtime rt = Runtime.getRuntime();
            Image biFrame=null;
            JMFMemTest movie= null;
       for (int i=0;i<20;i++) {
            //change URL to point to a movie file
            movie = new JMFMemTest("file:/C:/movies/masks.avi");
            //display memory useage
            System.out.println(i+": " + (rt.totalMemory()-rt.freeMemory())/1048576.);
                 movie.fpc.seek(1);
                 movie.frame = movie.fgc.grabFrame();
                 movie.biFrame = movie.bti.createImage(movie.frame);
            movie.close();
            movie = null;
         //try to clean up
            System.gc();
       while (true) { // wait so user can read the output
       }

    You will have to monitor packets at both ends.
    RTP is always an even port number, and its matched with an RTCP odd number always 1 more than the RTP number.
    I would suspect that the VPN is changing the port numbers, example:
    VPN may retransmit the RTP to an odd port number say 2223, which will not work.
    VPN may retransmit the RTP 2222, and RTCP to 2243 which will not work.
    example RTP may be 22222, 3334, or 12346
    RTCP must then be 22223, 3335, or 12347
    Ethereal is your friend!!

  • JMF processor realisation problem

    Hey guys I'm trying to send an mp3 file over an RTP connection, using sample code I found on
    http://www.cs.odu.edu/~cs778/spring04/lectures/jmfsolutions/examplesindex.html# transmitaudio
    pretty much identical to videotransmit on sunsite.
    here are my inputs
    file:/C:/MyDownloads/ThroughTheNever.mp3
    127.0.0.1 22222
    and heres the output
    Audio transmitted as:
    dvi/rtp, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    Failed to build a graph for the given custom options.
    Failed to realize: com.sun.media.ProcessEngine@a4e2e3
    Cannot build a flow graph with the customized options:
    Unable to transcode format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 24000.0 frame rate, FrameSize=32768 bits
    to: dvi/rtp, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    outputting to: RAW/RTP
    Error: Unable to realize com.sun.media.ProcessEngine@a4e2e3
    Error : Couldn't realize processor
    So whats the problem?
    Someone told me that I have to add some *.dll files to PATH in order for the codec to work properly. Which ones do I add??????????. Does anybody know which files I should add or how I can find out
    As always any help is greatly appreciated

    anyone who know this issue please help...

  • JMF + JavaFx layout problem

    I can creat a GUI in javafx and call the JMF component within JavaFx, just like this
    public class JMFComponent extends SwingComponent{
    var panel: JPanel;
    public var center: java.awt.Component on replace{
    println("[center] set component: {center}");
    panel.add(center, BorderLayout.CENTER);
    public override function createJComponent():javax.swing.JComponent{
    panel= new JPanel(new BorderLayout());
    var size:Dimension = new Dimension(width, height);
    panel.setPreferredSize(size);
    panel.setMinimumSize(size);
    panel.setMaximumSize(size);
    panel.setSize(size);
    return panel;
    public class MyMedia extends CustomNode {
    var xpos: Number;
    var ypos: Number;
    var dx: Number;
    public var url: java.net.URL;
    public var autoPlay: Boolean;
    public override function create(): Node{
    var comp:java.awt.Component;
    var control:java.awt.Component;
    var w:Number;
    var h:Number;
    var cw:Number;
    var ch:Number;
    var jmfCom:JMFComponent;
    var player = Manager.createRealizedPlayer(url);
    comp=player.getVisualComponent();
    control=player.getControlPanelComponent();
    if (autoPlay) {
    player.start();
    w=comp.getPreferredSize().getWidth();
    h=comp.getPreferredSize().getHeight();
    cw=control.getPreferredSize().getWidth();
    ch=control.getPreferredSize().getHeight();
    jmfCom=JMFComponent {
    width:w
    height:h+ch
    center: comp
    blocksMouse: true
    bottom: control
    return Group{
    content: [
    jmfCom
    Stage {
    title: "Media Example"
    width: 500
    height: 500
    onClose: function(){ java.lang.System.exit(0);}
    scene: Scene {
    content: MyMedia{
    url: (
    new java.io.File("C://My//Videos//DELTA.MPG")).toURI().toURL()
    autoPlay: true
    The video can be played within JavaFx gui, but when i move my mouse cursor into the control bar of the JMF player, the video window will move at the same time.
    Does anyone have an idea how I can get JMF working normally within JavaFx?

    Reposting the [exact same message|http://forums.sun.com/thread.jspa?threadID=5361672] (and still not using the CODE button...) won't help you more...
    Explaining what is the JMF component (and where to find it, etc.) might help a bit more those willing to help.

  • JMF Installation WinXP Problem

    Hi,
    I recently tried to install JMF 2.1 under Windows XP. I have searched the forums at lengths but found no solutions to my probelem:
    I have correctly set the Classpath variable to point at jmf.jar,jmf.sound as it says in the instructions but when I run diagnostics, I still get the same error message: JMF Classes not found...
    Any Ideas what I might be doing wrong?

    No, please post some command input and error response text (cut & paste)

  • Re: Jmf Video Transmitting Problem plz take me out from this trouble

    two suggestions,
    Try running your server code on a different server,(could be a problem with java install)
    and second change your transmit code back to the transmit for 60 seconds, then try refreshing explorer.

    I think I had the same problem, but I stopped working on my project.
    I think what the problem is, your jsp page can't create a new instance of your AVtx class each time page is loaded, there must be only one instance.
    Is it possible that when you click IE refresh that there is a second instance of AVTx trying to run??
    The way I planned on solving mine, was to create either DataGramSockets or Sockets and have AVTX listen on a socket, then have jsp pass the ip,port numbers to AVTx using packets/sockets, then AVTx would parse those parameters and transmit.
    You would then be removing AVTx out of your SERVLET contianer,, I used TOMCAT .
    I had very strange problems trying to run the transmitter from within tomcat.

  • Jmf voip audio problems (loops, delay)

    Hi,
    Im here with a lots of audio problems. Im testing a simple voip app.
    The system is winxp, sb live , 3 gb ram, celeron 3ghz
    with JAVASOUND:
    Loops in sound appear randomly and bad sound quality (i give it up javasound)
    with DSOUND:
    Random delays in conversations(0-7secs) but no loops at all and good sound.
    Pleople complain about the 0-2 secs delay in DirectAudioRenderer...here i am having 0-7 secs! is just me?!?
    Some interesting things:
    I found that the delay is most of the times unidirectional and when the user that DOES NOT HAVE delay makes a mute (stream.stop()) for 5 secs at least, the delay disappears "completely" in the other side!
    When the delay is bidirectional, both have to stop the streams (mute) for some time in order to the audio to "synchronize".
    Another thing that seams to help minimize variable delay is starting the receiver player about 5 secs after the RealizeCompleteEvent ( the java examples start teh player imediatly)
    Could anyone ever confim this behaviour?
    If there is any other solution other than messing with the sources i would be preciated!
    Thanks
    Edited by: maxupixu on Mar 26, 2010 8:50 AM

    >
    > Yes...i see some "?"
    I see you making a bunch of declarative statements based on your observations on a system you've not given much technical detail about, and then asking questions that border on being rhetorical.
    And I can see a request for a possible solution... You asked for a solution to a problem you're having with an application you didn't remotely talk about how you'd implemented ANYTHING. So how you expect anyone in the world to offer you a solution to your vague babble about 5 to 7 second delays in an application they know nothing about is beyond my comprehension.
    Do you think its always required a question to get someone to share some information? I actually walk down the street and crazy people offer to hand me their manifesto, religous people shout out my damnation and/or give me copies of their handouts and religeous texts, I go to a football game and people hand me pamphlets for their political candidate, and I'm often handled fliers with information / meeting times for student organizations on campus. And dude, RSS feeds, man...the RSS feeds just push out information all day long, man. It's amazing! All the information being given to me without asking a single question of anyone / anything...
    But yeah, if you want help with something on a coding forum, you'd be better of asking a damned question instead of sharing your observations about what your unposted, undescribed code appears to be doing and expecting someone to share information about where 5 seconds may have came from...
    Regardless, I'm going to suggest that a normal program travels significantly closer to the speed of light than your implementation does, and as such, you're experiencing a problem with time dilation. I'd recommend you google around for the special theory of relatively, and make appropriate corrections to your inertial frame of reference. With the amount of information you've presented, that's as good a theory as I can offer.
    And I'm officially done with this thread.

  • JMF + fobs4jmf extra subproces in my aplication

    Hi,
    I'm developing a multimedia aplication and have the isue, that most programers have. When I closed the player, after stoped it and remove his visula component, etc... The list of subproces don't decrease.
    In my code after this I start other player whit and other source. And the result is I have two new proces for every file I play.
    In order to find a solution I create a class that is at the same time JInternar frame in order to show the video and implements thread and it's method run create,realized, start, sleep the duration of the media, stop, and close the player. Whit this the palyer is in a separeted thread and when the thread die all resources will be clear(It's I like :P)
    This class it's added a JFrame and after this I started the thread, and when it finished the thread dies and all is fine. But the 2 procces extra appear.
    The fobs prints that the AVCODEC, after close the player, create and close render; by his own way. I think that it is the isue. Tomorrow I wil paste the print and the code of my class(excuse me all of it's at my work )
    I have tried many solutions, but I obtain the same "two extra subprocces" I'm working of this for 2 mounth.
    Excuse me my English is too bad and I can't explain this in many lines.
    Any help will be apreciate.

    This is te class:
    public class ContenedorVideoThread extends JInternalFrame implements Runnable{
    private Thread hilo = null;
    public void start()
            if(hilo == null) {
                hilo = new Thread(this);
                hilo.start();
        public boolean isAlive()
            boolean alive=false;
            if(hilo != null) {
                alive=hilo.isAlive();          
            return alive;
        public void interrupt()
            if(hilo != null) {
                hilo.interrupt();          
        public void run()
            MediaPlayer player=new MediaPlayer();
            try{
                MediaLocator locator=new MediaLocator(this.archivo.toURL());
                long espera;
                player.setMediaLocator(locator);
                player.realize();
                player.waitForState(MediaPlayer.Realized);
                this.add(player.getVisualComponent(),BorderLayout.CENTER);
                espera=(player.getDuration().getNanoseconds())/1000000;
                player.setPlaybackLoop(false);
                player.start();
                player.waitForState(MediaPlayer.Started);
                this.validate();
                this.setVisible(true);
                try{
                    Thread.sleep(espera);
                }catch(InterruptedException e){;}
            }catch(Exception e){;}     
            this.remove(player.getVisualComponent());
            player.removeAll();
            player.stop();
            player.waitForState(MediaPlayer.Prefetched);
            player.deallocate();
            player.waitForState(MediaPlayer.Realized);
            player.close();
            player=null;
    In the JFrame:
    this.contenedorVideoThread=new ContenedorVideoThread(...arguments..);
    Container container=this.getContentPane();
    container.add(this.contenedorVideoThread);
    this.contenedorVideoThread.start();
    //Show the frame and all works fine
    //wait during the thread is alive using and other thread
    class TiempoEspera extends Thread {
            public void run() {
                //System.out.println("--------> Lanzado thread a "+espera+" segundos");
                try
                      while(!interrumpido && !interrupted() && contenedorVideoThread.isAlive())
                            Thread.sleep(100);
                      getContentPane().remove(contenedorVideoThread);
                    if(!interrumpido) {
                        Siguiente();
                catch (InterruptedException exception) {
                   getContentPane().remove(contenedorVideoThread);
    The print form AVCODEC:
    OpenError: File open error
    ---------->MediLocatorSet
    AVCODEC: Constructor
    ---------->Before realize
    AVCODEC: setInputFormat
    AVCODEC: setInputFormat --->other inputFormat?
    AVCODEC: getMatchingOutputFormats
    Fobs Java2DRenderer: setInputFormat
    AVCODEC: getMatchingOutputFormats
    Fobs Java2DRenderer: setInputFormat -->and other time?
    AVCODEC: setInputFormat
    AVCODEC: getMatchingOutputFormats
    AVCODEC: open
    AVCODEC: init_decoding
    ---------->After realize
    Fobs Java2DRenderer: start
    ---------->After start
    Fobs Java2DRenderer: stop
    ----------> After stop
    ---------->Before close
    AVCODEC: reset
    AVCODEC: close
    AVCODEC: open ---->open and decoding
    AVCODEC: init_decoding ---->why?what?
    AVCODEC: close
    ---------->After close
    The next time the frame call the method start(), using other file there are 2 new subprocess (making ctrl+alt+sup on window) and 4 o 6 Mb of ram used. The result is after a time(3h aprox) the video apear freeze or the JVM crass.
    The solution could be that I created the libraries using JMStudio. I added the fobs jmf.jar and jmf.configuration to the JMStudio path after I added the jffmpeg-1.1.0.jar and follow all the steps to add new formats. Whit all new jars and properties and fobs dll I create the proyect jar seting all in his correct position(if it was wrong the video don't show ;)
    I'm lost.
    Can any body help?

  • Jmf Pocket pc problem

    When i tried to execute my streaming player on pocket pc with CrEme Nsicom virtual machine it doesn't work, but it It does not return no error; the message that it returns is:
    bandwith info: AS:63....................... and then this messge it does not execute no action.
    Instead on my pc with windows xp it after the message bandwith info: AS:63 works!!
    Help me, please.
    P.S
    I also have tried to remove JavaSound renderer but it does not work the same one !
    Thanks

    up,please

  • JMF and VPN problems

    We are writing an application which streams audio from a GPRS connection thorugh a VPN-tunnel to local computer on a NAT network. Regular TCP and UDP traffic is transmitted and received as can be expected. All RTP packets are however not received at all (according to my program and ethereal), even though it works perfectly when both computers are in the same LAN. Strange.
    Does anyone know why this may be, or have a suggestion what to do?

    You will have to monitor packets at both ends.
    RTP is always an even port number, and its matched with an RTCP odd number always 1 more than the RTP number.
    I would suspect that the VPN is changing the port numbers, example:
    VPN may retransmit the RTP to an odd port number say 2223, which will not work.
    VPN may retransmit the RTP 2222, and RTCP to 2243 which will not work.
    example RTP may be 22222, 3334, or 12346
    RTCP must then be 22223, 3335, or 12347
    Ethereal is your friend!!

  • Classpath problems with JMF

    Hi all,
    I'm trying to develop a simple application using JMF; I've problems importing classes from javax.media package. Problem with my application is that when I explicitly specify classpath as a command line argument to javac my application compiles; but if I use CLASSPATH environment variable it doesn't. Here's the output:
    situ@situ-desktop:~/myjava/media$ cat First.java
    import javax.media.*;
    public class First{
    situ@situ-desktop:~/myjava/media$ echo $CLASSPATH
    /home/situ/jmf/JMF-2.1.1e/lib/jmf.jar:/home/situ/jmf/JMF-2.1.1e/lib/sound.jar:.:
    situ@situ-desktop:~/myjava/media$ javac First.java
    First.java:1: package javax.media does not exist
    import javax.media.*;
    ^
    1 error
    situ@situ-desktop:~/myjava/media$ javac -classpath /home/situ/jmf/JMF-2.1.1e/lib/jmf.jar First.java
    situ@situ-desktop:~/myjava/media$
    Thanks.

    According to the documentation, it wants you to set two environmental variables, JMFHOME and CLASSPATH. And it wants the CLASSPATH to be relative to that JMFHOME variable.
    Try this.
    setenv JMFHOME /home/someuser/JMF2.1.1
    setenv CLASSPATH $JMFHOME/lib/jmf.jar:.:${CLASSPATH}

  • JMF, Linux, wrong codec selected when using jarred version of app

    I have problem realising an AVI player when I try and run Linux JMF application when whole application is bundled into jar file and I try and run it using
      java -cp <..JMF/lib/jmf.jar:/home/codroe/fobs4jmf.jar..> -jar app.jarIn jmf.log I see:
    ## Player created: com.sun.media.content.unknown.Handler@1cd2e5f
    ##   using DataSource: com.sun.media.protocol.file.DataSource@911f71
    ## Building Track: 0
    ## Input: XVID, 720x576, FrameRate=25.0, Length=1244160 68 extra bytes
    !! Failed to handle track 0
    XX   Unable to handle format: XVID, 720x576, FrameRate=25.0, Length=1244160 68 extra bytesThis is exactly the message I usually get when some part of JMF cannot find "jmf.properties" file (if for example could not find .jmfdir), but looking at strace from application run it does appear JMF found my jmf.properties this time, but still chose not to use omnvidea codec:
    stat64("jmf.properties", 0xfeffc410)    = -1 ENOENT (No such file or directory)
    stat64("/home/codroe/JMF-2.1.1e/lib/jmf.properties", {st_mode=S_IFREG|0644, st_size=31354, ...}) = 0
    open("/home/codroe/JMF-2.1.1e/lib/jmf.properties", O_RDONLY|O_LARGEFILE) = 11When I run my unbundled (i.e. not wrapped up in jar) version of Linux application (same classpath), it finds jmf.properties no problem, and choses omnivoidea codec and now is able to play the video with good things in jmf log:
    ## Player created: com.sun.media.content.unknown.Handler@30c221
    ##   using DataSource: com.omnividea.media.protocol.file.DataSource@a401c2
    ## Building Track: 0
    ## Input: FFMPEG_VIDEO, 720x576, FrameRate=25.0, Length=414720 0 extra bytesMy windows version works fine in both configurations, jarred or not jarred.
    From Linux strace log I it shows my working non-JARed version has selected omnividea codec:
    gettimeofday({1100876842, 175149}, NULL) = 0
    stat64("/home/codroe/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    stat64("/home/codroe/JMF-2.1.1e/lib/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    gettimeofday({1100876842, 179815}, NULL) = 0
    stat64("/home/codroe/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    stat64("/home/codroe/JMF-2.1.1e/lib/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    gettimeofday({1100876842, 182979}, NULL) = 0
    gettimeofday({1100876842, 183206}, NULL) = 0
    gettimeofday({1100876842, 184371}, NULL) = 0
    gettimeofday({1100876842, 184591}, NULL) = 0
    stat64("/home/codroe/com/omnividea/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    stat64("/home/codroe/JMF-2.1.1e/lib/com/omnividea/media/protocol/file/DataSource.class", 0xfeffc384) = -1 ENOENT (No such file or directory)
    gettimeofday({1100876842, 191005}, NULL) = 0but as I don't see this in trace from JAR version, and because in JMF log it says:
    ## Player created: com.sun.media.content.unknown.Handler@30c221
    ##   using DataSource: com.omnividea.media.protocol.file.DataSource@a401c2I believe it has not selected correct codec for a reason I don't understand.
    [I checked I only have one version of jmf.properties on system].
    Any ideas why jarred version is different from non-jarred version?
    version information:
    # JMF Version 2.1.1e
    ## Platform: Linux, i386, 2.6.5-1.358
    ## Java VM: Sun Microsystems Inc., 1.5.0
    and using fobs4jmf from http://fobs.sourceforge.net

    correction, for the last bit I should have said, for non-working jarred version in JMF log I see:
    ## Player created: com.sun.media.content.unknown.Handler@1cd2e5f
    ##   using DataSource: com.sun.media.protocol.file.DataSource@911f71indicating wrong codec selected

Maybe you are looking for