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

时间:2015-03-10 22:04:03

标签: python macos python-2.7 vlc

我希望有人可以帮助解决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文件。

道歉一个平庸的问题!非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

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

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

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

所以如果你只是添加

while True:
    pass

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

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

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

答案 1 :(得分:1)

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