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来进行编码的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Dapper创建一个简单的查询

1.先在NuGet上下载Dapper包 2.创建对应的model 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 数据显示 {public class User{public int UserId { get; set; }public…

wireshark网络安全流量分析基础

网络安全流量分析领域中,wireshark和csnas是取证、安全分析的好工具,包括很多研究安全规则、APT及木马流量特征的小伙伴,也会常用到两个工具。这两款流量嗅探、分析软件,今天先介绍wireshark作为安全分析工具的基本使用。 2|002.…

深度学习笔记25_LSTM实现糖尿病探索与预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 一、我的环境 1.语言环境:Python 3.9 2.编译器:Pycharm 3.深度学习环境:TensorFlow 2.10.0 二、GPU设置…

使用docker创建cloudstack虚拟主机

文章目录 概要 环境准备: 1.使用rockyLinux:8镜像 2.配置yum源 3.添加vim cloudstack.repo为以下内容 4.前期我们已经搭好了cloudstack平台,这里需要映射几个目录到容器里面, 5.创建Dockerfile 6.构建镜像 7.使用命令创建…

云计算对定制软件开发的影响

在当代数字世界中,云计算是改变许多行业(包括定制软件开发)的最伟大的革命性趋势之一。由于这些公司努力寻求更好、更多不同的方式来履行职责,因此云计算与传统的内部部署基础设施相比具有许多不可否认的优势。这种范式转变对定制…

Ubuntu Linux用户与组的管理

Ubuntu Linux操作系统- 第一弹 由猪猪侠开启Linux操作系统的学习 文章目录 前言Linux操作系统的发展Linux版本 Linux用户账户及其类型超级用户系统用户普通用户 Ubuntu超级用户权限与管理员Linux的超级用户权限解决方案Ubuntu管理员sudo命令su命令Ubuntu启用root登录 组账户及其…

案例研究|HYPER PaaS低代码工具携手DataEase嵌入式版,服务工业制造企业数智化转型

杭州星瀚智磐科技有限公司(以下简称为“星瀚智磐”)成立于2021年,是一家专注于低代码平台研发的高科技企业。星瀚智磐的核心产品HYPER PaaS低代码工具主要为制造业用户提供数字化解决方案。HYPER PaaS基于低代码平台简单的拖拉拽操作&#xf…

Linux-实用操作

文章目录 一. 各类实用小技巧(快捷键)1. ctrl c 强制停止2. ctrl d 退出登出3. history 查看历史命令4. !命令前缀,自动匹配上一个命令5. ctrl r,搜索历史命令6. ctrl a | e,光标移动到命令开始或结束7. ctrl ← | →,左右跳…

部署项目报错

vue2项目部署后 Error: Cannot find module /views/*** 1.起因 登录页、首页等静态页面可以正常进入,后端访问也正常,可以获取到验证码。 但是登录之后会发现首页空白或者进入不到首页 F12查看有报错信息:Error: Cannot find module ‘/v…

微信小程序配置less并使用

1.在VScode中下载Less插件 2.在微信小程序中依次点击如下按钮 选择 从已解压的扩展文件夹安装… 3.选中刚在vscode中下载安装的插件文件 如果没有修改过插件的安装目录,一般是在c盘下C:\用户\用户名.vscode\extensions\mrcrowl.easy-less-2.0.2 我的路径是&#xf…

gpt-computer-assistant - 极简的 GPT-4o 客户端

更多AI开源软件: AI开源 - 小众AIhttps://www.aiinn.cn/sources gpt-computer-assistant是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此,这是一个全新且稳定的项目。此时,您可以轻松地将其作为 Python 库安装&am…

使用PPT科研绘图导出PDF边缘留白问题解决方案

使用PPT画图导出PDF格式后,边缘有空白,插入latex不美观,解决方案为自定义PPT幻灯片母版大小,如题步骤为: 1、查看已制作好的图片的大小,即长度和宽度 2、选择自定义幻灯片大小 3、自定义幻灯片大小为第1…

【PyTorch】(基础三)---- 图像读取和展示

图像读取和展示 pytorch本身并不提供图像的读取和展示功能,利用pytorch执行计算机视觉任务的时候,通常是利用opencv等工具先进行图像处理,然后将结果转化成tensor类型传递给pytorch,在pytorch执行之后,也可以将tensor…

智能合约

06-智能合约 0 啥是智能合约? 定义 智能合约,又称加密合约,在一定条件下可直接控制数字货币或资产在各方之间转移的一种计算机程序。 角色 区块链网络可视为一个分布式存储服务,因为它存储了所有交易和智能合约的状态 智能合约还…

LeetCode 热题100(十五)【动态规划】(3)

15.7最长递增子序列(中等) 题目描述:leetcode链接 300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元…

Vector软件CANdb++的信号起始位Bug

问题现象 前几天导入DBC文件发现不对劲,怎么生成代码的起始地址都怪怪的,检查下工程里面的配置,还真的是这样,一路查到输入文件——DBC文件,发现是DBC文件就有错误:一些CAN报文之后8字节长度,也…

初始Python篇(6)—— 字符串

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …

【Axure视频教程】中继器表格——筛选后的条件判断

今天教大家在Axure制作中继器表格筛选以及筛选后条件交互的原型模板,我们可以在输入框里输入员工姓名,点击查询按钮后可以筛选出对应的数据,筛选后会进行条件判断,如果筛选不到任何数据,就会显示提示弹窗。这个原型模板…

白鲸开源即将在Doris Summit Asia 2024展示新议题!

一年一度的 Apache Doris 峰会再次启航,Doris Summit Asia 2024 现已开启报名,将于 2024 年 12 月 14 日在深圳正式举办。此次峰会,将对实时极速、存算分离、湖仓一体、半结构化数据分析、向量索引、异步物化视图等诸多特性进行全方位解读&am…

【Matlab】将所有打开的图像批量保存为JPG格式

将Matlab中所有打开的图像批量保存为JPG格式 前言一、实现步骤1. 获取所有打开的图像句柄2. 遍历并保存图像 总结 前言 在使用Matlab进行数据分析或图像处理时,我们经常会生成多个图像以便观察和比较。有时,为了方便分享或存档,我们需要将这…