Sponsored Content
Full Discussion: Batch MP3 transcoding.
Top Forums Shell Programming and Scripting Batch MP3 transcoding. Post 302270960 by lvxferre on Tuesday 23rd of December 2008 09:54:00 AM
Old 12-23-2008
Quote:
Originally Posted by Franklin52
One awk command is sufficient, try this:

Code:
find . -name "*.mp3" -exec mp3info -r v -p "%r \"%F\"\n" '{}' \; | 
gawk '$1 >= 160{$1 = "";system("lame -v" $0)}'

To rename the files you can use this:

Code:
ls *.mp3.mp3 | sed 's/\(.*\)\..*/mv & \1/' | sh

Make sure you get the right files and try it first without te coloured portion.

Regards
Thank you!

I was a bit afraid telling the gawk ">= 160", because I didn't know what it would do for non-number strings (as "variable").

Now the code is much simpler... I've tested it, the awk part works nice.

The renaming part, as you posted, wasn't working for file names with spaces; some quotes made the job Smilie . The last pipe was really needed for interpreting as a command.

Code:
find *.mp3.mp3 | sed 's/\(.*\)\..*/mv -f "&" "\1"/' | sh

The over-consuming step - LAME - still remains, but I think it can't be helped...

Just for curiosity... I've noticed that the find command works in a random order, not alphabetically, is this correct?

Regards!
[hr]
EDIT: Contrary what I said before... for gawk, "variable" >= 160. I changed the "more or equal" again to "exactly equal"... here's the code:

Code:
#!/bin/bash

find . -name "*.mp3" -exec mp3info -r v -p "%r \"%F\"\n" '{}' \; |
gawk '$1 == 160{$1 = "";system("lame -v" $0)}
$1 == 192{$1 = "";system("lame -v" $0)}
$1 == 256{$1 = "";system("lame -v" $0)}
$1 == 320{$1 = "";system("lame -v" $0)}'

find *.mp3.mp3 | sed 's/\(.*\)\..*/mv -f "&" "\1"/' | sh
echo UFA, TERMINOU =D


Last edited by lvxferre; 12-23-2008 at 02:01 PM.. Reason: Adicional info.
 

5 More Discussions You Might Find Interesting

1. UNIX Desktop Questions & Answers

MP3 driver for Unix

I need to play mp3 sound files on unix platform. Is there any mp3 drivers available for unix (rue unix-64 and unixware 7.0)? (3 Replies)
Discussion started by: parbende
3 Replies

2. Shell Programming and Scripting

Sorting mp3

Hi all... Here's my question: -> considering i've got thousands of mp3s', named like "Artist name - Track Name", how could i write a shell (ksh, or bash my favorite, not knowinf enough any other language) that would create a directory (if not existing already) with the Artist's name, and move... (3 Replies)
Discussion started by: penguin-friend
3 Replies

3. UNIX for Dummies Questions & Answers

mp3 codec

I just need a mp3 codec that will decode mp3s so I can play them with my media player (probably going to be using XMMS) (0 Replies)
Discussion started by: Synbios
0 Replies

4. Shell Programming and Scripting

Check file is mp3

Hello, I am trying to check if a file is an mp3. file -b file_path g ives me AUDIO for many MP3 but there are many working MP3 files that return something else. How can I get better result? Thank you (2 Replies)
Discussion started by: JCR
2 Replies

5. Shell Programming and Scripting

Executing a batch of files within a shell script with option to refire the individual files in batch

Hello everyone. I am new to shell scripting and i am required to create a shell script, the purpose of which i will explain below. I am on a solaris server btw. Before delving into the requirements, i will give youse an overview of what is currently in place and its purpose. ... (2 Replies)
Discussion started by: goddevil
2 Replies
VBRFIX(1)							   User Commands							 VBRFIX(1)

NAME
vbrfix - fix erroneous VBR MP3 files SYNOPSIS
vbrfix -flag1 -flag2 -flagn in.mp3 out.mp3 DESCRIPTION
In an average song there are points that require high quality and points that require low quality (i.e., silence). Instead of having the whole file at 160kbps (CBR - Constant Bit Rate), we can use VBR - Variable Bit rate. This allows us to have say 96Kbps at points not requiring high quality and 192kbps when we need it: resulting in an overall smaller but higher quality MP3. However, the problem is that many MP3 programs estimate the time of a MP3 based on the first bitrate they find and the filesize. With VBR you can get fairly random times; as most songs start with silence you usually get the song length being shown as much longer than it should be. Also when you jump through the file in VBR: 50% through the file is not 50% through the song. A VBR null frame is placed at the beginning of the file to tell the MP3 player information about the song length and indexing through the song. Some poor encoders don't produce this null frame or do so incorrectly - this is what vbrfix attempts to fix. Vbrfix can also fix other problems with MP3s as it deletes all non-MP3 content (other than tags you state you want to keep). It can also help when merging two VBR MP3s together with a merging tool and then needing a newly calculated VBR null frame. -ri1 removeId3v1 Tag -ri2 removeId3v2 Tag -skiplame if a tag was made by LAME don't fix it -always always write a new file even if not VBR -makevbr make it VBR (you need -always also) -log write a log file -lameinfo keep the lame info SEE ALSO
lame (1) VBRFIX Command Line Version May 2010 VBRFIX(1)
All times are GMT -4. The time now is 04:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy