首页 > 其他分享 >RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo

RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo

时间:2023-09-21 11:02:11浏览次数:56  
标签:buildroot ffmpeg 编译 -- RK3568 rtsp aarch64

前言

  目标开发任务还有个功能,就是播放rtsp摄像头,当然为了更好的坐这个个,我们必须支持rtsp播放失败之后重新尝试,比如5s重新尝试打开一次,从而保障联网后重新打开,然后达成这个功能。

 

Demo

  请添加图片描述

 

补充

  得益于方案上的buildroot已经移植了ffmpeg4.1.3。
  在这里插入图片描述

 

摄像头的硬件连接

  在这里插入图片描述

  编译ffmpeg4.1.3
  在这里插入图片描述

  程序移植过程中,发现默认的ffmpge缺少了swscale.h,这就很不好办了:
  在这里插入图片描述

  想了个打补丁的办法,交叉编译ffmpeg4.1.3给他再打上一次。

步骤一:下载解压

  http://ffmpeg.org/releases/
  在这里插入图片描述
  解压:
  在这里插入图片描述

步骤二:配置configure

  引入交叉编译器
  在这里插入图片描述

export PATH=$PATH:/home/yang/work/src/topeet-qt5.14.2/topeet-qt5.14.2-aarch64/host/bin

  调整配置,如下:

./configure --prefix=/home/yang/work/src/topeet-qt5.14.2/topeet-qt5.14.2-aarch64/host/aarch64-buildroot-linux-gnu/sysroot --arch=aarch64  --target-os=linux  --enable-cross-compile --cross-prefix=aarch64-buildroot-linux-gnu- --enable-shared

  在这里插入图片描述

步骤三:编译make

make -j4

  在这里插入图片描述

步骤四:安装make install

make install

   在这里插入图片描述

步骤五:检查libswsale图像缩放变换模块:

  在这里插入图片描述

  但是编译发现还是不行:
  在这里插入图片描述

  忍不了了,重新提取一套完整的直接单独给Qt工程依赖:
  注意修改了prefix地址:

./configure --prefix=/home/yang/work/src/ffmpeg-aarch64 --arch=aarch64  --target-os=linux  --enable-cross-compile --cross-prefix=aarch64-buildroot-linux-gnu- --enable-shared

  重走一遍,单独弄到ffmpeg代码里面去:
  在这里插入图片描述

  弄到代码模块里面:
  在这里插入图片描述

  添加pri依赖:
  在这里插入图片描述

  编译,这回没出现头文件错误,出现了新错误:
  在这里插入图片描述

  在这里插入图片描述

  编译通过:
  在这里插入图片描述

  编译依赖解决了:
  在这里插入图片描述

步骤六:将ffmpeg4.1.2覆盖一遍开发板的ffmpeg

  还得将新库覆盖过去,不然出现如下:
  在这里插入图片描述

  因为sftp限制了/root目录下,所以直接打包,到开发板上手动copy覆盖:
  在这里插入图片描述

  拷贝到开发板:
  在这里插入图片描述

  这里其实不用头文件了,目标板不做编译的话,无需头文件,直接将lib解压后,然后copy文件夹里面的所有到/usr/lib即可,如下图:
  在这里插入图片描述

  然后运行:
  在这里插入图片描述

  成功了,看界面:
  在这里插入图片描述

 

开始测试软解码rtsp

Ffmpeg拉取rtsp软解h264显示(1080p)

  然后开始软解码rtsp播放:
  在这里插入图片描述

  播放1s追加多慢1s,越来越慢,然后灰色了又重新开始:
  在这里插入图片描述

  查看cpu,解码1080p直接cpu爆了几个:
  在这里插入图片描述

  这个方式行不通。

Ffmpeg拉去rtsp软解h264显示360p(640x360)

  切换至子码流:
  在这里插入图片描述

  延迟大概1s-1.5s
  在这里插入图片描述

  如下:
  在这里插入图片描述

  然后测试了打开了2个解码,延迟基本没影响,然后跑应用解码50ms一阵数据交互,都没啥问题,所以这个能先给演示凑合了。

 

小结

  本次基本达成目标了,同时也测出rk一类能bsp使用mpp拉取rtsp解码h264包成为rgba直接刷buffer层是延迟最低,最低消耗cpu的方式,也可以给qt显示,多消耗一点延迟,应该是多10~30ms的样子,具体需要测试实际结果。

标签:buildroot,ffmpeg,编译,--,RK3568,rtsp,aarch64
From: https://www.cnblogs.com/qq21497936/p/17719371.html

相关文章

  • Windows下FFMPEG调用测试(解码264)
    #include<stdio.h>#include<stdlib.h>#include<string.h>extern"C"{#include<libavcodec/avcodec.h>charav_error[AV_ERROR_MAX_STRING_SIZE]={0};#defineav_err2str(errnum)av_make_error_string(av_error,AV_ERROR......
  • Windows下ffmpeg调用测试(YUV420P编码)
    1下载静态库和动态库如果你是动态加载,可以直接使用动态库(dlopen等);否则就才用动态+静态的方式(动态库的静态加载方式);或者直接将静态库编译到你的执行程序(纯静态组件使用);https://www.gyan.dev/ffmpeg/builds/#libraries 添加组件vs2022: 属性->c/c++->附加包含目录;将头文件......
  • RK3568开发板SG90 舵机模块的功能实现-迅为电子
     1模块说明SG90舵机模块如下图所示:   常见的舵机转向角度有0-90度,0-180度,0-360度,可以用在垃圾桶项目开盖用,智能小车的全比例转向,摄像头云台,机械臂等。 2接线说明SG90舵机模块上三条线,三条线定义如下:棕线:GND红线:VCC4.8V-7.2V黄线:脉冲输入 3程序测试......
  • RK3568 树莓派4 嵌入式计算
    RK3568vs树莓派4:嵌入式计算的巅峰之争-知乎https://zhuanlan.zhihu.com/p/637505045▎引言嵌入式计算领域一直以来都有着激烈的竞争,RK3568和树莓派4作为两个备受瞩目的平台,引起了广泛的关注。本文将以处理器性能、扩展性、功耗和软件支持等方面对RK3568和树莓派4进行综合......
  • RK3568核心板分区空间不足,如何修改分区大小?
    在对评估板进行开发验证时,时常会遇到根目录空间不足的情况,而在其他分区又有冗余空间,这时则需要对分区大小重新进行分配,合理化利用分区空间。本文将基于HD-RK3568-IOT评估板主要讲解如何修改eMMC分区大小。1. 分区表介绍本文主要通过修改parameter.txt 分区表文件来实现修改分区大......
  • windows 上 ffmpeg 库的安装
    真复杂啊安装ffmpeg库有两种途径,一种是自己下载源码再去编译,另一种是使用vcpkg自动安装一般情况下,第二种是最简单方便的,但是如果你需要使用ffmpeg的特定历史版本,那就有点困难了下面记录下我遇到的坑,借助这篇文章,我打算使用vcpkg切换到ffmpeg的历史提交并安装1.cmd......
  • RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示
    前言  上一篇,移植应用前的通讯接口工作和全屏工作都已经完成了。本篇移植开发的商业应用。<br>交叉编译好应用  (略),参照《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试》<br>解决全屏标题栏占用问题  交叉......
  • RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示
    前言  上一篇,移植应用前的通讯接口工作和全屏工作都已经完成了。本篇移植开发的商业应用。 交叉编译好应用  (略),参照《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试》 解决全屏标题栏占用问题......
  • 瑞芯微RK3568:Debian系统如何安装Docker
    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。HD-RK3568-IOT评估板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医......
  • 瑞芯微RK3568:Debian系统如何安装Docker
    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。HD-RK3568-IOT评估板基于HD-RK3568-CORE 工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU 的性能。适用于工业自动化控制、人机界面、中小......