vlc mac python 绑定 vlc.py 的视频输出和位置

vlc mac python bindings video output and location of vlc.py

我希望有人可以帮助解决 Python 绑定输出问题(使用 vlc.py)

我有一个使用 vlc.py 的基本测试脚本,它运行但不播放视频。

import vlc

def setup_player(filename):
    vlc_instance = vlc.Instance('--no-audio', '--fullscreen')
    player = vlc_instance.media_player_new()
    media = vlc_instance.media_new(filename)
    player.set_media(media)
    print media.get_mrl() # File location to get title 
    print player.get_length() #Time duration of file -1 means there is no   media
    print player.get_state() #Player's state
    player.play()

setup_player('foo.mp4')

这输出

file:///Users/admin/Sites/pythontest/foo.mp4
-1
State.NothingSpecial

我不确定在哪里安装 vlc.py 模块,希望有人能提供帮助。我在使用 MacOs,VLC 2.0.9,Python 2.7.3。 运行 python 通过终端。

目前,我的 vlc.py 模块与我的测试脚本位于同一目录中 - 在 VLC.app 目录之外,尽管脚本执行时没有错误,但它没有播放视频或返回有关指定 mp4 文件的任何参数。

对于一个老生常谈的问题深表歉意!非常感谢收到任何帮助。

似乎player.play()函数没有阻塞,而是立即returns。

如果 Python 脚本随后终止,播放器将在创建后立即销毁。

如果您查看 example player in vlc.py,它在最后有一个 while True 循环,基本上一遍又一遍地读取按键以实现简单的用户界面。

因此,如果您只需添加

while True:
    pass

在你的函数结束时,它应该继续播放(用 CTRL+C 终止,直到你实现某种用户输入处理)。

至于 "installing" 脚本:不幸的是,他们提供的 vlc.py 模块只是一个简单的独立 Python 模块。它没有打包为安装工具发行版,您可以像大多数其他 Python 模块一样使用 pipeasy_install 安装。这意味着您可以(或者更确切地说必须)将其放入您自己 sys.path 的位置。

您启动脚本的当前工作目录适用于此,但如果您想要一个更永久的位置,您可以将其放入 Python 的 site-packages/Users/<your-username>/Library/Python/2.7/lib/python/site-packages 例如,如果您使用的是标准 OS X 框架 Python).

由于 API 调用成功,这意味着绑定工作正常。这里的问题是 macos x 视频输出模块无法实例化它自己的 window。它必须 嵌入到本机 Cocoa 小部件中。 您可以使用 vlc 存储库中的 qt example 或使用 x11 视频输出模块,结合 MacOS X X11 服务器(必须为最新版本的 MacOS X 安装)。