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
>>>>
>>>>
>>>>
>>>>   
>>>
>>>
>>
>>
>
>


Reply via email to