Menu

cannot play mavies in java (urgent!!)

user
2004-08-28
2004-08-29
  • Nobody/Anonymous

    hi!

    when i play movies with the FobsJMStudio then everthing is ok.

    but when i try to play them with simpleplayer in java, the movie cannot be played.

    when i convert the movie to mpeg1 then i can play it, but it is damn slow and it seems to me, that it doesn't play it via fobs but via the built in java videoplayer. when i rename fobs4jmf.jar the movie is still being played.

    i want to know:
    - which codecs can fobs use, and how can i add some video codecs?
    - why does video playback work in fobsjmstudio but not in java?

    my system:
    windows xp
    jdk 1.5 beta (also tried it with 1.4 but same result)

    jochen

     
    • jignes

      jignes - 2004-08-28

      Hi Jochen.
      I am having the same king of problems and, actually, you may see that we started a discussion thread earlier concerning this issue.
      Just to make sure that we are experiencing the same behavior:
      If you start Fobs JMStudio (Windows XP), and open a movie file, can you check the plugin settings (click on the "movie" icon, bottom-right corner, then select the plug-in setting tab, and click plug-in viewer)? Can you see that both the parser and the codec are com.omnividea.media.*?
      If so, then, just like in my case, JMStudio does use the Fobs codecs.

      Then, if I try to open a movie with Fobs (of a format not supported by jmf.jar, or forcing the program to use com.omnividea.media.*) it does not work.

      Can you confirm if this is your experience?
      If so, this is the same issue we are talking about in the other thread, showing that there is indeed a bug in the Windows XP implementation.

      Jordi.

       
    • José San Pedro

      José San Pedro - 2004-08-28

      Hi,

      you don't provide enough information in order to see where the problem resides. First of all, I recommend you search fobs forums; there's a topic discussing some issue related to custom players and Fobs in windows.

      About your questions:

      1 - Fobs supports all the codecs included in ffmpeg. There are pleny of them, probably more than what you will ever need. If you want to add an additional codec, then you should take a look at the ffmpeg library. You will need then to recompile Fobs with your custom ffmpeg version.

      2 - FobsJMStudio is just a script to call JMStudio including fobs4jmf.jar iin the classpath. Take into account that, in order for Java (JMF) to use Fobs, two things are needed: appropiate jmf.properties file and access to both fobs4jmf.jar and fobs4jmf.dll. Further details can be found on the website fobs.sourceforge.net.

      If you can provide more details about your custom player class, your jmf.properties file and the CLASSPATH you use, I may be able to help  you more.

      Cheers!

       
    • Jochen Rosenthaler

      hi! (i'm the nobody from above)

      i suppose that when i run the player via java, somehow he takes the wrong properties file or the wrong .jar file.

      1. when i run jmstudio and i watch a video -> plugin viewer he takes ffmpeg audio and video codecs.

      batch file:
      %JAVA_CMD% -classpath fobs4jmf.jar;jmf.jar JMStudio

      2. when i run SimplePlayer and i watch a video an error occurs cause he uses mpegblablabla codec instead of ffmpeg.

      batch file:
      %JAVA_CMD% -classpath fobs4jmf.jar;jmf.jar SimplePlayer

      How can i tell simpleplayer which codecs it should use.

      jochen

       
      • José San Pedro

        José San Pedro - 2004-08-28

        Hi nobody ;)

        Let's see... There is not a simple answer to your question. The best way to be sure you're actually using fobs and not JMF drivers is to copy your Player class to the Fobs directory and then modify the provided script (a .bat file) to run your player and not JMSTudio. By the lines in your message I assume that's what you are currently doing. If you're not, this is the first thing to try.

        If the issue persists, then I can think of the following reasons for it:

        - You're player uses an incorrect datasource (this is the same issue discussed in another topic.... the Parser receive
        s a datasource which is not valid for a reason we haven't found yet... Hopefuly, this will be fixed next week).

        - The .dll file cannot be found.

        - The video is not supported by Fobs.

        My experience is that the jmf.properties files that is used is the one located in the folder in which jmf.jar resides. Look in the java console for a line similar to:

        Dynlink resolved

        This means that Fobs library has been found and has been tried to be used. If the problem exists even with such a line in the console, then I think you're having the exact same issue as the user of the other topic. As I told before, I will try to fix this issue next week.

        Cheers

         
    • Jochen Rosenthaler

      hi!

      perhaps this log can help you.
      it seems to me  that it tries to use the wrong audio codec.

      #
      # JMF Version 2.1.1e
      #

      ## Platform: Windows XP, x86, 5.1
      ## Java VM: Sun Microsystems Inc., 1.5.0-beta2

      $$ Profile: instantiation: 0 ms

      !! Input DataSource: com.omnividea.media.protocol.file.DataSource@bb7465
      !!   is not compatible with the MediaEngine.
      !!   It's likely that the DataSource is required to extend PullDataSource;
      !!   and that its source streams implement the Seekable interface
      !!   and with random access capability.
      $$ Profile: instantiation: 0 ms

      ## Player created: com.sun.media.content.unknown.Handler@115273a
      ##   using DataSource: com.sun.media.protocol.file.DataSource@186768e

      $$ Profile: instantiation: 0 ms

      !! Input DataSource: com.omnividea.media.protocol.file.DataSource@1bcc0bc
      !!   is not compatible with the MediaEngine.
      !!   It's likely that the DataSource is required to extend PullDataSource;
      !!   and that its source streams implement the Seekable interface
      !!   and with random access capability.
      $$ Profile: instantiation: 0 ms

      ## Player created: com.sun.media.content.unknown.Handler@3570b0
      ##   using DataSource: com.sun.media.protocol.file.DataSource@1d6776d

      $$ Profile: parsing: 16 ms

      ## Building flow graph for: file:/D:/java/projects/iVision/Media2/video/PlusCity_Badezimmer.mov.avi.mpg

      ## Building Track: 0
      ## Input: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits
      ## Failed to open plugin com.sun.media.codec.audio.mpa.NativeDecoder@1394894. Will re-build the graph allover again

      ## Here's the completed flow graph:
        com.ibm.media.parser.video.MpegParser@1198891
           connects to: com.sun.media.codec.audio.mpa.JavaDecoder@1551d7f
           format: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits
        com.sun.media.codec.audio.mpa.JavaDecoder@1551d7f
           connects to: com.sun.media.renderer.audio.DirectAudioRenderer@14c194d
           format: LINEAR, 22050.0 Hz, 16-bit, Stereo, BigEndian, Signed

      $$ Profile: graph building: 62 ms

      $$ Profile: realize, post graph building: 31 ms

      XX   Unable to handle format: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits

      XX Failed to prefetch: com.sun.media.PlaybackEngine@1e13d52
      XX Error: Unable to prefetch com.sun.media.PlaybackEngine@1e13d52

      $$ Profile: parsing: 0 ms

      ## Building flow graph for: file:/D:/java/projects/iVision/Media2/video/PlusCity_Wohnzimmer.mov.avi.mpg

      ## Building Track: 0
      ## Input: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits
      ## Failed to open plugin com.sun.media.codec.audio.mpa.NativeDecoder@1b000e7. Will re-build the graph allover again

      ## Here's the completed flow graph:
        com.ibm.media.parser.video.MpegParser@b76fa
           connects to: com.sun.media.codec.audio.mpa.JavaDecoder@b01d43
           format: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits
        com.sun.media.codec.audio.mpa.JavaDecoder@b01d43
           connects to: com.sun.media.renderer.audio.DirectAudioRenderer@1be0f0a
           format: LINEAR, 22050.0 Hz, 16-bit, Stereo, BigEndian, Signed

      $$ Profile: graph building: 109 ms

      $$ Profile: realize, post graph building: 16 ms

      XX   Unable to handle format: mpegaudio, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 8000.0 frame rate, FrameSize=11264 bits

      XX Failed to prefetch: com.sun.media.PlaybackEngine@21b220
      XX Error: Unable to prefetch com.sun.media.PlaybackEngine@21b220

       
      • José San Pedro

        José San Pedro - 2004-08-28

        Hi,

        it seems you've came across the same issue we've been discussing in the other topic of this forum. For some reason, the Parser is not able to recognize the datasource. Two more things you can try:

        - Compile ffmpeg and try to open your video file using:

        ffmpeg -i videofilename.mpg

        Ffmpeg will show you the format and tracks of your video file if it is able to recognise it. If it is unable, then there few we can possibly do.

        - Use other operating system. This issue seems to be related to windows. I'm gonna try to fix it this week, but don't count to have a solution till next thursday; I have two more free days of vacation!!

        I hope this timing is good for you.... Cheers!

         
    • Jochen Rosenthaler

      Hi!

      It now works on my Laptop within the java-ide (idea).
      But when i copy the files to the pc that we use for our software the videos cannot be played.

      is there a possibility to tell the SimplePlayer which codecs or wich plugins it should use?

      jochen

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.