I want to be able to generate a new (fully valid) MP3 file from an existing MP3 file to be used as a preview — try-before-you-buy style. The new file should only contain the first n seconds of the track.
Now, I know I could just "chop the stream" at n seconds (calculating from the bitrate and header size) when delivering the file, but this is a bit dirty and a real PITA on a VBR track. I'd like to be able to generate a proper MP3 file.
Anyone any ideas?
ffmpeg are both good solutions. I chose ffmpeg as it is commonly installed on linux servers and is also easily available for windows. Here's some more good command line parameters for generating previews with ffmpeg
-t <seconds>chop after specified number of seconds
-yforce file overwrite
-ab <bitrate>set bitrate e.g. -ab 96k
-ar <rate Hz>set sampling rate e.g. -ar 22050 for 22.05kHz
-map_meta_data <outfile>:<infile>copy track metadata from infile to outfile
instead of setting -ab and -ar, you can copy the original track settings, as Tim Farley suggests, with: