码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo


    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133022813

    红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

    瑞芯微开发专栏

    上一篇:《RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示》
    下一篇:敬请期待…


    前言

      目标开发任务还有个功能,就是播放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
    
    • 1

      调整配置,如下:

    ./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
    
    • 1

      在这里插入图片描述

    步骤三:编译make

    make -j4
    
    • 1

      在这里插入图片描述

    步骤四:安装make install

    make install
    
    • 1

       在这里插入图片描述

    步骤五:检查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
    
    • 1

      重走一遍,单独弄到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的样子,具体需要测试实际结果。


    上一篇:《RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示》
    下一篇:敬请期待…


    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133022813

  • 相关阅读:
    第14章 类型信息
    MySQL-事务,properties文件解析,连接池
    线下保薪班开启
    如何使用 iMazing 3许可证激活软件及2024最新常见问题详细解答
    Java 进阶File类、IO流
    Java中如何检测HashMap中是否存在指定Value呢?
    语法基础(数组)
    STM32踩坑:LAN8720未接网线,上电后再接网线,网络模块无法正常使用
    罗湖区工匠技能领军人才奖励项目申请指南
    SpringMVC之JSR303和拦截器
  • 原文地址:https://blog.csdn.net/qq21497936/article/details/133022813
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号