rk3568之mpp开发笔记怎么实现mpp编码摄像头实时码流?

前言:

大家好,今天给大家分享的内容是在rk3568上,通过mpp来进行实时对摄像头imx415采集的码流数据进行编码成h264或者h265,后期文章,会开发测试一下通过rtsp推流出去,然后电脑端拉流,看一下整个环路的延迟多大,会采用slice的方式去进行编码,mpp编码器有类似的配置。

ok,我们开始今天的内容!

怎么找到摄像头视频节点?

首先要明白为啥要找到摄像头的视频节点,毫无疑问,上层要能够访问摄像头,必须通过驱动层生成的设备节点,上层才可以进行操作,所以我们该怎么判断哪个视频节点(/dev/videoX)是我们需要的呢?

ok,我们可以通过下面可以看到:

07a9333cb396a14a65db78838117b89c.png

/dev/media0 和/dev/v4l-subdev0~3、/dev/video0~9等这些都是和摄像头相关的设备节点。

这里考察一下大家,/dev/v4l-subdev和/dev/video有什么区别?

那么我们回到刚才的问题,哪个/dev/videoX是我们需要的,我们可以通过media-ctrl控件来打印查看拓扑结构,这里注意,因为我现在接入了一个摄像头imx415,所以就只有一个媒体设备节点/dev/media0,那么通过下面的命令,我们来看一下整个摄像头的拓扑结构:

media-ctl -p -d /dev/media0

8cf22c99433d7b6802fcb3732be168b6.png90f45cc9ca96a487c9c9aa2f786fde7a.png

我们可以从这个拓扑图来看, entity 76是imx415摄像头注册成功的标识,然后我们可以看到摄像头/dev/vedieo0~9,其中/dev/video0和/dev/video1是我们需要的节点,其他节点暂时用不到:d907b04382e1740cf7f7fb268803881e.png

主要上面截图中中的rkisp_mainpath和rkisp_selfpath这代表什么意思,其实这个mainpath和selfpath在整个rk平台简称叫做:

  • MP,即Main Path,指Rockchip ISP驱动的一个输出节点,可输出高分辨率图像,一般用来拍照,抓取Raw图

  • SP,即Self Path,指Rockchip ISP驱动的一个输出节点,最高只能输出1080p分辨率

开始mpp编码:

有了上面的基础作为铺垫,我们开始来进行测试编码h264和h265:

首先来测试一下h264编码,分辨率大小位1080-30fps,视频节点/dev/video0:

880feca9aa68332c32f6e177e9c07397.png用potplay看一下效果:

0ed1f9cd8ac15a05821733c946f1b3ff.jpeg再来测试一下h264编码,分辨率大小位4k-30fps,视频节点/dev/video0:

7f4c0afbafe7b24b7db295cb1495f4e7.png看一下效果:

8a3cb6ab79bbe48c8b0c9283b246d8c6.jpeg

接着来测试一下h265编码,分辨率大小位1080-30fps,视频节点/dev/video0:

ab39c2fab65a52f43b817aee03ebeca7.png
mpi_enc_test -w 1920 -h 1080 -t 16777220 -i /dev/video0 -o ./out.h265
3c1a799051894bd258401d08ec5016f6.png

播放效果:

e565afffbbf940285be69585c2f1b8fe.jpeg

总结:

我们可以看到rk的mpp编码支持h264、h265、vp8/vp9、jpeg、avs等相关编码标准,更多的测试,大家可以去感受一下!

同时mpp编码实时流到底怎么实现的,我们下期内容来揭晓,敬请期待!

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

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

相关文章

Keil5 STM32库函数的工程

库函数来间接的操作寄存器 条件编译,如果你定义了USE_STDPERIPH_DRIVER (使用标准外设驱动)这个字符串,stm32f10x_conf.h才有效

单片机上电后程序不运行怎么排查问题?

1.电源检查。使用电压表测量单片机的电源电压是否正常,确保电压在规定的范围内,如常见的5V。 2.复位检查。检查复位引脚的电压是否正常,在单片机接通电源时,复位引脚通常会有一个高电平,按下复位按钮时,复位…

Linux快速入门-Linux的常用命令

Linux的常用命令 1. Linux的终端与工作区1.1 终端概述1.2 切换终端 2. Shell语言解释器2.1 Shell概述 3. 用户登录与身份切换3.1 su 命令3.2 sudo 命令 4. 文件、目录操作命令4.1 pwd 命令4.2 cd 命令4.3 ls 命令4.3.1 ls 指令叠加使用 4.4 mkdir 命令4.5 rmdir 命令4.6 cp 命令…

一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测

一区牛顿-拉夫逊算法分解深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测 目录 一区牛顿-拉夫逊算法分解深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院一区…

机器学习04-为什么Relu函数

机器学习0-为什么Relu函数 文章目录 机器学习0-为什么Relu函数 [toc]1-手搓神经网络步骤总结2-为什么要用Relu函数3-进行L1正则化修改后的代码解释 4-进行L2正则化解释注意事项 5-Relu激活函数多有夸张1-细数Relu函数的5宗罪2-Relu函数5宗罪详述 6-那为什么要用这个Relu函数7-文…

RunCam WiFiLink连接手机图传测试

RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线(易忘) 2.打开摄像头前面的盖子(易忘) 3.接上直流电源,红线为正,黑线为负 4.直流电源设置电压为14v,电流为3.15A, 通…

STM32之GPIO输出与输出

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 一.GPIO输入1.1GPIP简介1.2GPIO基本结构1.3GPIO位结构1.4GPIO的八种模式1.4.1浮空/上拉/下拉输入1.4.2 模拟输入1.4.3 推挽输出\开漏输出 二.GPIO输入2.1.按键介绍2.2传感器模块介绍2.3按键电路 一.G…

动手学深度学习-多层感知机-10预测房价

目录 下载和缓存数据集 Kaggle 访问和读取数据集 数据预处理 训练 K折交叉验证 模型选择 提交Kaggle预测 小结 之前几节我们学习了一些训练深度网络的基本工具和网络正则化的技术(如权重衰减、暂退法等)。 本节我们将通过Kaggle比赛&#xff0c…

左神算法基础巩固--1

文章目录 时间复杂度常数时间的操作时间复杂度的定义时间复杂度的作用剖析递归行为和递归行为时间复杂度的估算 排序选择排序冒泡排序插入排序归并排序小和问题问题描述解题思路 快速排序荷兰国旗问题问题描述 堆排序堆结构大根堆小根堆 桶排序 二分二分搜索 ^的运用不用额外空…

【C++读写.xlsx文件】OpenXLSX开源库在 Ubuntu 18.04 的编译、交叉编译与使用教程

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰: 2024-12-17 …

汽车电子零部件(15):AVM全景影像系统

概述: 使用ADAS全景监控(AVM)精确停车和操纵。这项先进技术采用多个摄像头,提供车辆周围环境的鸟瞰图。 360度全景监控系统: 360 AVM系统可以帮助驾驶员360度查看车辆周围的情况,避免发生碰撞。360 AVM系统由一个电子控制单元(ECU)和四个摄像头组成。ECU将处理四个摄…

C语言习题2.0

C语言习题1.0 C语言习题-CSDN博客 目录 C语言习题1.0 C语言习题-CSDN博客 找一个数字的连续因子 求N个分数的和 正整数AB 函数 预处理 文件处理 操作符 找一个数字的连续因子 //找连续因子,及其个数 int main() {int a;scanf("%d", &a);int num 0; …

flask flask-socketio创建一个网页聊天应用

应用所需环境: python 3.11.11 其他 只需要通过这个命令即可 pip install flask3.1.0 Flask-SocketIO5.4.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 最好是用conda创建一个新的虚拟环境来验证 完整的pip list如下 Package Version ----…

重拾设计模式--观察者模式

文章目录 观察者模式(Observer Pattern)概述观察者模式UML图作用:实现对象间的解耦支持一对多的依赖关系易于维护和扩展 观察者模式的结构抽象主题(Subject):具体主题(Concrete Subject&#xf…

正则表达式优化之算法和效率优化

正则表达式优化之算法和效率优化 前言 正则表达式是处理文本匹配的强大工具,但在实际应用中,如果不加以优化,可能会导致性能问题或匹配结果不精确。 本文将分三篇从表达式结构、算法效率和实际应用场景三个方面. 深入探讨如何优化正则表达…

workman服务端开发模式-应用开发-gateway长链接端工作原理

一、长链接的工作原理 Register类其实也是基于基础的Worker开发的。Gateway进程和BusinessWorker进程启动后分别向Register进程注册自己的通讯地址,Gateway进程和BusinessWorker通过Register进程得到通讯地址后,就可以建立起连接并通讯了。而Gateway进程…

排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)

排序:经常在算法题中作为一个前置操作,为了之后的贪心or else做个铺垫,虽然我们经常都只是调用个sort,但是了解一些排序算法可以扩充下知识库 排序的分类: 从存储设备角度: ✓ 内排序:在排序过程中所有数据元素都在内存中; ✓ 外排序&a…

云途领航:现代应用架构助力企业转型新篇

在数字化转型的浪潮中,现代应用架构为企业带来了灵活性、效率和创新能力。各类服务模型相继出现,为企业提供了强有力的支持,助力其顺利转型。随着技术的快速发展,企业面临的挑战和机遇也在不断演变,这促使它们必须重新…

【IMU:视觉惯性SLAM系统】

视觉惯性SLAM系统简介 相机(单目/双目/RGBD)与IMU结合起来就是视觉惯性,通常以单目/双目IMU为主。 IMU里面有个小芯片可以测量角速度与加速度,可分为6轴(6个自由度)和9轴(9个自由度)IMU,具体的关于IMU的介…

面试题整理3----nc命令的常见用法

面试题整理3----nc命令的常见用法 1. NC是什么2. NC的常用参数2.1 开启指定端口TCP监听(-l小写的L)2.2 测试端口是否能访问(-v)2.3 开启指定端口UDP监听(-u)2.4 端口扫描(-z)2.5 指定超时时间(-w)2.6 指定本地端口号连接(-p)2.7 指定的命令(-e) 1. NC是什么 nc(Net…