我正在使用 vlc python 绑定(bind)来播放视频。然后我得到了这些错误:
[0x3d0c58] main window error: corrupt module: /Applications/VLC.app/Contents/MacOS/plugins/libmacosx_plugin.dylib
[0x3c9af8] vout_macosx vout display error: No drawable-nsobject nor vout_window_t found, passing over.
[0x3178a98] main video output error: video output creation failed
[0xa48c98] main decoder error: failed to create video output
视频不会显示。但是音频还可以,我可以毫无问题地听到音频。而且我还可以毫无问题地调用所有其他 python vlc 函数,如 play()、pause() 等。就是没有视频。
是VLC 2.0.8 32bit,OSX 10.8.4 64bit,python是3.3.2 32bit。直接使用VLC播放任何视频都没有问题。这仅在我使用 python 命令行时发生。
但是我在 Windows 7 中做了同样的事情,一切都很完美。那么这是 Mac 独有的问题吗?
我从以下位置下载我的 python vlc 绑定(bind):http://liris.cnrs.fr/advene/download/python-ctypes/
最佳答案
上述解决方案(使用 -I macosx)之所以有效,是因为它启动了一个接口(interface),该接口(interface)为 vout_macosx 模块提供了一个 NSObject(macosx 窗口句柄)。从 libvlc 启动时,默认情况下不存在此类界面/窗口。它适用于其他平台,因为视频输出模块知道如何创建自己的窗口,但在 macosx 上并非如此。
你有两个选择:
在 macosx 中创建一个窗口(使用 native cocoa API 或像 Qt 这样的小部件库),并通过 set_nsobject() 方法传递其引用
安装 XQuartz X11 服务器并使用 x11 视频输出模块(不是很令人满意,效率也不高,但可以)
关于python - vlc mac python 绑定(bind)无视频输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308384/