正在C++中读取原始RGB视频文件
Reading Raw RGB video file in C++
我正在做我的任务,读取一个.rgb视频文件并将其显示在窗口中。我只知道如何在C++中读取和显示图像。当我阅读视频并逐帧显示时,该怎么办。我不想使用第三方库,只想使用纯C++和windows编程。我的想法是:首先用fopen将整个视频文件加载到程序中,并为其分配缓冲区。然后就像显示图像一样,我想将整个视频视为一个帧数组,所以在渲染完第一帧后,我将转到下一帧。此外,如何保持视频显示在恒定的fps?如果你有任何学习资源或编码片段,那将是非常有帮助的!感谢
因为您还没有提到您正在使用的平台。但这个片段将帮助您逐帧读取文件。
#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;
}
}
在不使用任何第三方库的情况下完成这项工作将是一项艰巨的工作!
您可以使用OpenCV库来完成这项工作。检查http://opencv.org/
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 在 C++ 中将 RGB 更改为灰度
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- Qt中的RGB图像处理
- 在C++中查找像素 RGB 数据的最快方法是什么?
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 ffmpeg 将平面 RGB 图像组合成无损视频
- 如何使用OpenCV或其他图像处理库从RGB数据写入YUV420视频帧
- 如何使用C++通过Kinect SDK获得RGB视频源的骨骼数据
- 正在C++中读取原始RGB视频文件