如需查询更多参数,可输入下列命令:
% lame --help
=======================================================================
固定码率的例子:
=======================================================================
固定码率 联合立体声 128kbps编码:
% lame sample.wav sample.mp3
固定码率 联合立体声 128kbps编码,较高质量:(推荐)
% lame -h sample.wav sample.mp3
快速编码,较低质量(无噪音修整)
% lame -f sample.wav sample.mp3
=======================================================================
动态比特率的例子:
=======================================================================
LAME具有两种动态比特率编码:ABR和VBR。
ABR(平 均码率)是一种动态比特率编码。其他MP3编码器、Vorbis和ACC经常使用这种编码。其码率由一些度量所决定(比如,信息源中可感知的平均信息量、 或者仅为编码表中某些设定参数所必需的码率),而不是基于实际上编码/量化误差的计算值。ABR编码质量至少不会比CBR编码质量差,甚至要比CBR编码 质量好:
ABR: (--abr <x>表示在x kbps附近取一个平均码率进行编码。)
lame -h --abr 128 sample.wav sample.mp3
VBR(可变码率)是真正的动态比特率形式。在此形式下,每帧的编码都会先以推测的允许遮蔽运算为基准,对量化误差进行修正。然后,再根据修正后的量化误差决定该帧的码率。目前,正在大规模开发VBR。
在过度压缩的情况下,VBR编码得到的音频会出现问题,所以,VBR编码的码率不得低于112kbps。以下代码将会在那些难编码的帧中,使LAME提升其编码码率,但是也会导致在易编码的帧中,使LAME不会优化其编码码率:
可变码率(VBR):(使用-V以调整质量/文件大小)
% lame -h -v -b 112 sample.wav sample.mp3
=======================================================================
低码率
=======================================================================
在 较低码率,(比如每声道24kbps),推荐使用与低通滤波相结合的16kHz采样率。与其它商业编码器一样,LAME会自动采用上述方式编码。但是,如 果觉得低通滤波太多(或者不够),则需要试着调整低通滤波的裁取值以及通频带的宽度(通过使用--resample,--lowpass和 --lowpass-width等参数)。
=======================================================================
流媒体
=======================================================================
% cat 输入档名 | lame [参数] - - >输出
包含的脚本(在'misc'子目录中)
使用lame编码多个文件:
bach脚本:mlame 运行"mlame -?"以查看其用法说明。
sh脚本:auenc运行auenc以查看其用法说明。
sh脚本:mugeco.sh
Pearl脚本可重编码mp3文件和保存id3标签:
lameid3.pl
Windows脚本:
lame4dos.bat
Lame.vbs (以及一个HTML前端:LameGUI.html)
linux的音频编、解码器是由很多组织分别开发的,一些播放器开发的人会把他们组织起来,做成一个功能,界面完善的播放器。我从网上搜了一篇,很好的音频格式转换文章,如果使用bash ,可以完成批量转码。
目前常见的音频格式主要有:
wav(无压缩)、mp3/wma/ogg(有损压缩)、ape/flac(无损压缩)
无损压缩是在不损坏音质的情况下进行压缩,压缩后大概有原来的一半,主要是为了方便在网上传输和存储。压缩后可以还原成和原来一模一样的文件,如同RAR/ZIP压缩文件一样。
有损压缩是以牺牲音质来换取文件大小,音质越差,文件越小。一般320K比特率的mp3听起来和APE没有什么太明显的差别,除非是听那种专门试音的歌曲,或用非常好的耳机/音响来听。
所需要用到的工具:
MP3 相关工具: lame
OGG 相关工具: vorbis-tools
APE 相关工具: mac
FLAC 相关工具: flac
WAV 相关工具: shntool
BIN/CUE镜像分割: bchunk
1. MP3 和 WAV 之间相互转换
mp3 ->wav
lame --decode <输入_mp3文件><输出_wav文件>
wav ->mp3
lame -b <比特率><输入_wav文件><输出_ogg文件>
shntool conv -o "cust ext=mp3 lame -b <比特率>- %f" <输入_wav文件>
2. OGG 和 WAV 之间相互转换
ogg ->wav
oggdec <输出_ogg文件>-o <输入_wav文件>
wav ->ogg
oggenc -b <比特率><输入_wav文件>-o <输出_ogg文件>
3. APE 和 WAV 之间相互转换
ape ->wav
mac <输入_ape文件><输出_wav文件>-d
wav ->ape
mac <输入_wav文件><输出_ape文件>-c <压缩比率, 默认为2000>
4. FLAC 和 WAV 之间相互转换
flac ->wav
flac -d <输入_flac文件>-o <输出_wav文件>
wav ->flac
flac <输入_wav文件><输出_flac文件>-<压缩比率 1-8 , 默认为 5>
5. 分割APE/CUE镜像
i) 先解码成WAV格式
mac CDImage.ape CDImage.wav -d
再进行切割
bchunk -w CDImage.wav CDImage.cue output
或
shnsplit -f CDImage.cue CDImage.wav
ii) 也可以直接切割
shnsplit -f CDImage.cue -i ape
iii) 切割并转换到其他格式(FLAC/mp3)
shnsplit -f CDImage.cue -i ape -o flac CDImage.ape
shnsplit -f CDImage.cue -i ape -o "cust ext=mp3 lame -b 320 - %f" CDImage.ape
6. APE <->FLAC 互相转换
shnconv -i ape -o flac CDImage.ape
shnconv -i flac -o ape CDImage.flac
动态库的生成1>首先生成目标文件,但是此时要加编译器选项-fpic和链接器选项-shared,
gcc -fpic -c add.c
gcc -fpic -c sub.c
生成中间文件add.o和sub.o
2>其次生成动态库
gcc -shared –o libtiger.so add.o sub.o
生成动态库libtiger.so,libtiger.so就是我们生成的目标动态库。我们以后使用动态库和main.c程序生成可执行程序
说明:
以上两部也可以合成一步搞定:
gcc -fpic -shared add.c sub.c -o libtiger.so
2.使用动态链接库
在编译程序时,使用动态链接库和静态库是一致的,使用”-l库名”的方式,在生成可执行文件的时候会链接库文件。
1>使用命令:
gcc -o main main.c -L ./ -ltiger
2>-L指定动态链接库的路劲,-ldtiger链接库函数tiger。-ltiger是动态库的调用规则。Linux系统下的动态库命名方式是lib*.so,而在链接时表示位-l*,*是自己命名的库名。
3>但是程序会提示如下错误
error while loading shared libraries: libtiger.so: cannot open shared object file: No such file or direct
这是因为程序运行时没有找到动态链接库造成的。程序编译时链接动态库和运行时使用动态链接库的概念是不同的,在运行时,程序链接的动态链接库需要在系统目录下才行。
4>使用以下方法可以解决此问题
a. 在linux下最方便的解决方案是拷贝libtiger.so到绝对目录 /lib 下(但是,要是超级用户才可以,因此要使用sudo哦,亲)。就可以生成可执行程序了
b.第二种方法是:将动态链接库的目录放到程序搜索路径中,可以将库的路径加到环境变量LD_LIBRARY_PATH中实现:
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)