For some time, I needed to convert a big number of files from mp3 to ogg format, as I didn’t see any loss of quality with the ogg format, also it need less space.
The problem was that I want to keep my id3 tags, rewriting them would be a pain in the a**. I searched the web for free tools to do that, but I couldn’t find any, maybe I didn’t look enough. So I had to implement it myself.
Also, as I’m learning ruby, I thought it would be a good idea to use it for the script.
The tools I needed to do this, were mplayer, id3tool, and oggenc (vorbis-tools). Also in order to utilize my quad-core processor, I built it in a multi-threaded way (not so much, but it works :-)).
Now, I noticed that oggenc takes a lot of time, more than mplayer, so it was loading my tmp directory, so I made the mplayer thread wait when oggenc has 20 or more in it’s queue to process. Also, for more utilization, I put 3 threads for the oggenc to process.
I think that the script can use some improvements, feel free to post your feedback.