I've got a MPEG2 element stream I'm trying to play. I have
a simple playback application that correctly loads all the
fobs/ffmpeg classes (according to the jmf.log file), and it does
indeed decode the video stream.
The problem is that the output frame rate is very slow. Like one
frame every 2 seconds.
I checked an ffplay plays it correctly.
I put printouts in the NativeDecoder to check decode speed,
and it seems to be decoding the frames pretty fast (0-1 ms per
frame).
I think somehow that the renderer isn't getting told to go to
the next frame at the right time or something like that. I got
the JMF source and tried digging through that but not much
light was shed.
Any Ideas?
Thanks, cary.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
some people are reporting similar problems with playback rate. As you have said, I did myself some tests to check the decoding time and it was very fast. The problem must be in the Player classes of JMF. Two options come to my mind:
- Timstamps returned by Fobs are incorrect
- JMF is not fast enough to render more frames per sec
I'm going to be abroad for three weeks but in the meanwhile you can try to play same video with lower resolution to see if the performance increases. This would mean that JMF is not fast enough.
I will try to make some tests with timestamps and report back any results.
Cheers!
Jos San Pedro Wandelmer
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Cary,
when you report your playback rate issues with an MPEG2 stream, are you going over the movie one frame at a time (example, using frame skip) or you get the slow frame rate even if you let the Player play?
My experience (under Windows XP) is that using JMFStudio (or using player.play() in my application) I get almost full video rate for full screen videos. However, as I reported on an early thread, the performance drops down to just a few fps when stepping over the movie one frame at a time.
Cheers,
Jordi.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried my playback application again with lower
and lower playback rates. at 0.2 or 0.25, I get a complete,
if slow, playback. When I do this, cpu utilization is pretty
high. I.e. at rate 0.25, cpu utilization is about 60%.
The problem seems to be throughput somewhere in the
process. On the pc I was using (laptop w/ linux) ffplay and
mplayer could play the video just fine. It is only with fobs that
there is a problem.
The jmf.log file shows that is using the com.omnividea parser and codec, and the Xlib renderer.
My guess is that somehow the packing/unpacking of data is slow.
I'll dig deeper as time allows.
-- cary
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First, thanks for a great package.
I've got a MPEG2 element stream I'm trying to play. I have
a simple playback application that correctly loads all the
fobs/ffmpeg classes (according to the jmf.log file), and it does
indeed decode the video stream.
The problem is that the output frame rate is very slow. Like one
frame every 2 seconds.
I checked an ffplay plays it correctly.
I put printouts in the NativeDecoder to check decode speed,
and it seems to be decoding the frames pretty fast (0-1 ms per
frame).
I think somehow that the renderer isn't getting told to go to
the next frame at the right time or something like that. I got
the JMF source and tried digging through that but not much
light was shed.
Any Ideas?
Thanks, cary.
Hi,
some people are reporting similar problems with playback rate. As you have said, I did myself some tests to check the decoding time and it was very fast. The problem must be in the Player classes of JMF. Two options come to my mind:
- Timstamps returned by Fobs are incorrect
- JMF is not fast enough to render more frames per sec
I'm going to be abroad for three weeks but in the meanwhile you can try to play same video with lower resolution to see if the performance increases. This would mean that JMF is not fast enough.
I will try to make some tests with timestamps and report back any results.
Cheers!
Jos San Pedro Wandelmer
Cary,
when you report your playback rate issues with an MPEG2 stream, are you going over the movie one frame at a time (example, using frame skip) or you get the slow frame rate even if you let the Player play?
My experience (under Windows XP) is that using JMFStudio (or using player.play() in my application) I get almost full video rate for full screen videos. However, as I reported on an early thread, the performance drops down to just a few fps when stepping over the movie one frame at a time.
Cheers,
Jordi.
I tried my playback application again with lower
and lower playback rates. at 0.2 or 0.25, I get a complete,
if slow, playback. When I do this, cpu utilization is pretty
high. I.e. at rate 0.25, cpu utilization is about 60%.
The problem seems to be throughput somewhere in the
process. On the pc I was using (laptop w/ linux) ffplay and
mplayer could play the video just fine. It is only with fobs that
there is a problem.
The jmf.log file shows that is using the com.omnividea parser and codec, and the Xlib renderer.
My guess is that somehow the packing/unpacking of data is slow.
I'll dig deeper as time allows.
-- cary