由于一个新的故事视频游戏项目,我一直在寻找一种方法来尝试在Pygame中显示视频。我终于偶然发现了Moviepy,它运作正常……除了视频显示每秒仅显示24帧之一,并且显示的窗口大于屏幕显示。 (在具有11英寸(我认为)屏幕的Windows 10笔记本电脑上)
声音还可以,但是视频也太快了,因此不同步。
我已经按照文档中的说明尝试过resize函数,但是它没有任何作用。
我找不到与帧率有关的任何东西。
所以我需要一种使窗口变小并校正帧速率的方法。
这是我使用的代码:
from moviepy.editor import VideoFileClip
from moviepy.video.fx.resize import resize
import pygame
pygame.display.set_caption('My video!')
clip = VideoFileClip('Eleeza Crafter And The Cloud Colours Trailer.mp4')
clip.fx(resize, width=240)
clip.preview(fps=24)
pygame.quit()
任何帮助将不胜感激。谢谢:)
编辑:我以相同的帧频测试了另一部视频,效果很好吗? 再说一次,那只是一条简单的线在屏幕上飞来飞去。
答案 0 :(得分:0)
一个2秒钟的谷歌给了我this link。
它说明:
可以按如下方式预览剪辑
my_clip.preview() # preview with default fps=15
my_clip.preview(fps=25)
my_clip.preview(fps=15, audio=False) # don't generate/play the audio.
my_audio_clip.preview(fps=22000)
也(取决于您的导入方法:
这样,您可以使用
clip.resize(width=240)
代替更长的clip.fx( resize, width=240)
。
仍来自文档:
对于高级图像处理,您将需要一个或多个这些软件包。例如,使用clip.resize方法需要至少 Scipy , PIL ,枕头或 OpenCV 中的一个已安装。
答案 1 :(得分:0)
我不知道这是否有问题,但是对于屏幕尺寸,您应该使用pygame.display.set_mode((WIDTH, HEIGHT))
(将WIDTH
的值更改为所需的宽度,将HEIGHT
的值更改为所需的宽度另外,我在pygame中注意到的是,大窗户上有很多滞后,因此建议您使用较小的窗户尺寸。我发现最大尺寸为500x500,没有滞后(至少在我的笔记本电脑上)>