RK3588之ArmSoM-W3 + MPP实现多路硬解码拉流

这篇具有很好参考价值的文章主要介绍了RK3588之ArmSoM-W3 + MPP实现多路硬解码拉流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

  • 学习完MPP的解码Demo之后,想必大家都想通过一个项目来进行RK3588-MPP的解码实战。
  • 本篇文章就基于ArmSoM-W3开发板,开发一个多路硬解码项目,实现四路MPP硬解码拉流显示
  • 实现的效果如下:

RK3588四路MPP硬解码拉流

环境介绍

  • 硬件环境:
    ArmSoM-W3 RK3588开发板

  • 软件版本:
    OS:ArmSoM-W3 Debian11

思路:

ArmSoM-W3 + QT+FFmpeg +RTSP+ MPP实现多路硬解码拉流

  • mpp对外接口是输入MppPacket结构体指针:MppPacket *

    那么,MppPacket 数据从哪里来?

  • 通过FFmpeg进行拉流,拉RTSP流解封装为AVPacket数据类型,然后传给mpp进行硬解码

     1.首先由ffmpeg完成拉流工作获取到AVPacket。
    
     2.MPP接收到AVPacket数据然后转换成MppPacket再进行硬解码。
    
     3.MPP解码之后交给rga负责图片格式转换裁切等工作。
    
     4.交给qt渲染显示。
    

1. FFmpeg打开MP4格式文件或者进行拉流获取到AVPacket

核心代码:

AVPacket *av_packet = nullptr;
av_packet = (AVPacket *)av_malloc(sizeof(AVPacket));

char filepath[] = "rtsp://admin:armsom@80.0.0.211:854/armsomvideo";// rtsp 地址

avformat_open_input(&pFormatCtx, filepath, nullptr, &options)    //打开多媒体流,并且获取一些信息

 //读取一帧数据存到av_packet,av_packet是FFmpeg和MMP的数据互通接口
av_read_frame(pFormatCtx, av_packet) 

2. MPP获取到从FFmpeg传过来的AVPacket 数据然后进行硬解码

核心代码:文章来源地址https://www.toymoban.com/news/detail-738438.html

//将FFmpeg拉流获取到的av_packet数据通过函数参数传给MPP进行硬解码
int MppDecode::decode_simple(MppDecode::MpiDecLoopData *data, AVPacket *av_packet)
{
	MPP_RET ret = MPP_OK;
	MppPacket packet = nullptr;
    MppFrame  frame  = nullptr;

   //将AVPacket 数据转换为MppPacket数据 (实际上是MppPacket  ->data =  AVPacket  ->data)
    ret = mpp_packet_init(&packet, av_packet->data, av_packet->size); 
	mpp_packet_set_pts(packet, av_packet->pts);
	mpp_packet_set_dts(packet, av_packet->dts);
	
	// 输入MppPacket,输出MppFrame
	mpi->decode_put_packet(ctx, packet)
	mpi->decode_get_frame(ctx, &frame)
}

3. MPP解码之后交给rga负责图片格式转换裁切等工作

  • 从MPP解码后获得的数据是YUV_420sp类型。我们用RGA将其转换成RGB888的数据数据格式方便QT显示

4. qt渲染显示

  • qt渲染方面可以通过lable或者OpenGL来显示

5. 更多项目设计详情请前往ArmSoM官方论坛进行讨论

ArmSoM 产品介绍: http://wiki.armsom.org/index.php/ArmSoM-w3

ArmSoM 技术论坛: http://forum.armsom.org/

到了这里,关于RK3588之ArmSoM-W3 + MPP实现多路硬解码拉流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ArmSoM-W3之RK3588 - ES8388音频调试笔记

    专栏总目录 本文是基于RK3588平台,音频芯片ES8388调试总结。 外接声卡:ES8388 步骤 ① dts配置 步骤 ② 编译烧写,调试 系统声音配置: ES8388设备驱动配置 查看声卡命令: cat /proc/asound/cards 将wav文件拷贝到板子上: RK Android 播放音乐 ( RK Android SDK 标配 tiny-alsa 工具 ): RK Android

    2024年02月12日
    浏览(225)
  • ArmSoM-W3之RK3588调试imx415摄像头

    [RK3588从入门到精通] 专栏总目录 soc:rk3588 sensor:imx415 board: ArmSoM-W3 linux:5.10 品牌:SONY 型号:IMX415 接口:MIPI CSI 瑞芯微支持的摄像头,有个support list, 此次从该list中选择了IMX415 RK提供的默认sdk里面已经将支持的所有摄像头驱动都添加到了内核,所以不需要移植该驱动了。

    2024年02月13日
    浏览(50)
  • RK3588平台产测之ArmSoM-W3 DDR压力测试

    RK3588从入门到精通 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试,以此来保证产品的质量以及稳定性 优秀的产品都要进行多次全方位的功能测试以及性能压力测试才能够经得起市场的检验 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:Arm

    2024年02月09日
    浏览(46)
  • RK3588平台产测之ArmSoM-W3软硬件重启测试

    专栏总目录 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试,以此来保证产品的质量以及稳定性 优秀的产品都要进行多次全方位的功能测试以及性能压力测试才能够经得起市场的检验 软件方式重启系统3000次测试 硬件电源拔插重启3000次测试

    2024年02月08日
    浏览(48)
  • ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面

    [RK3588从入门到精通] 专栏总目录 场景:在RK3588上做qt开发工作 RK3588安装Qt+opencv+采集摄像头画面 硬件环境: ArmSoM-W3 RK3588开发板、MIPI-CSI摄像头( ArmSoM官方配件 ) 软件版本: OS:ArmSoM-W3 Debian11 QT:QT5.15.2(Qt Creator:4.11.0) OpenCV:3.4.14 RK3588开发板联网,确认好是否能访问网络

    2024年02月14日
    浏览(77)
  • rk3588/rk356x/rv1109/rv1126 live555移植+mpp编译 rtsp拉流

    本文主要是为了记录一下rk板子的踩坑日记。 项目主要是rk3588 rtsp拉流。 1.下载MPP源码:https://github.com/rockchip-linux/mpp 2.rk3588/rk356x的板子进入Mpp源码目录 mpp/build/linux/aarch64 (rk3588/rk356x是64位板子)中,修改 arm.linux.cross.cmake 文件中的配置 修改 make-Makefiles.bash 的配置,主要改

    2023年04月19日
    浏览(44)
  • RK3588 MPP解码句柄泄露问题记录

    最近在用瑞芯微3588开发板做一个视频处理的项目,前两天拷机发生了闪退,弹出的问题是“打开文件过多”,经过初步排查定位到是MPP硬解码部分出的问题。 我的MPP解码部分主要用来读取网络相机rtsp流,主要参考了一个github项目GitHub - MUZLATAN/ffmpeg_rtsp_mpp: ffmpeg 拉取rtsp h264流

    2024年02月09日
    浏览(91)
  • rk3588 mpp 视频硬编解码测试

    rk3588 mpp demo 使用记录。 MPP 源代码发布官方地址:https://github.com/rockchip-linux/mpp 发布分支为 release 分支,开发分支为 develop 分支,默认为开发分支。 下载命令:git clone https://github.com/rockchip-linux/mpp.git MPP 源代码编译脚本为 cmake,需要依赖 2.8.12 以上的版本,建议使用 2.8.12 版,

    2024年02月07日
    浏览(71)
  • 53、RK3588测试视频编解码和 POE OAK Camera编码结合开发

    基本思想:一直想学rk3588的视频编解码,奈何没有设备,最近获得机会,利用空闲时间好好研究一番,正好手中的深度相机oak camera支持视频编码,逐想用软解编码和瑞芯微的mpp硬解码去走一波,本实验使用的poe-rj45接口和usb低电压接口测试 测试数据

    2024年02月06日
    浏览(86)
  • ArmSom-W3开发板之PCIE的开发指南(一)

    RK3588从入门到精通 本⽂介绍RK平台配置pcie的方法 开发板:ArmSoM-W3 PCIe(Peripheral Component Interconnect Express)是一种用于连接计算机内部组件的高速接口标准。以下是关于PCIe接口的简要介绍: 高速传输: PCIe接口提供了高速的数据传输通道,可用于连接各种硬件设备,如图形卡、

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包