将 opengl 缓冲区写入视频的工件
Artifacts on writing opengl buffer to a 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 变量)保存到磁盘,其中 none 有任何瑕疵。似乎 WriteFrame 在这里造成了一些麻烦。
请帮我解决问题。
切换到无损压缩方案,例如 PNG(用于图像)或 Huffyuv(用于视频)。
我正在使用 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 变量)保存到磁盘,其中 none 有任何瑕疵。似乎 WriteFrame 在这里造成了一些麻烦。 请帮我解决问题。
切换到无损压缩方案,例如 PNG(用于图像)或 Huffyuv(用于视频)。