Python不播放Omxplayer视频

2024-09-24 22:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个系统,其中Raspberry Pi使用Omxplayer在PyQt GUI上播放YouTube视频(我认为PyQt位是不相关的)(就像演员扮演一样,人们以前也这样做过)

PyQt程序将挂起而不播放视频,而不是播放视频。下面将更详细地解释该过程:

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

整个过程由RPi上的以下代码块负责:

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链接并使用子shell中的链接执行命令(使用os.system()

此块输出:

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脚本来完成这项工作,但似乎没有解决问题

任何帮助都将不胜感激


Tags: https脚本com视频youtube链接wwwlink