22

Pyglet 使用 AVBin 来解码 MP3。链接:http ://avbin.github.com/AVbin/Download.html

使用提供的 install.sh 安装,使用时会导致错误:

'AVbin is required to decode compressed media')
pyglet.media.riff.WAVEFormatException: AVbin is required to decode compressed media

...所以它没有正确安装?使用 python virtualenv,怀疑这可能会导致问题......虽然我在 virtualenv 中运行了 AVBin 的 install.sh,如下所示:

(SoundShenanigans)user@computer:~/Downloads/avbin-linux-x86-64-v8$ sudo bash install.sh 

更新

我找到了安装avbin的位置...它似乎安装在正确的位置=S

~/pyvien/SoundShenanigans/lib/python2.7/site-packages/pyglet/media$ ls
avbin.py   drivers      __init__.pyc   procedural.pyc  riff.pyc
avbin.pyc  __init__.py  procedural.py  riff.py

更新 2

库是 .so ,不是 .dylib ,为什么要 .dylib 神秘代码?这是 Linux 而不是 Mac(Mac 有 .dylib,Ubuntu 有 .so)

File "SoundShenanigans.py", line 4, in
  from pyglet.media import avbin
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/media/avbin.py", line 53, in
  darwin='/usr/local/lib/libavbin.dylib')
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/lib.py", line 122, in load_library
  raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.
4

8 回答 8

10

如何通过以下方式安装它:

sudo apt-get install libavbin-dev libavbin0

关于这个包的更多信息:http ://packages.ubuntu.com/source/avbin

编辑:看起来它不再包含在较新的 ubuntu 版本中。所以你必须从https://avbin.github.io/AVbin/Download.html下载它并通过

sudo sh ./install-avbin-linux-x86-64-v10
于 2013-11-19T21:39:32.543 回答
9

我在 Windows 上遇到了同样的问题,并且在 Windows 上没有适用于 python 2.7 的安装程序。

如果您将 avbin dll 放在您的文件夹中(或使用安装程序全局安装),请编写:

pyglet.lib.load_library('avbin')
pyglet.have_avbin=True

pyglet 导入后,像这样:

import pyglet
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True

它将愉快地加载和使用avbin。

于 2014-11-26T14:22:52.183 回答
4

我去超级赛亚人把头撞在墙上,然后突破了它。

解决方案是安装 STABLE 版本,而不是最新版本。它只需要一点

:~/Downloads/avbin-linux-x86-64-7$ sudo ./install.sh 

它有效。我认为他们与他们的安装人员混淆了......

于 2012-04-24T20:42:14.777 回答
4

对我来说,特别是从这里安装 AVbin 7 。

AVbin 8 和 10 似乎只是在运行,但没有任何声音出来。

运行 32 位 Ubuntu 12.04。

于 2012-08-31T07:20:05.923 回答
4

从这里下载特定的安装程序。

然后转到下载文件夹并使用 sudo 运行它。

例如,在我的情况下,我运行了以下命令:

wget https://github.com/downloads/AVbin/AVbin/install-avbin-linux-x86-64-v10
sudo install-avbin-linux-x86-64-v10
于 2017-08-23T07:33:39.453 回答
4

我的操作系统是Windows10 64bits

问题:

pyglet.media.riff.WAVEFormatException:解码压缩媒体需要 AVbin

如何在 Windows10 上修复它:

  1. AVbin 下载下载 32 位 AVbin.dll
    请注意:即使您使用 64 位 Win10,64 位 AVbin dll 也不起作用。
    所以请下载32位。

  2. 1. 中的 .exe 提取avbin.dllwindows/system32/文件夹中。
    请剪切/复制并粘贴到windows/system/文件夹。看起来 windows10 仅指 32bits AVbin 而不是 64bits。

  3. 你可以走了。尝试一下 !

于 2017-11-12T13:45:10.290 回答
3

对我来说,我必须手动将 dll 移动到正确的文件夹中。
由于 AVBin 安装程序中的一个错误,它会在C:\Windows\System32应该放置在C:\Windows\SysWOW64.
假设你在 Windows 上!

要解决此问题,您所要做的就是进入C:\Windows\System32并找到avbin.dll(或者avbin64.dll如果您在 64 位系统上)并手动将其剪切并粘贴到C:\Windows\SysWOW64.

(或者,如果你是我并下载了两个 dll,那么将两个都移动......)

于 2015-10-25T20:23:40.810 回答
2

我在 Windows 上遇到了这个问题,并通过搜索引擎找到了这个问题,所以我想我会分享我的经验和解决方案。

我尝试加载 w WMV 文件(至少这是扩展名)并得到与问题中描述的相同的异常,但我的问题是由于我使用“pip install pyglet”命令安装 pyglet,然后从安装程序安装 AVBin。

为我解决问题的是从项目站点上的安装程序安装 pyglet,它包含 AVBin,然后一切正常。

于 2012-10-19T13:18:24.003 回答