论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

Totem,mplayer,sopcast,realplayer,bmp
回复
mimihu88
帖子: 552
注册时间: 2006-04-03 11:26

论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#1

帖子 mimihu88 » 2009-03-16 12:29

想把一批wav格式的歌曲转换为mp3格式
按照wiki里面的说法
链接:http://wiki.ubuntu.org.cn/index.php?tit ... .B8.BAUTF8

原命令
for i in *; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader "$i" -aofile "$i.wav" ; lame -h -b 192 "$i.wav" "$i.mp3"; rm -f "$i.wav" ; done
提示错误如下:
-aofile has been removed. Use -ao pcm:file=<filename> instead.
Could not find "*.wav".

后来我把原命令改了一下:
for i in *; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader "$i" -aofile "$i" ; lame -h -b 192 "$i" "$i.mp3"; rm -f "$i" ; done

可以了,但是还有一个小问题,新生成的mp3名字全部变成:xxx.wav.mp3这样,要手动去一条一条去掉wav这个词

命令应该怎么样改才可以直接生成正确的xxx.mp3文件名?

其实是程序把xxx.wav当成完整的一个名字,应该正确识别wav为后缀,重新命名的时候忽略它

P.S:wiki的哪些skills错误没人检查吗?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#2

帖子 eexpress » 2009-03-16 12:35

针对原代码: lame接受 - 的输入,mplayer应该也支持 - 的输出。不如作一个管道。省得rm
再说了,lame直接支持wav。为什么要启用mplayer呢。
lame xxx.wav xxx.mp3试试。
● 鸣学
mimihu88
帖子: 552
注册时间: 2006-04-03 11:26

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#3

帖子 mimihu88 » 2009-03-16 13:55

eexpress 写了:针对原代码: lame接受 - 的输入,mplayer应该也支持 - 的输出。不如作一个管道。省得rm
再说了,lame直接支持wav。为什么要启用mplayer呢。
lame xxx.wav xxx.mp3试试。
终端命令(先cd到目标目录):

for i in *.wav; do lame -h -b 192 "$i" "${i%.wav}.mp3";rm -f "$i" ; done

也可以写成脚本:

#!/bin/bash
#
# wav转换为mp3
#
for i in *.wav; do

lame -h -b 192 "$i" "${i%.wav}.mp3";rm -f "$i" ;
done

复制以上内容,保存,属性里面改为可执行,把脚本扔到wav文件所在目录,点击-选择“运行”,如果要保留原wav文件,把脚本里面“rm -f "$i" ;”这部分删除,-b 192可以改为自己喜欢的,比如128等等

我以为wiki很权威的,有就懒得再去研究 :em02
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#4

帖子 oneleaf » 2009-03-16 16:00

我重新修正了脚本,包括文件名后缀问题,更新了wiki,在mp3压缩引入了vbr参数,你试试看

for i in *; do base=${i%.*}; mplayer -quiet -vo null -vc dummy -af volume=0,resample=44100:0:1 -ao pcm:waveheader:file="$i.wav" "$i" ; lame -V0 -h -b 192 -vbr-new "$i.wav" "$base.mp3"; rm -f "$i.wav" ; done
mimihu88
帖子: 552
注册时间: 2006-04-03 11:26

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#5

帖子 mimihu88 » 2009-03-16 16:39

oneleaf 写了:我重新修正了脚本,包括文件名后缀问题,更新了wiki,在mp3压缩引入了vbr参数,你试试看

for i in *; do base=${i%.*}; mplayer -quiet -vo null -vc dummy -af volume=0,resample=44100:0:1 -ao pcm:waveheader:file="$i.wav" "$i" ; lame -V0 -h -b 192 -vbr-new "$i.wav" "$base.mp3"; rm -f "$i.wav" ; done
1.这个我刚刚试了,转换为mp3没有问题,但是原文件(wav那些)没有删除;
2.像死ee说的,为什么要mplayer+lame,lame就可以了,请看三楼我的结果,那个是ee没头没脑扔过来一句话以后我研究半天使用的办法,很好,没什么问题阿!wiki照3楼改有什么问题吗?
mimihu88
帖子: 552
注册时间: 2006-04-03 11:26

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#6

帖子 mimihu88 » 2009-03-16 16:40

就简单一句:
for i in *.wav; do lame -h -b 192 "$i" "${i%.wav}.mp3";rm -f "$i" ; done
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: 论坛UbuntuSkills里面一条批量转为mp3格式的命令有错误?!

#7

帖子 oneleaf » 2009-03-16 18:12

这个脚本不是专门给wav使用的,是给rmvb、mpeg等电影使用的,第一步将电影的音频导出为.wav文件,第二步压缩。

当然我测试压缩rmvb,mpeg的混合视频,保留原始视频,删除临时转换的wav文件,当然如果直接使用wav使用,自然不删除原始文件了。

就是一步从视频文件提取音频转为mp3,在演唱会提取音乐时用的。
回复