我正在使用 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 在这里造成了一些麻烦。 请帮我找出问题所在。
最佳答案
切换到无损压缩方案,例如 PNG(用于图像)或 Huffyuv(用于视频)。
关于python - 将 opengl 缓冲区写入视频的工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842658/