python - 将 Pygame 模拟保存为 mp4 文件

标签 python animation video pygame mp4

我使用 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/

相关文章:

python - 在 Python 3 中使用在 exec'ed 字符串中定义的函数

jquery - CSS - 动画列表顺序

javascript - HTML5 视频暂停和倒带

python - 将 tox 与 Anaconda python 一起使用

python - Beautiful Soup 'ResultSet' 对象没有属性 'text'

android - 在 ImageView 中创建动画

javascript - 如何绕原点部分旋转直线? (做出简笔画挥手 Action )

video - 使用 FFmpeg 修剪视频并在其上添加飞旋镖效果

java - 如何测试两个大视频是否相同?

python - SQLAlchemy - 返回过滤表和相应的外表值