2

我从来没有做过 Qt 视频应用程序——这方面的新手。我有一个自定义视频文件格式可以使用 Qt 进行渲染。视频文件格式是 256 字节头,然后是像素数据,然后是 256 字节头,然后是像素数据,依此类推。标头包含宽度、像素高度、每像素字节数、帧速率等信息,像素数据采用拜耳 (GBRG) 格式。我可能必须在显示之前处理数据——比如转换为 RGB(还不确定)。我看到有很多与视频相关的课程,例如 QGL*、QMovie、QVideo* ... 不知道从哪里开始?我看过 mandelbrotwidget 示例,它看起来是一个不错的起点,但仍然需要一些建议。另外,我是否必须为拜耳模式编写 Qt Image 插件?

谢谢你。

4

2 回答 2

0

最好的起点是学习 Qt 中自定义绘图的基础知识。简而言之,一个非常简单的实现将要求您:

  1. 创建自定义QWidget子类
  2. 覆盖paintEvent()方法
  3. 使用QPainter/QImage将原始视频数据解码为图像数据并在屏幕上绘制

Qt 有很多很好的示例代码可以帮助您入门,例如:

http://qt-project.org/doc/qt-4.8/examples-painting.html

一旦您启动并运行了一个简单的实现,并且基本掌握了 Qt 概念/类,那么您将准备好根据需要分析、优化和使用更高级的 Qt 功能(GL、视频)。

于 2012-10-17T06:17:06.343 回答
0

好的建议是自己做所有事情。如果您有简单的数据结构,请通过简单的代码读取它C++

您也可以在不使用任何 Qt 对象的情况下进行从Bayer RGBRGB 喜欢的对话。

现在,当您每帧获得微不足道的 RGB 图像(即使在您自己的结构中)时,您可以在小部件上显示它QGL*——如果您更喜欢OpenGL渲染,或者 Qt 的类,例如QPainterQImage...

更多链接:C++ GUI Programming with Qt4, 2nd Edition , Graphics View Framework

于 2012-10-16T23:30:59.747 回答