首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python不播放Omxplayer视频

Python不播放Omxplayer视频
EN

Stack Overflow用户
提问于 2021-01-04 18:20:31
回答 1查看 594关注 0票数 1

我正在开发一个系统,一个Raspberry在PyQt GUI上播放一个PyQt视频(我认为PyQt比特不相关)(就像演员一样--人们以前也这么做过)。

而不是播放视频,PyQt程序挂起,视频不播放。下文将对这一过程作更详细的解释:

一个YouTube链接(例如:“https://www.youtube.com/watch?v=ciASlzZCQOU"”)通过POST请求发送到我的Python (运行在无头RPi上),该脚本应该使用以下命令在Raspberry上启动omxplayer:"omxplayer -o both --orientation 0 `youtube-dl -g -f best \"{}\"`".format(youtube_link)并在运行中的PyQt程序之上显示视频。如果我在shell中手动执行逗号(通过ssh和物理地),这是有效的。

整个过程由RPi上的以下代码块处理:

代码语言:javascript
复制
elif self.path.endswith("/playVideo"):
        content_length = int(self.headers['Content-Length']) # <--- Gets the size of data

        youtube_link = self.rfile.read(content_length).decode('utf-8')
        print(youtube_link)
        play_command = "omxplayer -o both --orientation 0 `youtube-dl -g -f best \"{}\"`".format(youtube_link)
        print(play_command)
        os.system(play_command)

块所做的是解码POST数据,获取YouTube链接并在子subshell中执行带有链接的命令(使用os.system())。

这一区块的产出:

代码语言:javascript
复制
https://www.youtube.com/watch?v=ciASlzZCQOU
omxplayer -o both --orientation 0 `youtube-dl -g -f best "https://www.youtube.com/watch?v=ciASlzZCQOU"`

几秒钟后导致主程序挂起。在没有发生任何事情之后,视频就不会播放了,我不得不强制Python进程退出。

我以前能做到这一点,但我似乎打破了它,我认为这是一个简单的问题,但我似乎看不到它。我尝试过使用subprocess.Popen()而不是os.system(),甚至创建了一个shell脚本来完成这个任务,但是似乎没有什么能解决这个问题。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-04 20:30:29

Mark在评论中的建议是解决方案:在命令后面添加一个&来解决问题--这与os.system关系不大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65567794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档