vlc mac python绑定无视频输出

use*_*369 7 python macos video corrupt vlc

我正在使用 vlc python 绑定来播放视频。然后我得到了这些错误:

[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
Run Code Online (Sandbox Code Playgroud)

视频不会显示。不过音频没问题,我可以毫无问题地听到音频。我还可以毫无问题地调用所有其他 python vlc 函数,例如 play()、pause()...。只是没有视频。

它是VLC 2.0.8 32位,OSX 10.8.4 64位,python是3.3.2 32位。直接使用VLC播放任何视频都没有问题。仅当我使用 python 命令行时才会发生这种情况。

不过我在 Windows 7 中做了同样的事情,一切都完美。那么这是 Mac 独有的问题吗?

我从以下位置下载 python vlc 绑定:http://liris.cnrs.fr/advene/download/python-ctypes/

Oli*_*ert 1

上述解决方案(使用 -I macosx)之所以有效,是因为它启动了一个接口,该接口为 vout_macosx 模块提供 NSObject(macosx 窗口句柄)。从 libvlc 启动时,默认情况下不存在此类界面/窗口。它可以在其他平台上工作,因为视频输出模块知道如何创建自己的窗口,但在 macOS 上却不是这样。

您有 2 个选择:

  • 在 macosx 中创建一个窗口(使用本机 cocoa API 或像 Qt 这样的小部件库),并通过 set_nsobject() 方法传递其引用

  • 安装XQuartz X11服务器并使用x11视频输出模块(不是很令人满意,效率也不是很高,但它可以工作)