Linux中使sox支持mp3的encoding和decoding

sox 自身是不支持 mp3 格式的 decodingencoding 的,也就不能对 mp3 进行任何操作或者输出 mp3 文件。

直接使用 soxmp3 文件进行操作会提示这两个错误:

SoX was compiled without MP3 decoding support
SoX was compiled without MP3 encoding support

项目需要将 wav 转换成 mp3 ,并且切割长 mp3 文件为多个短文件,这里我是借助 lame 来编码 mp3 输出, libmad 库来解码 mp3

sox 以及两个库的介绍和下载:

SoX http://sox.sourceforge.net
download: https://nchc.dl.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.gz

Lame MP3 encoder  http://lame.sourceforge.net
download: https://nchc.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz

libmad MP3 decoder   http://www.underbit.com/products/mad
download: https://nchc.dl.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz

安装 libmad

tar -xzvf libmad-0.15.1b.tar.gz
#强行插入一步备注A
cd libmad-0.15.1b
./configure
make install

备注A:解压后需要修改一下编译参数,不然会编译报错:

gcc: error: unrecognized command line option '-fforce-mem'

修改configure文件,搜索 -fforce-mem ,删除这一行即可。

参考:https://stackoverflow.com/questions/16835803/gcc-error-unrecognized-command-line-option-fforce-mem

安装 lame

tar -xzvf lame-3.100.tar.gz
cd lame-3.100
./configure
make install

这时候已经可以使用 lame 命令了,试试 lame --help

安装 sox

tar -xzvf sox-14.4.2.tar.gz
cd sox-14.4.2
./configure
make install

这样就安装完成了,可以运行 sox --version 试试,也有人很不幸,比如博主我,运行 sox 命令遇到了类似这种报错:

sox: error while loading shared libraries: libsox.so.3: cannot open shared object file: No such file or directory

这是因为使用了共享库文件,动态链接库的原因,运行 ldconfig 命令刷新一下库缓存就可以了。

参考:https://blog.csdn.net/u011641885/article/details/49071081

跟踪库加载
ldd /usr/local/bin/sox
库文件位置
/usr/local/lib
运行命令刷新库缓存
ldconfig

到此,就可以使用 sox 进行编码解码操作了,你的 sox 完全支持 mp3 了。

标题:Linux中使sox支持mp3的encoding和decoding

原文链接:https://beltxman.com/2341.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

Linux中使sox支持mp3的encoding和decoding”上有 2 条评论;

评论已关闭。

Scroll to top