Ticket #657 (assigned Known issue)

Opened 1 year ago

Last modified 10 months ago

track progression not displayed properly for VBR mp3s

Reported by: dxnihilo@yahoo.com Assigned to: bflorat (accepted)
Priority: 5, normal Milestone:
Component: (Jajuk Members) Any (Default Component) Version: 1.3.11
Keywords: Cc:

Description

The track progression bar does not display properly for variable bitrate mp3 files. It usually adds anywhere from about 20 seconds to 5 minutes to the real length of the track, although in one case it actually subtracted some time from the length (and the track stopped playing at that shorter length). Also, the track position slider does not work properly for these files. If I let a track play through without moving the slider, it ends at the proper time, but if I move the slider it does not skip to the corresponding position in the track (part of the track can play more than once). The time remaining field displays properly but if the slider is moved past the real track length it displays 0:00 while part of the track is still playing.

Attachments

Change History

09/26/07 10:15:23 changed by dxnihilo@yahoo.com

I installed version 1.4R6 and I'm having the same problem. Maybe this isn't a Jajuk issue but an issue with one of its dependencies. I'm running Windows XP SP2 with Java 1.6.0_02-b06.

(follow-up: ↓ 3 ) 09/26/07 13:44:08 changed by bflorat

Please provide a sample file.

(in reply to: ↑ 2 ) 10/02/07 02:36:58 changed by dxnihilo@yahoo.com

I'm having trouble getting a sample file to fit into the attachment size limit. I tried cropping one but it didn't have the same problem (might not have been re-encoded as VBR). Can I email you a full-size sample instead?

10/02/07 09:58:32 changed by bflorat

Yes, please use http://dl.free.fr for instance or send directly to nospam_at_ florat.net

10/04/07 22:44:30 changed by bflorat

  • milestone changed from To Be Decided by Jajuk Team to 1.4 "Aerodynamic".

10/04/07 23:34:28 changed by bflorat

  • status changed from new to assigned.
  • milestone changed from 1.4 "Aerodynamic" to 1.5 "Lothlórien".

I reproduced this thanks your sample. Do you know which encoder has been used to build this mp3s ? I never encountered such problems, even with VBRs before... Tests:

  • Win32 / WMP : wrong length (5:18)
  • Xmms / Linux: right length (3:57)
  • Mplayer under Linux : wrong length (5:18)
  • Jajuk (length read by entagged lib) : wrong length (5:18)

However, this is not a critical under Jajuk, the next file is played after the track is really finished

This seems to be a general issue occuring in most players, it probably means your files are a little lit weird or something...

I checked mplayer list on this without success. This may be fixed also by future versions of mplayer and/or entagged but I don't see anything to be done for the moment ...

I postpone this ticket to 1.5 for now

10/06/07 12:43:14 changed by dxnihilo@yahoo.com

Thanks for looking into the issue. Maybe I'll try encoding some VBR mp3s myself to see if they have the same problem, although it seems to happen with all of the VBRs I currently have, which were obtained from different sources (I don't know which encoder was used). I tried a program called foobar2000 in Windows which has a utility called "Fix VBR MP3 Header", and I tried using it but it didn't fix the problem, although that program does display the correct track length. I also tested some in Media Player Classic (Windows) using ffdshow with libmad and mp3lib, and it displayed the correct track length with both libraries. And now I just tried WMP 11, and oddly, that is displaying the correct length for me, before and after disabling ffdshow for it. I was having a separate issue trying to play any mp3 with MPlayer on Xubuntu, but if can get that fixed I'll see if that displays the correct length.

You're right though—it's not a critical issue under Jajuk. It's only an issue when seeking within a track, which I don't do very often.

10/07/07 00:07:25 changed by bflorat

Update : this issue is not present when using the embedded MP3 Java player (when mplayer binary is not available) but anyway, drawbacks of this player largely exceeds benefits.

(follow-up: ↓ 10 ) 12/11/07 06:49:16 changed by xxaz0r@gmail.com

I have this same issue with VBRs so I spent the last few days tracking it down. What's happening is mplayer does not read the VBR header to properly calculate the time. All of the VBRs I used had Xing headers, but I'm pretty sure mplayer isn't reading any VBR headers. Instead it just grabs the bitrate of the first frame in the mp3 file and uses that to calculate the time. The bitrate of the first frame is also the bitrate it shows as the file bitrate rather than an average bitrate or constantly changing bitrate. It treats it the same as a regular CBR (Constant Bitrate, for those who don't know). The only way to fix this with the MP3 files would be to set the bitrate of the VBR header to the average bitrate of the file, which simply isn't possible with MP3s. I'm probably going to file a bug report soon. I might try to write a patch first though.

(in reply to: ↑ 9 ) 12/11/07 06:54:53 changed by xxaz0r@gmail.com

Replying to xxaz0r@gmail.com:

I have this same issue with VBRs so I spent the last few days tracking it down. What's happening is mplayer does not read the VBR header to properly calculate the time. All of the VBRs I used had Xing headers, but I'm pretty sure mplayer isn't reading any VBR headers. Instead it just grabs the bitrate of the first frame in the mp3 file and uses that to calculate the time. The bitrate of the first frame is also the bitrate it shows as the file bitrate rather than an average bitrate or constantly changing bitrate. It treats it the same as a regular CBR (Constant Bitrate, for those who don't know). The only way to fix this with the MP3 files would be to set the bitrate of the VBR header to the average bitrate of the file, which simply isn't possible with MP3s. I'm probably going to file a bug report soon. I might try to write a patch first though.

I should probably mention that I only tested this with mplayer, but it isn't hard to calculate the right time. If any programs are calculating it wrong it either isn't reading the VBR header or isn't following the correct formula for calculating the time.

12/11/07 22:37:07 changed by bflorat

It would be nice you send a mplayer patch. Hopping that they will use them ASAP. We may also compile our own version is required (we have another patch in queue). BTW, we plan to switch to mplayer 1.0RC2 in jajuk 1.5 (I suppose you checked this bug is not fixes in RC2, right ?) and we probably need to build a custom mplayer distribution (100% audio). You seem to own serious mplayer skills, could you help us building it for linux, windows and MACOS ?

12/28/07 22:37:48 changed by bflorat

  • type changed from Bug to Known issue.

01/20/08 23:30:05 changed by bflorat

  • milestone deleted.

Add/Change #657 (track progression not displayed properly for VBR mp3s)