将opengl缓冲区写入视频的工件

时间:2015-03-03 21:53:08

标签: python opencv opengl video

我正在使用glReadPixels来读取OpenGL上下文,并最终使用openCV视频编写器将其写入视频文件。

    screenshot = glReadPixels(0,0,w,h,GL_BGR,GL_UNSIGNED_BYTE)
    cv_image = cv2.cv.CreateImage((w,h), cv2.cv.IPL_DEPTH_8U, 3)
    cv2.cv.SetData(cv_image, screenshot)
    cv2.cv.Flip(cv_image)
    cv2.cv.SaveImage("temp.jpg", cv_image)
    cv2.cv.WriteFrame(video, cv_image)

渲染的视频显示了如下图所示的工件。我将所有帧(上面的cv_image变量)保存到磁盘中,并且没有任何伪像。似乎WriteFrame在这里造成了一些麻烦。 请帮我弄清楚问题。

enter image description here

1 个答案:

答案 0 :(得分:2)

切换到无损压缩方案,如PNG(用于图像)或Huffyuv(用于视频)。