一只海星
10年+海思平台嵌入式开发全栈,Linux/window流媒体开发,各类协议开发onvif/p2p/tutk/gb28181/mqtt/rtmp/rtsp
-----心存高远,脚踏实地!
展开
-
海思平台 fsck.ext4移植
# 问题设备工况恶劣,高低温加总异常断电,容易出现文件系统错误:linux 出现结构需要清理 (structure needs cleaning)这个时候就需要修复一下!我用的嵌入式设备没有这个工具,移植之。原创 2023-03-07 11:06:29 · 851 阅读 · 0 评论 -
ARM海思MQTT开发系列(四)如何实现客户端上线/离线状态管理
《MQTT开发系列(四)如何实现客户端上线/离线状态管理》详细介绍了不同的MQTT代理服务器实现在线/离线状态的方式。包括http-api和遗嘱消息实现原创 2022-11-23 17:00:50 · 1686 阅读 · 0 评论 -
Linux长时间录像偶现INFO: task xxxApp:12004 blocked for more than 120 seconds
Linux长时间录像偶现INFO: task cidiVCMitBox:12004 blocked for more than 120 seconds原创 2022-11-03 09:43:38 · 477 阅读 · 0 评论 -
最新FFmpeg自编译Ubuntu和交叉编译嵌入式平台
背景FFmpeg NB!各种不同需求使得我们需要重新编译,mark之FFmpeg 环境版本:ffmpeg-4.3.1, 下载:点我历史版本下载:点我Ubuntu平台编译需求:拉去RTSP流、H264、H265解码OS:Ubuntu 16.04依赖安装nasm、yasm是汇编相关,也可–disable-yasm掉libx264/x265是编解码库支持;libsdl2是显示支持,生成ffplay测试;sudo apt-get install nasm sudo apt-get ins原创 2020-12-10 10:14:50 · 489 阅读 · 0 评论 -
ARM平台64位最新Tcpdump交叉编译
背景人在江湖漂,哪有不抓包!搞…下载官网知道下哪两个文件了吧环境主机:Ubuntu 16.04交叉编译链:aarch64-himix100-linux测试硬件:hisi3559开发板交叉编译下载解压成这样子,不用教了吧交叉编译libcap./configure --prefix=$PWD/install --host=aarch64-himix100-linux --with-pcap=linuxmake -j4;make install生成文件再当前install目录下原创 2021-07-05 14:44:42 · 1578 阅读 · 2 评论 -
关于加密解密SSL/TLS,对称非对称、公钥私钥、签名验签你想知道的全在这里
背景只要做程序开发、特别是网络传输相关的内容,总是绕不开加密,一直想把对称/非对称加密、SSL/TLS、公钥、私钥、签名、验证签名、openssl、x509、crt、key、crs等等这些概念统一的梳理一下,就当是复习功课,也供大家入门参考,本章绝大部分内容均来自网络。名词简介对称加密:使用相同密钥与算法进行加解密运算的算法就叫做对称加密算法!非对称加密:就是不相同密钥加解密算法。详细参考非对称加密章节介绍SSL:安全套接层(secure sockets layer)主要是在网络层(TCP)和应用原创 2021-03-11 16:05:14 · 1391 阅读 · 1 评论 -
海思QT开发系列(一):Hi3559平台QT移植
参考环境下载移植编译结束TOC参考海思Hi3559av100移植Qt5.9.7 Qt5.5.1移植到freescale imx6网上的版本大都不完善,或多或少会出一些错误,所以一切以我为准环境主机环境:Ubuntu 16.04;板端:hi3559av100交叉编译环境:aarch64-himix100-linux-没环境的同学参考 hisi SDK安装记录虽然是3518EV200为例,但海思sdk都差不多是一个框架,不要慌下载本文以最新QT版本5.14.2为例q...原创 2020-05-15 10:46:39 · 6584 阅读 · 11 评论 -
海思QT开发系列(二):构建海思Qt项目Sample
海思QT开发系列(一):3559平台QT移植海思QT开发系列(二):构建海思Qt项目Sample参考qt4.8.6移植到hi3559(二)这个小朋友的做法有点问题,所以他在第三步出错了,还是那句话一切以我为准QT安装交叉编译过后默认有安装QT,确认下qtcreator --version工程构建打开QT$ qtcreator新建项目准备QT环境这一步很重要,啰嗦一下:我们Ubuntu上Qt Creator的qmake(就是QT的交叉编译器环境原创 2020-05-15 13:55:40 · 4605 阅读 · 2 评论 -
海思QT开发系列(三):Hi3559 Qt Sample开发板运行测试
海思QT开发系列(一):3559平台QT移植海思QT开发系列(二):构建海思Qt项目Sample海思QT开发系列(三):海思QT开发系列(三):Hi3559 Qt Sample开发板运行测试参考基于海思Hi3531上移植QT过程总结 《HiFB 开发指南》 《HiFB API参考》 《图形开发用户指南》 《TDE API参考》测试环境QT版本:最新Qt5.14.2开发板:hi3559av100显示:使用HDMI输出,图层G0,设备:/dev/fb0开发流程在海思开发原创 2020-05-15 15:59:55 · 4398 阅读 · 7 评论 -
海思QT开发系列(四):Hi3559 Qt+OpenGL移植
海思QT开发系列(一):3559平台QT移植海思QT开发系列(二):构建海思Qt项目Sample海思QT开发系列(三):海思QT开发系列(三):Hi3559 Qt Sample开发板运行测试参考海思3559A QT 5.12移植(带webengine 和 opengl es)Qt5.9.7 移植到Hi3536,支持OpenGL和tsLib海思开发板hi3559移植带opengl的qt并成功运行血泪史EGL library doesn’t support Emulator extension原创 2020-05-19 13:43:30 · 5506 阅读 · 4 评论 -
海思OSD开发系列(一) SDL_TTF框架移植
参考海思平台freetype、SDL、SDL_TTL的编译交叉编译freetype交叉编译SDL 安装配置及环境变量的设置背景需求在海思osd显示,就是在region叠方块,我们常用的需求就是叠加 时间戳、通道名称、log等,做的好一点的可以实现二维码扫描方块显示、天气信息等等;需求里就两类信息,一种字符、一种图片,最后的实现其实都一样,通通转成位图bmp叠上去就ok;今天我们要做的就是搞字体;字体点阵式字体安防领域,传统使用点阵式字体,顾名思义就是打点成像,跟老式的针式打印原创 2020-06-10 16:56:58 · 3926 阅读 · 12 评论 -
海思MP4开发系列(一)GPAC交叉编译(Hi3559 + H265 + gpac + MP4)
参考Hi3559AV100 下gpac交叉编译 海思3516A 运行mp4box工具,移植gpac 0.4.0 使用gpac封装mp4 无法解决R_AARCH64_ADR_PREL_PG_HI21重定向于符号__stack_chk_guard@GLIBC_2.17背景传统MP4封装,大部分都只是使用libmp4v2库,H264+libmp4v2网上教程也很多,但8012年和H265一起来了,技术应更好的兼容后续拓展,Mp4v2目前是无人维护的状态也不支持H265,所有我们选择了gpac作为新原创 2020-06-02 16:50:33 · 2744 阅读 · 0 评论 -
ARM海思MQTT开发系列(一)最新MQTT客户端mosquitto交叉编译全记录
背景设备和服务器通信,需要做设备管理和控制,在MQTT和私有协议间纠结,最终选定MQTT作为通信标准,更规范普及,功能也能满足需求。开搞!这里是引用MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要进行大量的验证,看有无缺陷或欠考虑的地方等。(2)协议的标准化带来大量的开源组件,降低开发难度。随着物联网+5G生态越来越好,开源组件越来越多原创 2021-03-06 15:33:19 · 1924 阅读 · 0 评论 -
ARM海思MQTT开发系列(二)MQTT服务器mosquitto部署和订阅发布测试
背景上篇博客已经将MQTT交叉编译完成,这一节来简单测试一下。既然是测试,首先就需要有一个mqtt服务器;MQTT服务器搭建这里选用的是centos版本来搭建mqtt服务器,为什么选这个呢,因为我真的有一个centos服务器非常的简单:添加源yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm安装yum install mosquitto启动mosquitto服务器原创 2021-03-06 16:30:30 · 1402 阅读 · 0 评论 -
ARM海思MQTT开发系列(三)MQTT服务器加密TLS支持与测试
背景上一节我们调通MQTT基本功能,真正要用了,总不能裸奔吧所以,搞tls支持~加密介绍关于加密解密SSL/TLS,对称非对称、公钥私钥、签名验签你想知道的加密全在这里Configure SSL/TLS support for Mosquitto这里参考官方文档就好了生成ca证书和密钥:日期自选,单位天openssl req -new -x509 -days 3650 -extensions v3_ca -keyout ca.key -out ca.crt服务器生成服务器私钥:op原创 2021-03-11 16:43:30 · 1188 阅读 · 2 评论 -
ARM海思CAN开发系列(一)远程驾驶CAN控制方案-标准CAN拓展帧与socketcan转换
一、背景can通信在汽车行业非常的普遍,搞车必备良器!最近在做一个Can盒转发功能,就是将远程驾驶舱CAN帧发送车上socket can设备,进而转发到DCU达到控制车辆的目的。二、协议简介基础概念Can总线CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式原创 2021-07-03 16:24:46 · 1517 阅读 · 1 评论 -
超详细ARM平台curl交叉编译支持HTTPS+openssl 交叉编译
目录文章目录目录背景下载编译1.openssl交叉编译步骤2.curl交叉编译使用参考背景curl如需使用https或者openssl加密相关功能,需要在curl库编译的时候增加openssl支持,此功能默认关闭,所以需要重新编译下载版本:openssl-1.1.1g 官网下载地址编译主机环境:Ubuntu16.04目标环境:Hi3559AV100开发板1.openssl交叉编译步骤解压文件,查看help./Configure --help注意到有aarch64 支持配置生成M原创 2020-09-17 11:25:52 · 1757 阅读 · 0 评论 -
手把手教你使用FFmepg 将H265+AAC音视频流封装成MP4-三步搞定!
背景FFmpeg作为应用最为广泛的音视频解决方案,适用范围及广,接口众多,如果是初学,很容易被众多Context晕得云里雾里,本文为小白教程,主要记录怎么讲原始音视频流封装成标准的MP4格式!网上搜索的资料大部分都是读取其他格式文件编码成H264或者读取H264文件再封装成MP4!举个栗子,FFmpeg的sample例子muxing.c就是读取一个gif文件,再编码成H264,然后封装成MP4,如果你只想将已有的原始音视频流封装成MP4的话,参考起来略显吃力!所有了这个教程!封装MP4只需要三步!原创 2020-12-03 18:26:59 · 8872 阅读 · 6 评论 -
手把手教你使用CMake自动编译中CMakeLists.txt 怎么写
背景CMake 一直都是用别人的开源项目来编译,Makefile都是自己写。最近看zlm源码,里面用的CMake编译,比较简洁易懂!所以有尝试给现有项目也写个CMakeList.txt来使用cmake自动编译,跟它耍耍!基础语法介绍主要参考以下链接地址:《CMakeLists.txt 语法介绍与实例演练》项目名称:#指定项目的名称 project name PROJECT(AppMedia)添加头文件include_directories(./includesrcin原创 2021-06-11 14:14:41 · 5154 阅读 · 0 评论 -
终于找到透明背景BMP格式Logo制作方法,超简单一步到位
背景海思平台显示osd使用BMP格式图片,为了图片漂亮我们不需把LOGO图片周围抠成镂空,不然显示白色背景,很难看!所以问题来了,美工做不出来背景透明在海思OSD模块可以显示的BMP图片!!!原理分析BMP是位图,由于我们需要背景透明,所以除了RGB三色通道我们还需要透明通道AlphaBitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位所以,我们的图片格式位深度必须是32位,海思OSD模块格式请选择ARGB_原创 2021-08-05 15:11:37 · 5489 阅读 · 4 评论 -
Arm平台程序出现Bus error.md
背景收到反馈多次功能测试后程序功能失效。打开调试,测试了几次出现如下错误[2]+ Bus error ./AppXXX找BUG有点莫名其妙,自己程序没有输出任何错误,直接bus error退了。错误输出不是自己的打印格式,以防万一还是遍历了代码和所有库文件,未找到bus error!百度搜索Bus error搜到如下信息:bus error的解决方法简单看了一些,就是数据对齐问题引起的bus error;查看新增模块的结构体定义看了一下原创 2021-07-20 15:20:11 · 1593 阅读 · 0 评论 -
RTSP拉流h265(hevc)+AAC关键节点详解!史上最全RTSP+hevc 交互全记录!
背景8012年来了,H265已经跳出小众,日趋流行!在视频大数据时代,高压缩优势也越来越明显!所以!搞一波RTSP+HEVC+AAC取流支持!网上资料,h264比较齐全,对h265的说明比较零散,记录一下所有关键点!H265原始码流处理所有的视频帧(VPS/SPS/PPS/I/P)请去掉起始码0001,RTP包不需要起始码!这里为什么单独拉出来呢,因为我就踩了一个坑,我大意啊,没有闪!上次搞RTSP很多年了,忘了这一茬,所以出现了很多莫名其妙的错误,后面单独开一篇!H264与H265区别首先原创 2020-12-11 10:09:15 · 2186 阅读 · 0 评论 -
Arm64版本htop工具!完美支持Hisi35559/NVIDIA xavier NX平台
背景Htop的使用简介大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为top的增强版,相比top其有着很多自身的优势。如下:两者相比起来,top比较繁琐默认支持图形界面的鼠标操作可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行杀进程时不需要输入进程号等交叉编译和使用交叉编译和使用请参考 htop使用详解arm64为版本htop,点我下载解压后直接运行test_htop.sh即可遇到问题请往下看!问题记录运行htop提示如原创 2020-12-10 15:01:53 · 1031 阅读 · 0 评论 -
海思交叉编译libcurl
文章目录libcurl 背景交叉编译下载交叉编译使用libcurl 背景百度百科:libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。 libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩原创 2020-09-09 11:15:47 · 728 阅读 · 0 评论 -
QT5 背景透明
前言窗口透明搜了一下,很多说要改源码,其实不需要,QT5支持背景调整:WA_TranslucentBackground设置背景透明MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); this->setAttribute( Qt::WA_TranslucentBackground,true )原创 2020-05-22 17:17:45 · 1148 阅读 · 0 评论 -
错误记录(1) windows平台fwrite写文件自动增加0x0d
背景新增一个流媒体音频播放功能,由海思端发往Windows解码播放;ACC解码时遇到问题,解出来PCM数据均为噪音,遂使用fwrite写原始数据文件排查;错误采集、编码、发送端自测都没问题;Windows接收端对比发送前的数据,发现多了很多0x0d的数据,看似随机出错!!!原因文件打开方式漏加"b",二进制格式;Windows下不以二进制打开会当字符处理,自动将0x0a(回车)前面加上0x0d(换行)!int err = fopen_s(&pcmFile, "audi原创 2020-07-16 15:12:09 · 455 阅读 · 0 评论 -
海思SDK mkimage command not found
"mkimage" command not found - U-Boot images will not be built装一个sudo apt-get install u-boot-tools原创 2020-05-16 10:17:57 · 247 阅读 · 0 评论 -
sed: could not open temporary file /etc/sedbkUwRn: Permission denied
海思交叉编译器安装出现错误sed: couldn't open temporary file /etc/sedbkUwRn: Permission denied解决方法:sudo su 再source 安装脚本原创 2020-05-16 09:48:54 · 6164 阅读 · 0 评论 -
海思增加文件系统分区
背景环境hisi3550av100开发板EMMC-64G版本,默认文件系统只有只有96M,如果想使用剩余的空间,所以需要文件系统增加分区;原创 2020-05-11 14:37:08 · 2082 阅读 · 3 评论 -
海思平台增加DHCPC客户端
背景 busybox 编译 添加udhcpc到开发板 mount添加 添加udhcpc工具 添加网络配置脚本 制作文件系统 修改启动脚本 背景海思3559平台默认不支持dhcpc功能,不方便,所以加一个最好!busybox 编译进入SDK目录 /opensource/busybox/busybox-1.26.2make menuconfig 选择Networking Utilityies –>[*]dhcp client 退出保存..原创 2020-05-08 20:13:42 · 1301 阅读 · 0 评论 -
dosfsck
dosfsck工具可用于文件系统修复,交叉编译后适用于SD修复原创 2017-10-25 09:32:18 · 1981 阅读 · 0 评论 -
ov9732 datasheet
最近在做3518E+ov9732 MIPI的开发,发现资料比较难找,特此分享datasheet,有需要的同学可以下载原创 2017-09-06 17:19:45 · 2681 阅读 · 1 评论 -
hisi SDK安装记录
海思SDK安装过程 ./sdk.unpack: source: not found原创 2017-08-02 10:46:38 · 1891 阅读 · 0 评论