香橙派AIpro如何赋能AI+边缘流媒体设备

文章目录

  • (一)前言
  • (二)AI边缘流媒体设备展示
  • (三)赋能AI边缘流媒体设备
    • 1、准备开发环境
    • 2、在板子中下载编译安装SRS
    • 3、基本推拉流测试
    • 4、多路推流性能测试
  • (四)一些注意事项
    • 1、开发板介绍
    • 2、官网手册
    • 3、连接电脑
    • 4、体验AI能力
    • 5、具有linux烧录能力
    • 6、视频编解码API接口
  • (五)总结

(一)前言

今天香橙派AIpro终于到我手上了,因为我的主要领域是做嵌入式音视频的,例如相机类产品,录像类产品,直播类产品都是我所涉及到的。本片文章一起来开箱见证下香橙派AIpro的超能力,据说很强。强只是一方面,对于一个嵌入式领域的开发者来说,强不代表一切,还要关注硬件的资料是否全,各种文档是否详细,技术售后支持是否到位。等一系列因素,如果有一个不太好,就会在整体行程中耽搁大事。一起来看下关于音视频领域的东西,这个香橙派AIpro可以做什么事情!!!

(二)AI边缘流媒体设备展示

设备中流媒体的推和拉流部分:
image.png

下一步可以把AI接入SRS,做视频流的智能检测。

在流媒体这个领域的基础上可以把大疆的流接入,大疆我研究过,它们支持rtmp的推流,这个时候,就可以推到边缘媒体设备中赋能AI。可以做一些AI智能剪辑,AI直播,AI美化,AI包装。可以针对语音做AI美化等超技能!!!
image.png

也可以做AI导播设备,推到AI边缘流媒体设备后,该设备可以包装AI数字人,AI自动多国语言翻译,AI自动生成字幕等,该设备再把视频流转发到B站,快手,抖音,视频号、Youtube、Facebook等流媒体直播平台。一个设备可以节省一大笔钱,有了设备就不用每个月甚至每年去交一些费用,因为设备通常是一次性就付清了,永久使用的。

(三)赋能AI边缘流媒体设备

因为我所做的行业就是视频流,流媒体,流协议,直播协议相关的。所以想把香橙派AIpro做为一个边缘流媒体设备性能指标如何!!!

我们尝试把SRS这个开源项目部署到设备中。

SRS在音视频领域是一个神一样的存在,国人开源项目:
SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议。Oryx是一个一体化、开箱即用、开源的视频解决方案,可部署在云上或自建机房,以直播和WebRTC等能力赋能你的业务。

1、准备开发环境

找到下载的交叉编译工具链:
image.png

解压出来:

tar -zxvf toolchain.tar.gz

为了防止之后出现中文路径导致的错误,可以创建一个英文目录,然后把解压后的交叉编译工具链移动过去:

zhenghui@zh-pc:交叉编译工具链$ mkdir /data/softInstall/aipro
zhenghui@zh-pc:交叉编译工具链$ mv toolchain /data/softInstall/aipro/
zhenghui@zh-pc:交叉编译工具链$ 

这就是交叉编译工具了:

zhenghui@zh-pc:交叉编译工具链$ ls /data/softInstall/aipro/toolchain/bin/
aarch64-target-linux-gnu-addr2line  aarch64-target-linux-gnu-gcc-7.3.0   aarch64-target-linux-gnu-ld.bfd
aarch64-target-linux-gnu-ar         aarch64-target-linux-gnu-gcc-ar      aarch64-target-linux-gnu-nm
aarch64-target-linux-gnu-as         aarch64-target-linux-gnu-gcc-nm      aarch64-target-linux-gnu-objcopy
aarch64-target-linux-gnu-c++        aarch64-target-linux-gnu-gcc-ranlib  aarch64-target-linux-gnu-ranlib
aarch64-target-linux-gnu-c++filt    aarch64-target-linux-gnu-gcov        aarch64-target-linux-gnu-readelf
aarch64-target-linux-gnu-cpp        aarch64-target-linux-gnu-gcov-dump   aarch64-target-linux-gnu-run
aarch64-target-linux-gnu-elfedit    aarch64-target-linux-gnu-gcov-tool   aarch64-target-linux-gnu-strings
aarch64-target-linux-gnu-g++        aarch64-target-linux-gnu-gprof       aarch64-target-linux-gnu-strip
aarch64-target-linux-gnu-gcc        aarch64-target-linux-gnu-ld
zhenghui@zh-pc:交叉编译工具链$ 

可以配置环境变量:

可以把PATH加在启动脚本中

vim ~/.bashrc
export PATH=$PATH:/data/softInstall/aipro/toolchain/bin/

image.png

image.png

2、在板子中下载编译安装SRS

说明:

为什么这里直接在板子里做下载、编译、安装?
这个问题只有真正做过嵌入式软件开发的程序员理解,天天被交叉编译,各种依赖关系折磨疯了。因为香橙派Aipro刚好是直接安装的一个完整的Ubuntu操作系统,所以里面是带gcc和g++编译工具的,还有gdb、cmake等都可以安装和使用。编译起来自然很方便,所以大胆的尝试下和享受下这个方案。

在开发板里创建个目录我们存放自己的东西:

(base) root@orangepiaipro:~# mkdir soft
(base) root@orangepiaipro:~# 
(base) root@orangepiaipro:~# cd soft/
(base) root@orangepiaipro:~/soft#

git命令下载东西:

(base) root@orangepiaipro:~/soft# git clone -b develop https://gitee.com/ossrs/srs.git
Cloning into 'srs'...
remote: Enumerating objects: 84225, done.
remote: Counting objects: 100% (84225/84225), done.
remote: Compressing objects: 100% (20701/20701), done.
remote: Total 84225 (delta 65493), reused 81148 (delta 62830), pack-reused 0
Receiving objects: 100% (84225/84225), 236.12 MiB | 11.00 MiB/s, done.
Resolving deltas: 100% (65493/65493), done.
Updating files: 100% (5545/5545), done.
(base) root@orangepiaipro:~/soft# 

进入编译:

(base) root@orangepiaipro:~/soft# cd srs/
(base) root@orangepiaipro:~/soft/srs# ls
CONTRIBUTING.md  Dockerfile  LICENSE  README.md  SECURITY.md  trunk
(base) root@orangepiaipro:~/soft/srs# 
(base) root@orangepiaipro:~/soft/srs# cd trunk/
(base) root@orangepiaipro:~/soft/srs/trunk# 
(base) root@orangepiaipro:~/soft/srs/trunk# ./configure 

提示缺少automake:

apt install -y automake

安装好,继续执行configure

成功了:
image.png

执行make -j10编译

(base) root@orangepiaipro:~/soft/srs/trunk# make -j10

编译也成功:
image.png

运行测试:

(base) root@orangepiaipro:~/soft/srs/trunk# ./objs/srs -c ./conf/srs.conf 
[2024-07-03 22:06:58.261][INFO][25867][kuf4m073] XCORE-SRS/6.0.129(Hang)
[2024-07-03 22:06:58.262][INFO][25867][kuf4m073] config parse complete
[2024-07-03 22:06:58.262][INFO][25867][kuf4m073] you can check log by: tail -n 30 -f ./objs/srs.log
[2024-07-03 22:06:58.262][INFO][25867][kuf4m073] please check SRS by: ./etc/init.d/srs status
(base) root@orangepiaipro:~/soft/srs/trunk# 
(base) root@orangepiaipro:~/soft/srs/trunk# 

可以使用ps命令查看是否运行成功:

(base) root@orangepiaipro:~/soft/srs/trunk# 
(base) root@orangepiaipro:~/soft/srs/trunk# ps -aux |grep srs
root       25869  0.1  0.2 104400 17288 pts/0    Sl   22:06   0:00 ./objs/srs -c ./conf/srs.conf
root       25879  0.0  0.0   9124  2132 pts/0    S+   22:07   0:00 grep --color=auto srs
(base) root@orangepiaipro:~/soft/srs/trunk# 

因为srs server的默认端口是8080,所以我们可以在任何地方访问8080:
image.png

可以看到这台设备的信息:
image.png

3、基本推拉流测试

使用ffmpeg推流rtmp测试:

ffmpeg -re -i 1080P.mp4 -c copy -f flv rtmp://192.168.1.15/live/av1

同时也可以使用ffplay播放:

ffplay rtmp://192.168.1.15/live/av1

image.png

4、多路推流性能测试

测了12路流:
image.png

可以看到入口代码都40多Mbps:
image.png

CPU和负载都没怎么增长。
image.png

(四)一些注意事项

1、开发板介绍

Orangepi的官网:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-AIpro.html

对于初学者来说,这个板子的每一个孔,每一个螺丝都应该知道有什么作用,这一点做的还是不错的:


官网介绍说:
OrangePi AIpro(8-12T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8-12TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。

看到支持MIPI摄像头,还支持2个;看到支持视频流AI分析,视频图像分析;支持两个HDMI输出顿时兴趣翻倍,但是如果有个HDMI输入就好了。

如果官方人员能看到的话,希望加个HDMI输入哦,这样就可以接入一些HDMI输入源了,可以做很多视频分析的场景和应用!
如果官方人员能看到的话,希望加个HDMI输入哦,这样就可以接入一些HDMI输入源了,可以做很多视频分析的场景和应用!
如果官方人员能看到的话,希望加个HDMI输入哦,这样就可以接入一些HDMI输入源了,可以做很多视频分析的场景和应用!

2、官网手册

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html
image.png

可以看到文档不算太多,才153页
image.png

但是还是挺细致的,从目录来看步骤挺全的:
image.png

3、连接电脑

看文档里描述,支持多种连接电脑的方式:
1、SSH远程;
2、串口方式:4pin串口线和Micro USB数据线;
3、HDMI显示器;

官方提供了多种方式可以让你选择,我特意使用了Micro USB接口的数据线连接串口。

image.png

就随便找了一根,连接成功了:
image.png

连接的时候如何已经开机了,会什么都不打印,回车即可看到都命令行,输入相应的账号和密码即可登录成功:
image.png

接入HDMI也很方便,插上即可工作,然后插入鼠标和键盘即可干活了。

4、体验AI能力

因为香橙派官方的镜像中提供了juypter lab的环境,而且写了部分案例可以测试。

如果你登录的是非HwHiAiUser用户的账号,需要cd到HwHiAiUser的家目录下 /home/HwHiAiUser/

(base) root@orangepiaipro:/home/HwHiAiUser/samples/notebooks# pwd
/home/HwHiAiUser/samples/notebooks
(base) root@orangepiaipro:/home/HwHiAiUser/samples/notebooks#

因为AI相关的samples都在这个用户下。

/home/HwHiAiUser/samples/notebooks目录下有个start的启动脚本:
image.png

运行脚本启动:
image.png

发现在我PC机电脑上无法访问:
image.png

探究了原因,是因为这个启动脚本:
image.png

启动脚本中接收了参数设置为ip,如果没有参数就使用默认的127.0.0.1
image.png

此时就不用局限在板子外接显示器,鼠标,键盘了。
此时其他你工作的电脑上即可访问:
image.png

如果你一开始像我一样,直接输入了ip+端口8888,此时需要让你输入密码或者token:
image.png
token就是命令行中提示的。

登录成功后的界面:
image.png

进入到02-ocr中测试下ocr的能力如何:
image.png

运行:
image.png

结果:

可以看到结果很快就出来了

image.png

可以换一个自己的图片试试:

上传自己的图片:
image.png

修改ocr用例的名字:
image.png

我上传了一个挺复杂的:
image.png

image.png

5、具有linux烧录能力

官方提供了多种烧录的工具:
image.png
做为开发者这么多年,很少见支持Linux下烧写的工具,好奇心加6666+;

image.png

Ubuntu上烧写测试

刚好我比较习惯在Ubuntu上开发。

1、.AppImage的软件可以直接打开:
image.png

1、选择烧录的LInux镜像
需要提前下载好自己需要烧录的镜像:
image.png

我本次使用的是openneuler镜像:
image.png

2、选择TF卡盘
image.png

3、开始烧写到TF卡中:
image.png

有点慢:提示Successful说明成功了
image.png

插卡启动。

新系统的界面变了,成功了:
image.png

密码:Mind@123

6、视频编解码API接口

https://www.hiascend.com/document/detail/zh/canncommercial/63RC1/inferapplicationdev/aclcppdevg/aclcppdevg_000083.html

很详细:
image.png

针对做音视频开发的人员来说,接口流程和函数介绍所有的文档几乎都有。

(五)总结

总体体验下来还是不错的,由于时间和文章篇幅的问题,本文就记录到此为止,下面多方面来总结下。

  • 1、板子接口齐全,功能接口也足够使用了,可以做一些智能小车什么的都绰绰有余,学生党可以使用这个参加各种机器类的比赛,爱好者也可以使用这个研究自己领域的东西;
  • 2、文档资料齐全,只是不太好找而已,全是挺全的,没有写明你在哪里可以找到,需要自己探索寻找的过程;
  • 3、特别留意了下烧写系统的方法,windows,mac,linux都支持烧写,这一点对Ubuntu爱好者比较友好,比如我家用电脑就是Ubuntu的,在这上面工作,开发,学习都很方便;
  • 4、因为板子的AI处理能力非常强,再加上这一版的就有8T的算力,可以做很多AI+N的应用;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot 篮球馆管理系统-计算机毕业设计源码21945

目 录 摘要 1 绪论 1.1选题背景 1.2研究意义 1.3论文结构与章节安排 2 篮球馆管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 …

ctfshow sql注入

开启其他注入 web221 limit注入 给出查询语句 以及过滤逻辑为空 获取数据库名即可 limit 用于控制返回结果行数 limit后面似乎只能跟PROCEDURE ANALYSE( ) 函数了 PROCEDURE ANALYSE( ) 函数用于分析查询结果的函数 参数是用来控制函数的 这个参数的位置 可以放入报错函数 原…

MySQL—创建查看删除备份恢复数据库

创建数据库 创建数据库 LLF_DB01CREATE DATABASE LLF_DB01删除数据库DROP DATABASE LLF_DB01创建一个使用utf8字符集的数据库并带校对规则的数据库CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin 查看、删除数据库 显示所有的数据库SHOW DATABASES显示数据库…

AI PC(智能电脑)技术分析

一文看懂AI PC(智能电脑) 2024年,英特尔、英伟达等芯片巨头革新CPU技术,融入AI算力,为传统PC带来质的飞跃,引领智能计算新时代。 2024年,因此被叫作人工智能电脑(AI PC)…

2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享

B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…

C语言程序是怎么在计算机中运行起来的

hello.c #include <stdio.h>int main(){printf("hello,world\n");return 0; }这段 C语言程序的代码能被编程人员读懂&#xff0c;但是计算机系统读不懂。C语言、C、java 这些高级编程语言本质上还是人类用的语言而不是计算机用的语言。 为了能在计算机上运行这…

无忧易售功能:刊登页面文本翻译,无缝对接全球买家

每一个词语&#xff0c;每一句话&#xff0c;都承载着产品的灵魂和品牌的故事&#xff0c;无忧易售的刊登页面文本翻译服务&#xff0c;一键操作即可将你的产品介绍、详情或广告文案转化为多语言版本&#xff0c;轻松管理&#xff0c;高效发布。 一、Allegro、OZON、Coupang、…

第7章:Electron文件系统操作(2)

7.2 文件对话框 Electron 提供了 dialog 模块用于显示文件打开和保存对话框。 7.2.1 显示文件打开对话框 主进程代码&#xff1a; const { app, BrowserWindow, ipcMain, dialog } require(electron); const path require(path);let mainWindow;const createMainWindow …

盘点2024年最新鼠标连点器推荐

电脑鼠标连点器是一种可以帮助用户自动化点击操作的小工具&#xff0c;广泛应用于游戏、自动化办公和测试等领域。选择一款合适的鼠标连点器能够提高工作和娱乐的效率&#xff0c;避免重复点击带来的疲劳。小编将为您介绍电脑鼠标连点器的产品特点、推荐几款实用的鼠标连点器并…

一览 Anoma 上的有趣应用概念

撰文&#xff1a;Tia&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News Anoma 的目标是为应用提供通用的意图机器接口&#xff0c;这意味着使用 Anoma&#xff0c;开发人员可以根据意图和分布式意图机编写应用&#xff0c;而不是根据事务和特定状态机进行…

Java增加线程后kafka仍然消费很慢

文章目录 一、问题分析二、控制kafka消费速度属性三、案例描述 一、问题分析 Java增加线程通常是为了提高程序的并发处理能力&#xff0c;但如果Kafka仍然消费很慢&#xff0c;可能的原因有&#xff1a; 网络延迟较大&#xff1a;如果网络延迟较大&#xff0c;即使开启了多线…

新手拍短视频的些许建议

1、尽早行动&#xff0c;拒绝完美主义&#xff0c;有手机就能上车&#xff0c;一开始别花太多时间在打磨细节上。总是要准备好了后再做&#xff0c;就总比别人慢一步&#xff0c;可能永远也追不上了&#xff1b; 2、坚持发&#xff0c;度过难熬的启动期就行&#xff0c;不要走…

启明智显Model3A芯片方案7寸高清触摸屏ZX7D00CM21S:开箱、设置与实操全攻略指南

一、背景 本指南将详细介绍启明智显的Model3A芯片方案下的7寸高清触摸屏ZX7D00CM21S的开箱步骤、基础设置以及实操应用。无论您是电子爱好者、开发者还是工程师&#xff0c;这份指南都能助您快速上手并充分利用这款触摸屏的各项功能。 二、硬件介绍 ZX7D00CM21S 7寸高清触摸屏是…

谷歌正在试行人脸识别办公室安全系统

内容提要&#xff1a; &#x1f9ff;据美国消费者新闻与商业频道 CNBC 获悉&#xff0c;谷歌正在为其企业园区安全测试面部追踪技术。 &#x1f9ff;测试最初在华盛顿州柯克兰的一间办公室进行。 &#x1f9ff;一份内部文件称&#xff0c;谷歌的安全和弹性服务 (GSRS) 团队将…

【android】【adb shell】写一个shell脚本,监听进程pid变化

前言 当前业务&#xff0c;需要写一个脚本&#xff0c;不断监视com.android.phone 进程是否异常死掉 脚本 #!/system/bin/sh last_pid"" current_pid"" while(true){current_pidps -A | grep com.android.phone | awk {print $2}if [ -n "$current…

uni-appx,实现登录功能,弹窗功能。组件之间传值

这篇文章的内容使用组合式API实现的&#xff0c;只有弹窗部分有选择式API的写法介绍。如果想要看其他选择式API&#xff0c;还请下载官方的hello-uni-appx源码进行学习&#xff0c;查看。想要看组合式API的写法&#xff0c;请查看源码 hello-uvue。 hello-uni-appx源码 相比于…

Vue + Element UI + JSEncrypt实现简单登录页面

安装依赖 npm install jsencrypt --save局部引入 import JSEncrypt from jsencrypt/bin/jsencrypt;登录页面index.vue <template><div class"loginbody"><div class"logindata"><div class"logintext"><h2>Wel…

Uncaught (in promise) RangeError: Offset is outside the bounds of the DataView

问题 通常发生在Failed to load resource: the server responded with a status of 404 (Not Found) 后&#xff0c;资源读取错误导致的问题。 解决 Failed to load resource: the server responded with a status of 404 (Not Found)_unity webgl failed to load resource:…

LVS-DR群集

LVS-DR集群 LVS-DR(Linux Virtual Server DIrector Server)工作模式&#xff0c;是生产环境中最常用的一种工作模式。 LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网关使用&#xff0c;节点DirectorServer与Real Server需要…

TensorRT-Int8量化详解

int8量化是利用int8乘法替换float32乘法实现性能加速的一种方法 对于常规模型有&#xff1a;y kx b&#xff0c;此时x、k、b都是float32, 对于kx的计算使用float32的乘法 对于int8模型有&#xff1a;y tofp32(toint8(k) * toint8(x)) b&#xff0c;其中int8 * int8结果为in…