我正在完成阅读.rgb视频文件并在窗口中显示的任务。我只知道如何用C ++读取和显示图像。阅读视频并逐帧显示时,我该怎么办?我不想使用第三方库,只需要纯C ++和Windows编程。 我的想法是:首先使用fopen将整个视频文件加载到程序中,然后为其分配缓冲区。然后就像显示图像一样,我想将整个视频视为一个帧数组,所以在渲染第一帧后,我将转到下一帧。另外,如何将视频显示保持在恒定的fps?如果您有任何学习资源或编码,那将非常有帮助! 感谢
答案 0 :(得分:0)
在不使用任何第三方库的情况下执行此操作将会有很多工作!
您可以使用OpenCV库来完成工作。查看http://opencv.org/
答案 1 :(得分:0)
由于您还没有提到您正在使用的平台。 但是这个片段将帮助您逐帧读取文件。
#include <stdio.h>
int main()
{
FILE * fp = NULL;
int size = 800 * 600 * 2;
unsigned char * rawData = NULL;
fp = fopen("raw.rgb", "r+b");
rawData = (unsigned char *)malloc(size);
if (NULL == rawData)
return -1;
if (fp)
{
while(!feof(fp))
{
fread(rawData, size, 1, fp);
// GOT FRAME
}
fclose(fp);
fp = NULL;
}
}