SoX 播放音频

play 1.mp3 fade 5 30 10
fade 后面的参数为 Fade in 时长 [播放总时长 [Fade out 时长]]
上面的参数表示前 5 秒淡入,中间 15 秒正常播放,后 10 秒淡出

编译安装

源代码下载

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 和 lame 两个库都是必须的,如果使用 yum 安装的话,还需要同步安装 libmad-devel 和 lame-devel,才能支持播放mp3。源代码编译安装会直接安装 devel 库。

安装libmad

tar -xzvf libmad-0.15.1b.tar.gz
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

基本上就都可以了sox要支持mp3格式在执行./configure后要注意已下的几处是否是yes

gsm........................yes (in-tree) 
lpc10......................yes (in-tree) 
mp2/mp3....................yes 
id3tag....................yes 
lame......................yes 
lame id3tag...............yes 
dlopen lame...............no 
mad.......................yes

如果没问题执行 make -s && make install 来安装sox
最后可以用 sox a.mp3 b.mp3 ab.mp3 来验证sox是否成功

这样就安装完成了,可以运行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了。

Ubuntu22.10 Rust调用rodio库播放音频报错 ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
解决方案:

sudo apt install multimedia-jack
pulseaudio --kill
jack_control  start
posted @ 2023-02-11 16:13  汉学  阅读(154)  评论(0)    收藏  举报