怎么把pygame的过程录制到mp4

其实蛮无聊的,首先,用的是cv2模块,也就是没有音频,只是动画,不过mp4压缩比大,体积小,windows支持自动播放(比如flash格式flv是不支持的)。
所谓录制,就是一帧一帧图像写入video,想想很简单,不过有个数据接口问题,代码如下(插入到pygame的刷新一帧函数的结束部分即可):

    def printAll(self):
        #。。。。。。。pygame表示各种物体代码块
        if CMG.step == 1:
            fps = 12
            size = (800,570)
            file_path = r"C:\Users\Administrator\Desktop\aa1" + str(int(time.time())) + ".mp4v"#导出路径
            fourcc = cv2.VideoWriter_fourcc('I','4','2','0')#不同视频编码对应不同视频格式(例:'I','4','2','0' 对应avi格式)
            CMG.video = cv2.VideoWriter( file_path, fourcc, fps, size )
        else:
            imagestring = pygame.image.tostring(CMG.screen.subsurface(0,0,800,570),"RGB")
            pilImage = Image.frombytes("RGB", (800,570), imagestring)
            img = cv2.cvtColor(numpy.asarray(pilImage),cv2.COLOR_RGB2BGR)
            
            CMG.video.write(img)        #把图片写进视频
            if CMG.step == len(CMG.gameAnswer)+1:
                CMG.video.release() #释放

猜你喜欢

转载自www.cnblogs.com/nocomment/p/13181455.html