当前位置: 首页 > news >正文

rockit 学习、开发笔记(六)(VENC)

前言

上节我们讲到了VDEC解码模块,那当然少不了VENC编码模块了,一般有编解码的需求都是为了压缩视频的大小,方便减少传输所占用的带宽。

概述

VENC 模块,即视频编码模块。本模块支持多路实时编码,且每路编码独立,编码协议和编码 profile 可以不同。

编码数据流程图
典型的编码流程包括了输入图像的接收、图像的选择、镜像、裁剪缩放、图像内容的遮挡和覆盖、图像的编码、以及码流的输出等过程。

内部数据流程处理如下图:
在这里插入图片描述

内部数据流程看起来还是蛮好理解,但是看到编码模块相关的API还是稍微有点晕😵的,这些API我到现在大部分都没有使用到,目前我的水平只能支持能够实现简单编码属性修改。

初始化

RK_MPI_VENC_CreateChn

该函数用于创建编码通道。

在这里插入图片描述

通过该函数创建并设置编码通道属性,设置结构体里面三个属性

VENC_ATTR_S stVencAttr;//编码器属性
VENC_RC_ATTR_S stRcAttr;//码率控制器属性
VENC_GOP_ATTR_S stGopAttr;//Gop Mode 类型的结构体
VENC_ATTR_S

该结构体用于定义编码器属性。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

要注意的是里面所有的成员是静态的,开始接收编码流后就不能修改了

VENC_RC_ATTR_S

该结构体用于定义编码通道码率控制器属性
在这里插入图片描述在这里插入图片描述在这里插入图片描述
上面的属性需要根据不同编码协议模式来配置,里面的属性可以配置的属性有gop,帧率信息,码率等等,不同编码协议所配置的信息也会有所不同。

RK_MPI_VENC_StartRecvFrame

该函数启动编码通道开始接收输入图像。

在这里插入图片描述

调用该函数后,就算是开始正式接收数据流进行编码了,可以通过与VI或者VPSS等前级模块bind的方式来不断编码数据流。

RK_MPI_VENC_GetStream

该函数用于获取编码后的码流。
在这里插入图片描述

对于获取方式有两种不同的方式。
在这里插入图片描述

RK_MPI_VENC_ReleaseStream

该函数用于释放码流缓存,与上面RK_MPI_VENC_GetStream配对使用

在这里插入图片描述

RK_MPI_VENC_RequestIDR

该函数用于请求I帧
在这里插入图片描述

以上就是venc编码模块比较常用的一些接口,基本流程就是设置通道属性然后,使能通道开始接收数据来编码,然后在从内部队列获取编码流,一般常规用法都是VI绑定VPSS再绑定VENC来进行编码的。

http://www.lryc.cn/news/499597.html

相关文章:

  • spring技术点
  • R语言使用“纽约市数据集中的优步皮卡”数据创建不同年度时间范围的可视化
  • 电阻计RM3544、RM3545的使用
  • Unity 策略游戏地图上的网格是如何实现的
  • 《鸟哥的Linux私房菜基础篇》---4 Linux档案的压缩与打包
  • Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置
  • Spring中Bean的作用域深入剖析与技术实践
  • Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)
  • 工具类-列表请求工具 useList
  • Scala中的正则表达式01
  • 基于SpringBoot的养老院管理系统的设计与实现
  • Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
  • 面向对象系统的分析和设计
  • Vue 提供了Transition,可以帮助你制作基于状态变化的过渡和动画
  • 视频编辑技术:一键生成混剪视频的AI技术应用
  • Android11 MTK 开机默认启动热点
  • Vue Web开发(二)
  • Linux-实用操作
  • Elasticsearch:使用 Elastic APM 监控 Android 应用程序
  • Go的简单问题问答
  • 【攻防实验】溯源与取证分析实验
  • THREE.js 入门(一)xyz坐标系
  • AUTOSAR CP中基于通信模块(COM)的Transformer-R24的规范导读
  • ubuntu20.04安装anygrasp_sdk
  • Spring完整知识点二
  • GESP三级集训——课堂笔记(部分)
  • Spring Boot接口返回统一格式
  • Flink如何基于数据版本使用最新离线数据
  • 软件开发中的常用性能指标
  • cmakelist使用总结