使用Pygame播放视频
目录
1. 快捷使用
2. 问题&原因
3. 其它方式
4. 总结
一、快捷使用
↶
from moviepy.editor import *
import pygame
pygame.display.set_caption('Hello World!')
clip = VideoFileClip('生.flv')
clip.preview()
pygame.quit()
效果如下,播放完视频后,它会自动关窗口:
参考链接:How can I play a mp4 movie using Moviepy and Pygame
二、问题&原因
↶
1.在 stackoverflow 上找到的问题和原因,翻译后贴在这里:
问题1:
pygame模块消失了
我目前正在使用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
经过一些研究,我认为其他人有与此处描述的相同的问题。我真的不明白是否有解决方案,或者我在RPi上有什么替代方案。 Pygame,python和Raspbian都是最新的。
回答1:
movie不是pygame的子包
像这样使用它:
movie = pygame.movie.Movie("file.mpg")
但是,请注意:
movie api已被弃用,你的pygame很可能不会包含任何代码。这段代码将仅仅抛出 NotImplementedError 异常。悲惨的是,你再也不能像这样使用 movie 模块了。在这里,Lenard Lindstrom 解释说:
“虽然没有适当的记录,pygame.movie模块已经被弃用了一段时间,并且默认情况下不再被构建。使用ffmpeg将视频文件转换为MPEG1的文档说明已经过时了。我构建的movie模块已经被构建并经过测试32位Linux Mint 17.1(Ubuntu 14.04.2 LTS,Trusty Tahr)并使用avconv(ffmpeg的一个分支)在从MPEG4转换的电影上测试它; pygame出现了故障。另请注意,pygame.movie在Windows下存在问题。
基于ffmpeg的更新的实验性pygame._movie模块在Linux上从未为我工作过;它会锁定。此外,libav现在比Linux上的ffmpeg更受欢迎。此外,它依赖于SDL覆盖,它会在SDL2中消失。
作为旁注,pygame.examples.movieplayer被重新用于使用pygame._movie而不是pygame.movie。这一变化没有被记录。
我喜欢在Pygame中支持movie的想法。但pygame.movie使用过时的smpeg库,而pygame._movie从未正常工作