我想添加一个功能,用户可以在其中录制他们正在播放的游戏视频。我该怎么做?
答案 0 :(得分:2)
我个人没有实现这个特定问题的解决方案,但我会尝试建议一个。当然,任何解决方案都会降低您的程序卡速度,但从技术上讲,这是可能的。那么可能值得尝试的是,您可以在当前帧上使用pygame.image.tostring()
,然后将每个帧写入(追加)到文件中。所以这实际上是原始格式的视频。现在,如果你想要一些特定的视频格式,你应该只转换它,最好的方法是使用ffmpeg
(你可以在游戏退出之前使用subprocess.Popen("ffmpeg ...")
游戏中的某些参数调用它。这里唯一的问题是想要以这种方式记录的用户必须在系统中安装ffmpeg,以便可以从shell命令行调用ffmpeg。这种方法的优点 - 它应该非常快并且不会占用太多额外的内存,因为您只从二进制流中编码一次(例如当用户停止录制或退出游戏时)。
编辑:这只是一个广泛的描述,当然您还应该找到ffmpeg的wright参数,例如帧数,大小等,当然还要删除原始数据,因为它可能真的很大。