跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何使用Rockchip MPI进行视频流处理和UI叠加?

大家好,我是顺亿,今天来跟大家聊聊Rockchip MPI这个强大的媒体处理接口。是不是很多人都在问,Rockchip MPI到底怎么用?怎么在视频流上叠加UI呢?今天我们就来聊聊这个话题。

Rockchip MPI,全称Rockchip Media Process Interface,是Rockchip提供的一个媒体处理接口,它可以让我们快速开发应用软件,而不必关心底层复杂的硬件处理。它支持视频捕获、编码、解码、视频输出显示等功能,非常强大。

项目背景

我的一个项目需要在VO模块上叠加一层UI层,具体来说,就是需要在最上层显示一个QT应用,即使在切换屏幕画面后也要能够显示。为了实现这个功能,我们决定在Rockit的UI层中实时显示QT的UI,涉及的模块大致上有SYS、MB、VO、RGN等。

学习Rockchip MPI的入门方法

首先,我们可以从Rockchip官方提供的demo入手,这些demo可以帮助我们更好地理解Rockchip MPI的用法。在Rockchip的SDK中,rockit相关代码的路径是在platform/external/rockit/。

目前我的项目现有的视频处理是外部视频流不进行处理直接给到显示设备,也就是VI -> VO。现在我们需要加一层UI,也不需要修改原先的视频流,只需要在原有的显示画面上叠加上我们的UI。关于UI的显示模块,我们可以使用RGN模块,即RGN -> VO。

接下来,我们可以参考之前的demo代码以及结合rk提供的官方文档,看看大概的流程。代码中的main函数会进行参数的初始化工作,然后进入相关模块的初始化。大部分内容我们不需要理解,可能需要修改的地方是一些参数的修改。

switch (ctx->enMode) { case TEST_VI_MODE_VI_FRAME_ONLY: if (!ctx->stViChnAttr.u32Depth) { RK_LOGE(

相关文章