Pygame/MoviePy-视频显示帧率低且窗口大小超出屏幕

7
我一直在寻找一种在Pygame中显示视频的方法,因为我正在进行一个新的故事视频游戏项目。最终我发现了Moviepy,它运行良好...但是每秒只显示24帧视频,并且显示窗口比我的屏幕还要大。(在Windows 10笔记本电脑上,屏幕大约11英寸)。
声音好像没问题,但视频速度太快,不同步。
我已经按照文档上说的使用调整大小函数,但没有效果。
我也找不到任何与帧率有关的内容。
所以我需要一种方法来缩小窗口并校正帧率。
这是我使用的代码:
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()

希望能得到任何帮助,谢谢 :)

编辑:我测试了一个帧速相同的不同视频,它可以完美地工作?但再次说明,那只是一个简单的线在屏幕上飞来飞去。


很明显,根据你的渲染设备大小,你设置的宽度可能会感觉过大。你是否尝试过多个值来检查调整大小是否有效?顺便说一句,如果可能的话,请编辑你的帖子并附上一些实际可工作/不工作的代码示例,以及一些预期输出与实际输出的比较。 - LoneWanderer
嗯,我还尝试将其大小缩小一半,即缩小0.5倍……但没有成功。 - Eleeza the Other World Wizard
我使用IDLE进行编程。 - Eleeza the Other World Wizard
你们使用的pygame版本是什么?Python呢?相关依赖项已安装并附有其版本(请参见我的更新答案)?截至2019年4月,Pygame的版本为1.9.6(https://www.pygame.org/news/2019/4/pygame-1-9-6-released-with-a-few-regression-bug-fixes)。你们使用的是树莓派还是特定平台?你们的屏幕尺寸是多少?我们*真的*需要更多信息来帮助你。否则,你将得不到任何答案。 - LoneWanderer
那是一个 example.com 的链接。但我会去谷歌搜索它。 - Eleeza the Other World Wizard
显示剩余12条评论
2个回答

1
一次两秒钟的谷歌搜索给我这个链接
它说明:

可以按如下方式预览剪辑

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 需要安装至少一个以下软件包中的一个:ScipyPILPillowOpenCV


仍然没有任何进展。:( 对此感到抱歉。 - Eleeza the Other World Wizard

0

我不确定这是否是问题,但对于屏幕大小,您应该使用pygame.display.set_mode((WIDTH, HEIGHT))(将WIDTH值更改为所需的宽度,将HEIGHT值更改为所需的高度)。此外,我注意到Pygame存在一个问题,即大窗口会有很多延迟,因此建议使用较小的窗口大小。我发现500x500是没有延迟的最大尺寸(至少在我的笔记本电脑上)。


它调整大小以适应过大的视频,所以...不行,抱歉。 - Eleeza the Other World Wizard
哦,好的...那我想我无法回答这个问题。我从未使用过moviepy,只用过Pygame。 - Nv7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接