可能是压缩捕获的视频并将其保存到文件过于占用 CPU 资源。如果是这种情况,那么您实际上只能在 cvNamedWindow 中看到 10 FPS,并且只有 10 FPS 写入文件中。在文件中指定 25 FPS 自然会加快播放速度。
要查看这是否确实是您的问题,您可以尝试仅将图像数据保存在内存中。我还没有尝试过,但我认为你可以使用 cvCloneImage() 来做到这一点。
您还可以尝试其他 CPU 开销较低的格式来保存视频:
CV_FOURCC('P','I','M','1') = MPEG-1 codec
CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)
CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
CV_FOURCC('U', '2', '6', '3') = H263 codec
CV_FOURCC('I', '2', '6', '3') = H263I codec
CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec