自己动手研发P2P功能的IPC摄像头

3 篇文章 1 订阅
2 篇文章 0 订阅

纯工程师一名,历经一段时间的摸索,搞定了基于海思3518E方案的IPC摄像头, 研发摄像头需要掌握的知识点还挺多的,没法通过三言两语讲述清楚.

先上图, 最后完成的作品如下:



研发一款摄像头需要掌握的基本流程与知识点


1: 搭建linux 嵌入式虚拟机, ARM交叉编译环境, 如下图是我搭建的ubuntu的编译环境

同时还需要仔细读海思的 Hi3518A/Hi3518C/Hi3516C Linux开发环境 用户指南.pdf  ,这个是入门的第1步。

其中需要注意的一个大坑,就是linux的shell系统,ubuntu默认是无法执行 用户指南中的 指令。需要把ubuntu的shell系统改掉


2: 编译Linux内核与制作ROOTFS

嵌入式研发工程师都懂的呀,如果不懂,请参考海思提供的文档 Linux开发环境 用户指南.pdf,同时结合网上的嵌入式研发入门教程。也可以QQ联系我,我教你!


3:通过UBOOT引导烧写内核与根文件系统

烧写内核
set serverip 192.168.1.199;   //你的NFS服务器IP,什么是NFS Server请自己搜索
mw.b 0x82000000 0xFF 0x100000;
tftp 0x82000000 wuImage;  //编译出来的内核文件,精简后的linux内核为1M大小
sf probe 0;
sf erase 0x40000 0x100000;
sf write 0x82000000 0x40000 0x100000

烧写rootfs文件系统
mw.b 0x82000000 0xFF 0x600000;
tftp 0x82000000 rootfs-ov9712-8188.jffs2;   //跟文件系统,里边包含了基本的驱动
sf probe 0;
sf erase 0x140000 0x680000;
sf write 0x82000000 0x140000 0x680000



4: 编写自己的IPC程序

这个是重点,参阅《HiMPP 媒体处理软件开发参考.pdf 》,你不需要看每个函数,但是最重要的是结合HISI提供的例子Sample。

在例子里,其中sensor和硬件配套的CMOS型号一定要匹配,不然会出现

 get venc stream time out, exit thread

5:让摄像头支持P2P访问

无须搭建云服务器,在任何地方都可以随时视频摄像头。

目前这块技术已经有第三方的公司做的比较久了,建议直接整合,没必要自己研发,主要是成本高,我采用的是 TUTK的P2P平台,只需要购买他们的ID号,配置到摄像头里就可以让摄像头在任何地方随时视频,整合也比较简单.


6: 手机APP视频播放

手机解码还是有一定难度,参考我的另外一篇文章:

http://blog.csdn.net/imlsq/article/details/48158143

如有技术问题需要咨询,可以联系我,QQ13012608




如何使用ESP32-CAM或ESP32-EYE + Omnivision相机制作小型,低成本的监控摄像头 - 包括应用和设备源。 硬件组件: Seeed ESP-CAM× 1 Espressif ESP-EYE× 1 Espressif Generic ESP32 IC× 1 软件应用程序和在线服务: iOS P2P视频应用 Android P2P视频应用 简单安全的标准监控摄像头 一个简单的用例可能是您希望制作标准的低成本,简单(安全)监控摄像头。标准监控摄像机通常随附大量软件,然后必须通过更新,安全修复等来支持。因此,没有桌面/服务器规模操作系统和运行服务的简化环境因其小得多的攻击面而具有更高的安全性。但如果这还不够,低成本和小尺寸应该说服你。 其他应用中的远程视频输入 我们的许多客户将视频监控摄像头视为独立应用程序,即您安装它并在需要查看远程端发生的情况时将视频流式传输到手机。但是,我们看到越来越多的项目将流式视频作为另一个应用程序的一部分。例如,带有视频流的宠物喂食器,具有音频和视频功能的门铃,可以监控的3D打印机等。 我们开始研发M5Stack ESP32 Cam。它没有额外的外部RAM,而是有一个USB到板上的ESP32 UART,这使得编程更容易(你不必手动操作GPIO0等进入闪存编程模式) M5Stack的问题在于它缺少外部存储器,当你需要流式传输大量数据并快速完成时,你需要保留一个未经确认的数据包缓冲区从相机流向应用程序,如果数据包已准备好重新发送在运输过程中丢失了。此外,您需要从相机缓冲帧缓冲区。当然,这可以进行优化,因此所有内容都使用相同的缓冲区,但这会违反关注点分离原则,并使集成更加困难。
P2P(Peer-to-Peer)技术是一种点对点的通信方式,它可以使得两个或多个设备直接互相通信,而无需经过中间服务器的转发。对于摄像头而言,P2P功能模块可以让用户在远程监控时不需要使用公网IP地址,也不需要配置端口转发,只需要使用一个唯一的设备ID即可实现远程监控。 以下是一个基本的P2P功能模块实现的步骤: 1. 注册设备:每个设备都需要一个唯一的ID,用户需要注册并绑定该ID到自己的账户中,以便于进行远程监控。 2. 打洞:在两个设备之间建立P2P连接需要打洞,打洞是指通过中间服务器协调两个设备之间的通信,以便建立直接的点对点连接。打洞过程需要经过以下几个步骤: - 1. 设备A向中间服务器发送连接请求。 - 2. 中间服务器返回设备A的公网IP和端口,设备A将其发送给设备B。 - 3. 设备B向设备A的公网IP和端口发送连接请求。 - 4. 设备A和设备B之间建立P2P连接。 3. 传输数据:一旦P2P连接建立成功,两个设备之间就可以直接传输数据了。在摄像头的应用场景下,设备B可以通过P2P连接接收设备A的视频数据。 4. 网络穿透:由于一些网络环境的限制,P2P连接可能会失败。为了解决这个问题,可以使用一些网络穿透技术,比如STUN、TURN等,以便于在各种网络环境下都能够成功建立P2P连接。 总之,P2P功能模块可以大大简化远程监控的配置,提高用户的体验,是摄像头开发中不可或缺的一个模块。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值