前言

  目标开发任务还有个功能,就是播放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的样子,具体需要测试实际结果。

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

  1. 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...

  2. Delphi For Android 开发笔记 1 - 开发工具介绍

    在开始前,推荐喜欢delphi或者pascal的朋友,如果想将原来Windows的软件工程移植到Android,可使用CodeTyphon+Delphi XE7进行开发. 1.CodeTyphon C ...

  3. 地图开发笔记(一):百度地图介绍、使用和Qt内嵌地图Demo

    前言   Qt在地图方面的研发.   百度地图 介绍   百度的地图分为多个开发,都是在线的(离线的需要自己提取,本篇解说在线地图).  百度地图JavaScript API支持HTTP和HTTPS, ...

  4. wp8开发笔记之开发环境的搭建

    开发工具的下载: Windows phone sdk 8.0下载地址: http://www.microsoft.com/ZH-CN/download/details.aspx?id=35471 开发 ...

  5. nrf开发笔记一开发软件

    nrf52810 的开发环境,比较主流的可以使用keil,iar亦可.sdk中,使用的是pca10040e,s112.虽然开发板共用一个型号(pca10040) keil5中,cmsis 需要4.5. ...

  6. 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button

    在 WPF 上可用的控件拖动方法在 UWP 上大多没用,那干脆用 Thumb 仿制一个吧. 关于 Thumb 控件的教程也不多,毕竟在 WPF 控件拖动有很多种方法, Thumb 就显得很鸡肋了.下面 ...

  7. odoo开发笔记 -- 日常开发注意点总结(持续补充)

    (1) odoo视图字段,如果是readonly,默认该数据是不会往后台传递的,因此,保存数据的时候,该字段的数据是不会存到数据库中的.(待确认,字段中增加默认值,保存) (2)视图界面,注释的时候, ...

  8. vue全家桶+Koa2开发笔记(8)--开发网页

    1.使用 mongoose 动态倒入数据 mongoimport -d student -c areas areas.dat -d 后面是数据库名称: -c后面是表名称 最后是数据源 2.使用vue的 ...

  9. odoo开发笔记 -- 日常开发注意点小节

    onchange depends区别 视图字段增加readonly属性

  10. odoo开发笔记 -- 前端开发相关

    https://www.cnblogs.com/lyzg/p/5634565.html http://dmyz.org/archives/598 https://www.jianshu.com/p/6 ...

随机推荐

  1. 现代 C++ 性能飞跃之:移动语义

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/Xd_FwT8E8Yx9Vnb64h6C8w 带给现代 C++ 性能 ...

  2. Lucene检索全流程学习笔记

    一 简介 写作目的 1 为什么学习Lucene lucene是基于倒排索引的检索工具库,倒排索引是典型的文本匹配,它能够精确匹配用户搜索的query,它的缺点是不擅长语义理解,而深度学习检索模型擅长的 ...

  3. Python编程和数据科学中的人工智能:如何创建复杂的智能系统并提高模型性能

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 标题:<Python编程和数据科学中的人工智能:如何创建复杂的智能系统并提高模型性能> 1. 引 ...

  4. 性能_3 jmeter连接数据库jdbc(sql server举例)

    一.下载第三方工具包驱动数据库 1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现.  (有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包, ...

  5. Web网页音视频通话之基于sipjs功能扩展

    在上一篇开发基础上,已经实现了音视频通话.本文是在此基础上继续完成以下内容 关闭/开启音频 开启/关闭视频 屏幕共享 开启/关闭音频 javaScript /** * 静音 */ mute() { i ...

  6. 即构推出低延迟直播产品L3,可将直播延迟降到1s

    近日,全球云通讯服务提供商ZEGO即构科技推出低延迟直播产品Low-Latency Live,简称L3.这款产品对传统CDN直播中"延迟较大.弱网抗性差.观众端内容不同步"等问题进 ...

  7. 2023年陕西彬州第八届半程马拉松赛153pb完赛

    1.赛事背景 2023年6月3日,我参加了2023陕西彬州第八届半程马拉松赛,最终153完赛,PB了5分钟.起跑时间早上7点30分,毕竟6月天气也开始热了.天气预报显示当天还是小到中雨,上次铜川宜君半 ...

  8. 解决连接MySQL,报错10061,系统错误5

    mysql登录不上去,报错10061,百度后得,mysql服务未启动.. 方法一.选择dos窗口命令行打开mysql 输入代码 net start mysql 报错,如图所示.系统错误 5 解决办法: ...

  9. 2023年icpc大学生程序设计竞赛-nhr

    icpc的省赛是在洛阳举办,第一次出省,还是两天,第一次离开郑州去别的城市比赛,心情更多的是激动,非常感谢老师给了这次机会,第一天20号,打完热身赛之后回寝室,和队友一起看了一下去年省赛的题,感觉还是 ...

  10. Windows安装SSH服务器

    1.打开Win的设置并在设置中找到应用 2.在应用中依次选择应用和功能 可选功能 3.在可选功能中选择添加功能 (OpenSSH客户端默认已存在) 选中OpenSSH服务器后点击下方的安装 4.快捷键 ...