【问题标题】:How do you record a "game" (PyGame or Tk) into a video?您如何将“游戏”(PyGame 或 Tk)录制到视频中?
【发布时间】:2015-01-31 13:31:08
【问题描述】:

我想添加一个功能,让用户可以录制他们正在玩的游戏的视频。我该怎么做?

【问题讨论】:

  • 我认为 pygame 和 tk 不提供每秒输出如此大量图像数据所需的算法。但是,对于 Linux 系统,PyGame 中集成了一个摄像头模块,它可以满足您的需求:pygame.org/docs/ref/camera.html
  • @PatricHartmann - 它捕捉图像对吗?我想我可以结合这些图像来制作视频。关于如何为视频添加声音的任何想法? (它不是预先确定的,会根据用户输入而变化,例如汽车加速或制动)
  • 问题在于它的图像输出速度。你每秒只能拍几张照片。

标签: python python-3.x tkinter pygame


【解决方案1】:

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


编辑:这只是一个笼统的描述,当然你也应该找出ffmpeg的wright参数,例如帧数,大小等,当然删除原始数据,因为它可以是非常大的文件。

【讨论】:

  • 它是在捕捉表面的图像,对吧?我想我可以结合这些图像来制作视频。关于如何为视频添加声音的任何想法? (它不是预先确定的,会根据用户输入而变化,例如汽车加速或制动)
  • @praroh1 我不知道如何录制声音。如果我只是为自己做一个剪辑,我会同时使用麦克风来捕捉音频
猜你喜欢
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多