rkmedia使用记录

1.函数

1) RK_MPI_VI_SetChnAttr

_CAPI RK_S32 RK_MPI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn,const VI_CHN_ATTR_S *pstChnAttr);
  /*VI通道属性结构体指针1)pcVideoNode:video节点路径2)u32BufCnt:VI捕获视频缓冲区计数3)u32Width:宽度4)u32Height:高度5)enPixFmt:视频输入的图像格式,默认是NV12;6)enBufType:VI捕捉视频的类型;DMA或者MMPDMA:直接访问内存,相当于音视频数据直接从硬件传输到内存里面。优点:速度快缺点:消耗资源MMP:内存映射,直接把硬件外设、磁盘文件映射到虚拟内存优点:占用硬件资源比较少缺点:读写速度比较慢;有时候会数据丢失7)enWorkMode:VI的工作模式,默认是NORMAL;NORMAL:相对于“亮度模式”,该模式下正常读取camera数据并发给后级;LUMA_ONLY:亮度模式,该模式仅用于亮度统计,无法通过回调函数或者RK_MPI_SYS_Get_MediaBuffer获取数据*/VI_CHN_ATTR_S vi_chn_attr;vi_chn_attr.pcVideoNode = pDeviceName;vi_chn_attr.u32BufCnt = 3;vi_chn_attr.u32Width = u32Width;vi_chn_attr.u32Height = u32Height;vi_chn_attr.enPixFmt = IMAGE_TYPE_NV12;vi_chn_attr.enBufType = VI_CHN_BUF_TYPE_DMA;vi_chn_attr.enWorkMode = VI_WORK_MODE_NORMAL;/*设置VI通道属性 函数原型:RK_S32 RK_MPI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn,const VI_CHN_ATTR_S *pstChnAttr);参数:1)VI_PIPE ViPipe:VI管道号;2)VI_CHN ViChn:VI通道号,取值范围:0~VI_MAX_CHN_NUM;3)通道属性结构体指针返回值:0表示成功;非0返回错误码。说明:1)如果设置的通道已经通过RK_MPI_SYS_Bind()与其他通道绑定,则在这使用这个函数之前需要通过RK_MPI_SYS_UnBind()解绑;2)如果设置的通道已经通过RK_MPI_VI_EnableChn()使能,则在使用该函数之前需要通过RK_MPI_VI_DisableChn()解绑*/ ret = RK_MPI_VI_SetChnAttr(s32CamId, 0, &vi_chn_attr);

2)RK_MPI_VI_EnableChn

_CAPI RK_S32 RK_MPI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn);
  /*启用VI通道函数原型:RK_S32 RK_MPI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn)参数:1)VI_PIPE ViPipe:VI管道号;2)VI_CHN ViChn:VI通道号;*/ret |= RK_MPI_VI_EnableChn(s32CamId, 0);//

3) 编码器类型

  VENC_CHN_ATTR_S venc_chn_attr;/*VENC_ATTR_S stVencAttr;    //编码器类型VENC_RC_ATTR_S stRcAttr;   //码率控制器VENC_GOP_ATTR_S stGopAttr; //GOP属性*/memset(&venc_chn_attr, 0, sizeof(venc_chn_attr));//清空设置// venc_chn_attr.stVencAttr.enRotation=VENC_ROTATION_270;//旋转270度venc_chn_attr.stRcAttr.enRcMode = VENC_RC_MODE_H264CBR;//编码器协议类型venc_chn_attr.stRcAttr.stH264Cbr.u32Gop = 30;//H264协议编码通道Cbr模式属性-I帧间隔,取值范围:1-65536venc_chn_attr.stRcAttr.stH264Cbr.u32BitRate = u32Width * u32Height;//H264协议编码通道Cbr模式属性-数据源帧率分子// frame rate: in 30/1, out 30/1.venc_chn_attr.stRcAttr.stH264Cbr.fr32DstFrameRateDen = 1;//H264协议编码通道Cbr模式属性-目标帧率分母venc_chn_attr.stRcAttr.stH264Cbr.fr32DstFrameRateNum = 30;//H264协议编码通道Cbr模式属性-目标帧率分子venc_chn_attr.stRcAttr.stH264Cbr.u32SrcFrameRateDen = 1;//H264协议编码通道Cbr模式属性-数据源帧率分母venc_chn_attr.stRcAttr.stH264Cbr.u32SrcFrameRateNum = 30;//H264协议编码通道Cbr模式属性-数据源帧率分母venc_chn_attr.stVencAttr.enType = RK_CODEC_TYPE_H264;//编码器类型venc_chn_attr.stVencAttr.imageType = IMAGE_TYPE_NV12;//输入图像类型venc_chn_attr.stVencAttr.u32PicWidth = u32Width;//编码图像宽度,以像素为单位venc_chn_attr.stVencAttr.u32PicHeight = u32Height;//编码图像高度,以像素为单位venc_chn_attr.stVencAttr.u32VirWidth = u32Width;//stride宽度,通常与buffer_width相同,如果u32VirWidth大于buffer宽度,则必须满足16对齐venc_chn_attr.stVencAttr.u32VirHeight = u32Height;//stride宽度,通常与buffer_height相同,如果u32VirHeight大于buffer宽度,则必须满足16对齐/*编码等级:1)H264:66-baseline;77-main profile;100-high profile2)H265:默认是Main3)Jpege/MJpege:默认是baseline*/venc_chn_attr.stVencAttr.u32Profile = 77;

 3)RK_MPI_VENC_CreateChn

_CAPI RK_S32 RK_MPI_VENC_CreateChn(VENC_CHN VencChn,VENC_CHN_ATTR_S *stVencChnAttr);
  /*创建编码通道函数原型:RK_S32 RK_MPI_VENC_CreateChn(VENC_CHN VeChn, VENC_CHN_ATTR_S *stVencChnAttr)参数:1)VENC_CHN VeChn:编码通道2)VENC_CHN_ATTR_S *stVencChnAttr:编码通道属性指针返回值:成功为0;失败为非0*/ret = RK_MPI_VENC_CreateChn(0, &venc_chn_attr);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS学习笔记13:导航相关消息

前言 本人ROS小白,利用寒假时间学习ROS,在此以笔记的方式记录自己每天的学习过程。争取写满20篇(13/20)。 环境:Ubuntu20.04、ROS1:noetic 环境配置:严格按照下方学习链接的教程配置,基本一次成功。 学习链…

VBA技术资料MF116:测试操作系统是否为64位

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

洛谷P1039 [NOIP2003提高组]侦探推理

题目描述 明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这…

Android Studio 2022.3.1版本 引入包、maven等需要注意的问题

普通包 以前: // okhttp3 implementation com.squareup.okhttp3:okhttp:3.10.0 新版本: implementation("com.github.bumptech.glide:glide:3.7.0") libs文件夹中的包 以前: android {******sourceSets.main{jniLibs.srcDir…

使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)

一、前言 在业务系统开发过程中,我们必不可少的会使用数据库,在应用开发过程中,数据库连接信息往往都是以明文的方式配置到yaml配置文件中的,这样有密码泄露的风险,那么有没有什么方式可以避免呢?方案当然是有的,就是对数据库密码配置的时候进行加密,然后读取的时候再…

人工智能|推荐系统——基于tensorflow的个性化电影推荐系统实战(有前端)

代码下载: 基于tensorflow的个性化电影推荐系统实战(有前端).zip资源-CSDN文库 项目简介: dl_re_web : Web 项目的文件夹re_sys: Web app model:百度云下载之后,把model放到该文件夹下recommend: 网络模型相…

Python在小型无人机

Python在小型无人机的发展和研发中具有重要性。以下是几个原因: 简单易学:Python是一种简单易学的编程语言,具有简洁的语法和易于理解的语言结构。这使得开发人员可以更快速地理解和编写代码,从而加快了研发的进程。 多用途性&am…

Android 自定义BaseActivity

直接上代码: BaseActivity代码: package com.example.custom.activity;import android.annotation.SuppressLint; import android.app.Activity; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.os.Looper; impor…

寒假作业-day5

1>现有无序序列数组为23,24,12,5,33,5347&#xff0c;请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用直接插入排序实现升序排序 函数4:请使用插入排序实现升序排序 代码&#xff1a; #include<stdio.h&g…

macbook电脑如何永久删除app软件?

在使用MacBook的过程中&#xff0c;我们经常会下载各种App来满足日常的工作和娱乐需求。然而&#xff0c;随着时间的积累&#xff0c;这些App不仅占据了宝贵的硬盘空间&#xff0c;还可能拖慢电脑的运行速度。那么&#xff0c;如何有效地管理和删除这些不再需要的App呢&#xf…

如何使用websocket

如何使用websocket 之前看到过一个面试题&#xff1a;吃饭点餐的小程序里&#xff0c;同一桌的用户点餐菜单如何做到的实时同步&#xff1f; 答案就是&#xff1a;使用websocket使数据变动时服务端实时推送消息给其他用户。 最近在我们自己的项目中我也遇到了类似问题&#xf…

使用CMSIS-DSP库进行嵌入式音频信号处理

在嵌入式环境下&#xff0c;使用CMSIS-DSP库进行音频信号处理是一种常见的应用场景。通过CMSIS-DSP库&#xff0c;开发人员可以利用嵌入式系统的处理能力来实现各种数字信号处理&#xff08;DSP&#xff09;功能&#xff0c;例如音频滤波、均衡器、噪音消除等。本文将介绍如何在…

问题 | IT行业有哪些证书含金量高?

IT行业有哪些证书含金量高? Cisco认证&#xff08;CCNA&#xff0c;CCNP&#xff0c;CCIE&#xff09;&#xff1a;思科是全球最大的网络设备供应商之一&#xff0c;它的认证证书在网络和通信领域被广泛认可。CCNA是初级认证&#xff0c;CCNP是高级认证&#xff0c;而CCIE是专…

NLP_Seq2Seq编码器-解码器架构

文章目录 Seq2Seq架构构建简单Seq2Seq架构1.构建实验语料库和词汇表2.生成Seq2Seq训练数据3. 定义编码器和解码器类4.定义Seq2Seq架构5. 训练Seq2Seq架构6.测试Seq2Seq架构 归纳Seq2Seq编码器-解码器架构小结 Seq2Seq架构 起初&#xff0c;人们尝试使用一个独立的RNN来解决这种…

CentOS7搭建Hadoop集群

准备工作 1、准备三台虚拟机&#xff0c;参考&#xff1a;CentOS7集群环境搭建&#xff08;3台&#xff09;-CSDN博客 2、配置虚拟机之间免密登录&#xff0c;参考&#xff1a;CentOS7集群配置免密登录-CSDN博客 3、虚拟机分别安装jdk&#xff0c;参考&#xff1a;CentOS7集…

【51单片机】实现一个动静态数码管显示项目(前置知识铺垫,代码&图演示)(5)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY…

vue electron应用调exe程序

描述 用Python写了一个本地服务编译成exe程序&#xff0c;在electron程序启动后&#xff0c;自动执行exe程序 实现 1. 使用node的child_process模块可以执行windows执行&#xff0c;通过指令调exe程序 // electron/index.js var cp require("child_process"); /…

.NET Core 实现 JWT 认证

写在前面 JWT&#xff08;JSON Web Token&#xff09;是一种开放标准, 由三部分组成&#xff0c;分别是Header、Payload和Signature&#xff0c;它以 JSON 对象的方式在各方之间安全地传输信息。通俗的说&#xff0c;就是通过数字签名算法生产一个字符串&#xff0c;然后在网络…

从事机器视觉,笔记本电脑该如何选型

本人也是第一次选型&#xff0c;大家有好的建议可以多多发评论。 机器视觉和深度学习&#xff0c;对计算机的CPU、内存、显卡、硬盘要求都较高&#xff0c;价位基本到7000以上&#xff0c;显卡一般不会差的&#xff01; 选型原因&#xff1a; 1&#xff09;CPU要好&#xff…

bpmn.js一个基于Bpmn 2.0的前端工作流展示和绘制工具

bpmn.js是由开源工作流引擎camunda内部组织BPMN.IO组织开发的一款基于BPMN 2.0的工作流展示、编辑的web端工具库。由于工作流引擎activiti、flowable、camunda属于同宗分流&#xff0c;其工作流定义格式大致相同&#xff0c;所以我们可以使用bpmn.js完美融合其中任一工作流引擎…