使用管道时VLC无法打开MRL

问题描述

我想从管道中播放视频,并且尝试使用python-vlc。(我不喜欢使用subprocess.Popen,因为我需要将VLC窗口嵌入pyqt中)

我尝试了一个像这样的简单代码。

import os,time,vlc

r,w = os.pipe()

instance = vlc.Instance()
mediaplayer = instance.media_player_new()
mediaplayer.set_media(instance.media_new_fd(r))
mediaplayer.play()
time.sleep(5)

但是收到以下错误消息:

filesystem stream error: cannot open file \\3 (Bad file descriptor)
main input error: 您的输入无法被打开(Your input cannot be open)
main input error: VLC 无法打开 MRL「fd://3」。详情请检查日志。(VLC is unable to open the MRL fd://3,please check the log for detial)

我试图将管道切换到打开的fd,但是没有任何改变。

...
fd = os.open('test.mp4')
...
mediaplayer.set_media(instance.media_new_fd(fd))
...

我尝试直接使用文件名,然后一切顺利。

mediaplayer.set_mrl('test.mp4')

我不确定我的代码有什么问题。谢谢您的帮助!

我在使用Python 3.8,VLC 3.0.11的Win 10 x64上运行脚本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)