Pygame.movi​​e 丢失

xXl*_*uXx 4 python pygame movie raspberry-pi raspbian

我目前正在一个小项目中使用 RPi 3B(最新的 Raspbian Jessie),该项目涉及播放一个简短的 .mp4 文件。由于 Pygame 似乎支持播放 .mpg 文件,因此我将视频转换为该格式。

但是,当我尝试导入电影模块时,出现常见的 Python 导入错误:

Traceback (most recent call last):
    File "film_app.py", line 3, in <module>
       import pygame.movie
ImportError: No module named movie
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我认为其他人也遇到了与此处所述相同的问题。我真的不明白是否有解决方案,或者我在 RPi 上有什么替代方案。

Pygame、python 和 Raspbian 是最新的。

Sim*_*ten 8

movie 不是子包 pygame

像这样使用它:

movie = pygame.movie.Movie("file.mpg")
Run Code Online (Sandbox Code Playgroud)

但请注意:

电影 api 已弃用,您的 pygame 很可能不包含此 api 的任何代码。

代码只会抛出 NotImplementedError 异常。

遗憾的是,您不能再将 pygame 用于此类电影。

在这里Lenard Lindstrom 解释了这一点:

“虽然没有正确记录,pygame.movi​​e 模块已经弃用了一段时间,默认情况下不再构建。使用 ffmpeg 将视频文件转换为 MPEG1 的文档说明已经过时。我构建了电影模块并在其上进行了测试32 位 Linux Mint 17.1(Ubuntu 14.04.2 LTS,Trusty Tahr)并在使用 avconv(ffmpeg 的一个分支)从 MPEG4 转换的电影上对其进行测试;pygame segfaulted。还要注意 pygame.movi​​ e 在 Windows 下有问题。

更新的、实验性的 pygame._movie 模块基于 ffmpeg,在 Linux 上从来没有对我有用;它会锁定。此外,在 Linux 上,libav 现在比 ffmpeg 更受欢迎。此外,它依赖于在 SDL2 中消失的 SDL 覆盖。

作为旁注,pygame.examples.movi​​eplayer 被重新用于使用 pygame._movie 而不是 pygame.movi​​e。此更改未记录在案。

我喜欢 Pygame 中电影支持的想法。但是 pygame.movi​​ e 使用过时的 smpeg 库,而 pygame._movie 从未完全正常工作。也许可以基于现有的命令行电影播放器​​程序编写另一个电影模块。”