How To Resample Audio Files With GStreamer

One of the older posts on this site shows how to resample MP3 files on Linux with LAME. One of the problems with that process is that the MP3 tags are not maintained when resampling, so I had to work around the issue by copying certain tags from the original files to the new files. As it turns out, there’s a way to use the GStreamer framework to resample audio files and maintain the tags. In this post I’ll show the commands you can use to resample audio files to both constant bitrate and variable bitrate MP3’s.

The following examples show how to resample MP3 files, but the decodebin2 plugin automatically figures how to decode any type of stream that GStreamer can handle, so these examples will also work to convert audio files from other formats to MP3.

Resample MP3: CBR

This first example shows how to read an MP3 encoded at 320 kbps and resample it to a constant bitrate of 128 kbps.

[term]gst-launch filesrc location=05-Fly_By_Night-320kbps.mp3 ! decodebin2 ! audioconvert ! lamemp3enc target=bitrate bitrate=128 ! id3v2mux ! filesink location=05-Fly_By_Night-128kbps.mp3[/term]

Resample MP3: VBR

The second example shows how to read an MP3 encoded at 320 kbps and resample it to a variable bitrate with a quality setting of 9. Valid values for quality are 0-9.999 with 0 being the best.

[term]gst-launch filesrc location=05-Fly_By_Night-320kbps.mp3 ! decodebin2 ! audioconvert ! lamemp3enc target=quality quality=9 ! id3v2mux ! filesink location=05-Fly_By_Night-quality_9.mp3[/term]

3 thoughts on “How To Resample Audio Files With GStreamer

  1. Pingback: Geekalhada!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.