linux+lame安装好后怎么使用

linux+lame安装好后怎么使用,第1张

% lame [参数] <输入文件名>[<输出文件名>]

如需查询更多参数,可输入下列命令:

% 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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6242269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存