2014-12-03 111 views
5

我想添加一个功能,用户可以录制他们正在玩的游戏视频。我该怎么做呢?如何将“游戏”(PyGame或Tk)录制到视频中?

+1

我认为,pygame和tk不提供你需要输出如此大量的图像数据每秒钟的算法。但是,对于Linux系统,有一个集成在PyGame中的相机模块,它可以稍微摆弄一下,以满足您的需求: http://www.pygame.org/docs/ref/camera.html – 2014-12-04 12:01:28

+0

@PatricHartmann - 它的捕获图像正确吗?我想我可以合并这些图像来获得视频。关于如何将声音添加到视频的任何想法? (它不是预定的,根据用户输入而变化,如汽车加速或刹车) – rohithpr 2014-12-05 17:57:14

+0

问题是其图像输出的速度。你每秒钟会拍几张照片。 – 2014-12-05 19:59:35

回答

2

我个人还没有对这个特定问题实施解决方案,但我会尝试建议一个。当然,任何解决方案都会减慢你的程序的速度,但从技术上讲,这是可能的。因此,可能值得尝试的是,您可以在当前帧上使用pygame.image.tostring(),然后将每个帧写入(附加)到文件中。所以这实际上是您原始格式的视频。现在,如果你想要某种特定的视频格式,你应该转换它,最好的方法是使用ffmpeg(你可以在游戏退出前使用subprocess.Popen("ffmpeg ...")从游戏中的某些参数调用它)。这里唯一的问题是,想要以这种方式记录的用户必须在系统中安装ffmpeg,以便可以从shell命令行调用ffmpeg。这种方法的优点 - 它应该是非常快的,并且不会使用太多的额外内存,因为您只能从二进制流中编码一次(例如,当用户停止录制或退出游戏时)。


编辑:这只是一个宽泛的描述,当然你应该找出也是ffmpeg的赖特参数,如帧计数,大小等等,当然删除原始数据,因为它可以是真正的大文件。

+0

它正在捕捉表面的图像吗?我想我可以合并这些图像来获得视频。关于如何将声音添加到视频的任何想法? (它不是预先确定的,并根据用户输入而变化,如汽车加速或制动) – rohithpr 2014-12-05 18:00:53

+0

@ praroh1我没有任何东西如何recod声音。如果我只是为自己做剪辑,我会同时使用微距拍摄音频 – 2014-12-06 19:27:34