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.
答案 0 :(得分: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
答案 1 :(得分:8)
我在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。
答案 2 :(得分:4)
我超级赛亚人把头撞在墙上,然后突破了它。
解决方案是安装STABLE版本,而不是最新版本。它需要的只是一点点
:~/Downloads/avbin-linux-x86-64-7$ sudo ./install.sh
它有效。我认为他们与安装人员混在一起......
答案 3 :(得分:4)
答案 4 :(得分:3)
从here下载特定的安装程序。
然后转到下载文件夹并使用sudo运行它。
例如在我的案例中,我运行了以下内容:
<div class ="row no-gutter">
<div class ="col-sm-12" style="margin:8px 0px 0px 0px;padding-left:8px;padding-right:8px;">
<div class ="row">
<div class ="col-sm-6" style="margin:8px 0px 0px 0px;padding-left:30px;padding-right:30px;">
<div id="MainContent_UpdatePanelCentrifugeSpinAndStep" >
<div class ="row">
<div class ="col-sm-4 text-center" style="margin:2px 0px 0px 0px;padding-right:0px;">
<div class="form-control input-md" >
<input id="MainContent_chkLastCycle" type="checkbox" name="ctl00$MainContent$chkLastCycle" />
End Day Production Re-set
</div>
</div>
</div>
</div>
</div>
</div>
答案 5 :(得分:2)
我在Windows上遇到过这个问题并通过搜索引擎发现了这个问题,所以我想我会分享我的经验和解决方案。
我试图加载w WMV文件(至少是扩展名)并得到了与问题中描述的相同的异常,但我的问题是由于我使用'pip install pyglet'命令安装了pyglet,然后是AVBin安装人员。
为我解决的问题是从项目网站上找到的安装程序安装pyglet,它包含AVBin,然后一切正常。
答案 6 :(得分:2)
对我来说,我不得不手动将dll移动到正确的文件夹中
由于AVBin安装程序中存在错误,因此应将C:\Windows\System32
安装在C:\Windows\SysWOW64
内。{
(假设您使用的是Windows!)
要解决此问题,您只需进入C:\Windows\System32
并找到avbin.dll
(或avbin64.dll
,如果您使用的是64位系统)并手动剪切并粘贴它进入C:\Windows\SysWOW64
。
(或者,如果你是我,并下载了两个dll,那么移动两个......)
答案 7 :(得分:2)
我的操作系统 Windows10 64位 。
问题:
pyglet.media.riff.WAVEFormatException:解码压缩媒体需要AVbin
如何在Windows10上修复它:
从AVbin Downloads下载32位AVbin.dll
请注意:即使您使用的是64位Win10,64位AVbin dll也无法工作。
所以请下载32位代替。
1.exe中的.exe将avbin.dll
提取到windows/system32/
文件夹中
请剪切/复制并粘贴到windows/system/
文件夹。
它看起来windows10仅指32位AVbin而不是64位。
你很高兴。 试试吧!