python - vlc mac python 绑定(bind)无视频输出

标签 python macos video vlc corrupt

我正在使用 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/

相关文章:

macos - 如何在 osx 上永久更改 .bashrc 文件中的提示?

android - mp4文件使用mediacodec和mediamuxer时的音频和视频轨道同步问题

windows - FFMPEG Concat 失败 - 系统找不到指定的文件

python - 如何在 lambda 函数中执行赋值

Python:如何禁止在属性字典中创建新键?

objective-c - 如何使用 NSTableView 的 selectedRowIndexes?

macos - 在 Mac OS X 中复制符号链接(symbolic link)

html - 在 iOS 上播放 HTML5 视频时没有声音

python - 如何在 virtualenv 中使用 pip 在 eclipse 中设置 PyDev 的 python 解释器

python - Tensorflow js : Error: Error when checking : expected conv2d_13_input to have 4 dimension(s), 但得到形状为 [100,120,3] 的数组