Yes, I do store both the original (MIDI in some cases) and the sample
MP3 in the database.
So it is a once of exercise to create the sample MP3.
I like the MP3 --> wav and back again :)
thanks
Jeff
Michael Wiles wrote:
I'm not sure how you're storing the music on the database, but it would
be wise to store both the 5 second version and the full version on the
database.
The issue is that to work out 5 seconds every time a user requests a
sample is going to be much harder than just simply storing a short and a
long version. If you take the average song length to be 3.5 minutes,
that's 210 seconds, 5 seconds of that is only 2.3 percent, and you could
encode the sample at a lower quality so it even takes less space.
It also makes the process of taking 5 seconds of the song easier because
you don't have to do it on the fly.
brute force approach to extract 5 seconds
1. convert to wave (only 5 seconds)
2. convert back to mp3
-----Original Message-----
From: jeff [mailto:[EMAIL PROTECTED]
Sent: 19 January 2006 04:30 PM
To: [email protected]
Subject: [CTJUG Forum] Re: MP3 / Audio Truncation
Well put! Thanks
My requirement is to have a web page where people can 'sample' our
content before purchasing... I have a flash page that plays the MP3,
getting the mp3 via a URL.
My servlet then picks the 'sample' data from my database and passes it
back to the flash player. So I still need to think of some way to get 5
seconds from the MP3.
Thanks
Jeff
Ben van der Merwe wrote:
Come to think of it, given the nature of compressed files, I can't
imagine a method of accurately capturing 5 seconds of play than to
actually play the mp3 for 5 seconds while directing the output to a
file sink or memory buffer.
Ben van der Merwe wrote:
It would depend on the sampling rate of the particular mp3 (e.g. a
256khz MP3 could be *very* roughly 2 times bigger than a 128khz).
MP3's are obviously also compressed. Violin music would contain more
seconds of play in the first 20k bytes than modern rock (signal to
noise ratio ;)
Cheers,
Ben
jeff wrote:
Thanks for the reply Michael.
That is what I have done at the moment, but the issue I have is
that some songs would then play for 1 second, some for 10 seconds.
All depends on the song I suppose.
Maybe I did it incorrectly, I just took the first 20 000 bytes for
example from the byte[]. Would it make a difference if I only read
20 000 bytes from the stream?
Cheers
Jeff
Michael Wiles wrote:
If it's only mp3's you're looking for then a quick and dirty
approach is
to just retrieve X bytes of the mp3. mp3's are streamed so if you
truncate them you can still play them, they're just shorter. You'd
have
to experiment to see how many bytes would give you about 5 seconds.
You could probably take a similar approach with a lot of sound
files,
Waves for instance.
-----Original Message-----
From: jeff [mailto:[EMAIL PROTECTED] Sent: 19 January 2006 03:45
PM
To: [email protected]
Subject: [CTJUG Forum] MP3 / Audio Truncation
Hi All
I need to get the first 5 seconds of an MP3 or any sound file for
that matter.
My MP3's are stored as byte[] in a database. Having looked at a
number of different java API's (well only sound and JMF really)
and not having
any experience with any java media coding, I am hoping someone can
point
me in the right direction.....even some code sample :) would be
nice.
Thanks in advance
Jeff