AVBinは、MP3をデコードするためにPygletによって使用されます。リンク: 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
ライブラリは.dylibではなく.soですが、なぜ.dylibの不可解なコードが必要なのですか?これはMacではなくLinuxです(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.
それをインストールすることについて:
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
Windowsでも同じ問題があり、python 2.7 for Windowsではインストーラーがありません。
Avbin dllをフォルダーに配置する(またはインストーラーを使用してグローバルにインストールする)場合は、次のように記述します。
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
次のように、pygletのインポート後:
import pyglet
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
それはavbinをロードして楽しく使用します。
私のOSはWindows10 64ビットです。
問題:
pyglet.media.riff.WAVEFormatException:圧縮メディアをデコードするにはAVbinが必要です
Windows10でそれを修正する方法:
AVbin Downloads から32bits AVbin.dllをダウンロードします
ご注意ください:64ビットのWin10を使用している場合でも、64ビットのAVbin dllは機能しません。
そのため、代わりに32ビットをダウンロードしてください。
1.の.exeは、avbin.dll
をwindows/system32/
フォルダーに抽出します。
それを切り取ってコピーし、windows/system/
フォルダに貼り付けてください。それは、windows10が32ビットのAVbinのみを参照し、64ビットを参照していないように見えます。
あなたは行ってもいいです。それを試してみてください !
壁に頭をぶつけて超サイヤ人に行って突破しました。
解決策は、最新ではなくSTABLEリリースをインストールすることです。必要なのは少しです
:~/Downloads/avbin-linux-x86-64-7$ Sudo ./install.sh
そしてそれは機能します。彼らはインストーラーと混同していると思います...
ここ から特定のインストーラーをダウンロードします。
次に、ダウンロードフォルダーに移動し、Sudoを使用して実行します。
例えば私の場合、私は以下を実行しました:
wget https://github.com/downloads/AVbin/AVbin/install-avbin-linux-x86-64-v10
Sudo install-avbin-linux-x86-64-v10
私にとっては、具体的には ここ からAVbin 7をインストールすることでした。
AVbin 8と10は動作しているように見えましたが、音が出ませんでした。
32ビットUbuntu 12.04を実行しています。
私にとっては、dllを正しいフォルダーに手動で移動する必要がありました。
AVBinインストーラーのバグにより、C:\Windows\System32
に配置する必要があるときに、C:\Windows\SysWOW64
にインストールされます。
(Windowsを使用していることを前提としています!)
これを修正するには、C:\Windows\System32
に移動してavbin.dll
(64ビットシステムの場合はavbin64.dll
)を見つけ、手動でC:\Windows\SysWOW64
にカットアンドペーストするだけです。
(または、あなたが私で、両方のdllをダウンロードした場合は、両方を移動してください...)
私はWindowsでこの問題を抱えていて、検索エンジンを介してこの質問を見つけたので、自分の経験と解決策を共有したいと思いました。
WMVファイルをロードしようとしましたが(少なくともそれは拡張子です)、質問で説明されているのと同じ例外が発生しましたが、問題は 'pip install pyglet'コマンドを使用してpygletをインストールし、その後インストーラーからAVBinをインストールしたためです。
私の問題を解決したのは、プロジェクトサイトで見つかったインストーラーからのpygletのインストールでした。AVBinが含まれていて、すべてが正常に機能しました。