Pygame / MoviePy-视频以可怕的帧速率显示,并且窗口尺寸大于我的屏幕

时间:2019-05-07 12:55:27

标签: python video pygame moviepy

由于一个新的故事视频游戏项目,我一直在寻找一种方法来尝试在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()

任何帮助将不胜感激。谢谢:)

编辑:我以相同的帧频测试了另一部视频,效果很好吗? 再说一次,那只是一条简单的线在屏幕上飞来飞去。

2 个答案:

答案 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,没有滞后(至少在我的笔记本电脑上)