我使用 pygame 来模拟雨的运动,我想知道如何将此模拟保存为 mp4/gif 文件,因为我想将其包含在 Powerpoint 演示文稿中。除了屏幕录制之外,我还可以使用其他 Python 包和库中的函数或特定命令吗?谢谢!
最佳答案
直接从 PyGame 不可能。但是您可以使用 pygame.Surface.save() 函数将每个帧写入文件,例如:
import pygame
# Window size
WINDOW_WIDTH = 400
WINDOW_HEIGHT = 400
WINDOW_FPS = 30
### initialisation
pygame.init()
window = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ) )
frame_count = 0
exiting = False
clock = pygame.time.Clock()
while not exiting:
# handle events
# paint the screen
# save the frame
frame_count += 1
filename = "screen_%04d.png" % ( frame_count )
pygame.image.save( window, filename )
clock.tick( WINDOW_FPS ) # limit FPS
然后使用诸如ffmpeg
之类的东西将所有这些静止帧转换回动画:
ffmpeg -r 30 -f image2 -s 400x400 -i screen_%04d.png -vcodec libx264 -crf 25 window_video.mp4
请注意,大小和帧速率 -r 30
应与使用的 WINDOW_*
变量以及帧的 %04d
长度相匹配-number 匹配输出内容。
关于python - 将 Pygame 模拟保存为 mp4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65053527/