Sox + MP3:libsox-fmt-mp3无法正常工作

Mor*_*gan 5 audio mp3 sox

我的服务器抛出了这个错误

Sox::Error (sox FAIL formats: no handler for file extension `mp3'
)
Run Code Online (Sandbox Code Playgroud)

这个人(https://superuser.com/questions/421153/how-to-add-a-mp3-handler-to-sox)也有类似的问题。那里列出的解决方案是

sudo apt-get install libsox-fmt-mp3
Run Code Online (Sandbox Code Playgroud)

运行此命令后,我仍然遇到相同的错误,因此我卸载了sox(sudo apt-get remove sox),然后重新安装了它。在这一点上,我有信心他们都已安装了最新版本,因为任何尝试安装它们都会产生此问题。

libsox-fmt-mp3 is already the newest version.
sox is already the newest version.
Run Code Online (Sandbox Code Playgroud)

但是,我仍然收到相同的错误。

知道我缺少什么吗?

编辑:

我正在使用ruby-sox gem(https://github.com/TMXCredit/ruby-sox),它表示以下内容就足够了。

apt-get install libsox-fmt-all sox libchromaprint-dev
Run Code Online (Sandbox Code Playgroud)

但是所有这些都已安装,仍然没有骰子。

编辑:

我能弄清楚这种情况发生的唯一方法是,如果sox在错误的位置寻找lib文件。考虑到这些细节可能会有所帮助,

sudo find / -name sox
/usr/bin/sox
/usr/lib/x86_64-linux-gnu/sox
/usr/lib/mime/packages/sox
/usr/share/doc/sox
/home/deployer/apps/eko/shared/bundle/ruby/2.1.0/gems/ruby-sox-0.0.1/lib/sox

sudo find / -name libsox-fmt-mp3
/usr/share/doc/libsox-fmt-mp3
Run Code Online (Sandbox Code Playgroud)

当我卸载sox(apt-get remove sox)时,当我搜索sox时得到了这个

ubuntu@ip-10-0-0-9:~$ sudo find / -name sox
/usr/lib/x86_64-linux-gnu/sox
/home/deployer/apps/eko/shared/bundle/ruby/2.1.0/gems/ruby-sox-0.0.1/lib/sox
Run Code Online (Sandbox Code Playgroud)

为了摆脱这种袜子,希望回到除了宝石体验之外的任何地方都没有袜子,我尝试了

sudo apt-get remove libsox-dev 
Run Code Online (Sandbox Code Playgroud)

告诉我a)没有安装libsox-dev,b)我需要

sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

删除不再需要的与sox相关的大量文件。在这一点上,除了宝石之外,还没有sox文件。然后我

apt-get install libsox-fmt-all sox libchromaprint-dev
Run Code Online (Sandbox Code Playgroud)

如宝石所示。

没有骰子。同样的错误。

Mor*_*gan 2

Ult 决定只使用 wavs。几个月后(也就是现在)需求发生了变化,为了支持 IE,我必须启动并运行 mp3 支持。上述所有问题仍然适用。

最终使用了跛脚。

system "lame -b 32 --resample 8 -a #{Rails.root.join("tmp",@filename)} #{Rails.root.join("tmp",@output_file_name)}"
Run Code Online (Sandbox Code Playgroud)