The following script converts an MP4 file to MP3 format.
It copies all the tags stored in the original file into the target file.
Make sure you have ffmpeg, mp4info, awk, and bc installed.
#!/bin/bash #!/bin/bash FULLPATH=$1 file=${FULLPATH##*/} FILENAME=${file%.*} EXT=${file##*.} #echo "FILENAME=$FILENAME" #echo "EXTension=$EXT" shift OPTS=$@ if [ `echo $EXT | tr [:upper:] [:lower:]` = "m4a" ] then bitratekbps=`mp4info "$FULLPATH" | awk '$1 ~ /([0-9]+) kbps/g {print $8}'` bitratebps=`echo "scale=10; $bitratekbps*1000" | bc -l` hz=`mp4info "$FULLPATH" | awk '$1 ~ /([0-9]+) kbps/g {print $10}'` ffmpeg -i "$FILENAME.m4a" -aq 1 -ab $bitratebps -ar $hz -f mp3 \ -metadata major_brand="MP3" \ -metadata compatible_brands="MP3 libmp3lame" \ "$FILENAME.mp3" $OPTS fi
Save the file, say, to m4a2mp3 and make it executable.
To convert a song:
m4a2mp3 song.m4a
The target file name is the same, except the extension now is MP3. Also, some tags/metadata are replaced to reflect the new format. If you want to add other options, you can put that after file name. For example: m4a2mp3 song.m4a -metadata mymeta="converted from m4a"
No comments:
Post a Comment