libc0607 发表于 2020-5-24 19:00:42

百元成本 海思芯片的监控模组做录像+udp码流输出


关于把基于海思芯片的 IPC 模组用在飞机上录像并顺便输出一路码流给数字图传的事


本项目为 YJSNPI-Broadcast 填坑过程中的副产物,就是原模型电子区的这个帖子
https://www.moz8.com/forum.php?mod=viewthread&tid=177797
但由于单独当作录像机用也能用就另开贴发一下


海思芯片的监控摄像头模组 很便宜 但是原厂软件并不适合用在飞机上
楼主在给YJSNPI-Broadcast填坑过程中填到了这么一个坑,即搞一个固件给监控摄像头用,让它可以同时录制高清视频+提供一路低码率的视频流给图传发射
这样相比树莓派做视频采集压缩有几个优点:便宜/sensor选择多/镜头等配件丰富/支持h265/可以高清录像/回传码率低(传输距离远) ………………
总之这个坑算是填了一点了,固件基本能用就先发出来试试 代码糊得跟屎一样 请轻喷


主要参数:
hi3516ev200+imx307的模组:支持录制 h264/h265 1080P@30fps 保存到tf卡 + h264/h265 360P@30fps udp码流输出
hi3516ev300+imx335的模组:支持录制 h264/h265 1296P@30fps 保存到tf卡 + h264/h265 480P@30fps udp码流输出

udp码流输出可以对接到现有的树莓派图传上(需要自己修改,楼主暂时没法测试,Github有提供思路)
配件 淘宝有 F2.0 F1.2 F1.0光圈 2.8~12mm定焦以及变焦镜头可选
延迟也就那样 穿越机肯定不可能 固定翼可以
成本大概可以做到100以内?
防抖基本没有——需要云台



详细的说明教程及固件见   https://github.com/libc0607/YJSNPI-Hi
暂时只发了ev200+imx307的固件,ev300+imx335的有空做好发








wsqzdz 发表于 2020-5-25 10:21:51

后面这块板是成品还是自己做的

4920614 发表于 2020-5-25 10:41:40

不玩夜航的话光圈 F2.0 足够了.不知道天色比较暗的阴天如何?楼主要是有视频让大家看看效果最好了

libc0607 发表于 2020-5-25 13:30:27

wsqzdz 发表于 2020-5-25 10:21
后面这块板是成品还是自己做的

图里后面这块是成品,Github上发了自己做的

libc0607 发表于 2020-5-25 13:31:46

4920614 发表于 2020-5-25 10:41
不玩夜航的话光圈 F2.0 足够了.不知道天色比较暗的阴天如何?楼主要是有视频让大家看看效果最好了 ...

问题是需要用别的东西对比一下才容易看出区别
最近比较忙。。有空傍晚出去录一个

imzhoujian 发表于 2020-5-25 20:13:36

我来顶你帖了,有点看不懂,GitHub都要翻墙,无语

riyueyoub 发表于 2020-6-16 22:18:17

佩服大牛,想问下楼主OpenWrt的地面端怎么安装地面端软件?看了几遍摸不清头绪

libc0607 发表于 2020-6-17 13:40:51

riyueyoub 发表于 2020-6-16 22:18
佩服大牛,想问下楼主OpenWrt的地面端怎么安装地面端软件?看了几遍摸不清头绪 ...

其实并没有做完。。

wstzb 发表于 2020-6-26 00:45:06

刷了一下github的ev200的固件,买了扩展版接了tf卡,可以读取ini文件,启动运行出错,主要是xx-env这软件运行出错了,晚点把错误的内容拷贝出来

riyueyoub 发表于 2020-6-27 12:13:18

libc0607 发表于 2020-6-17 13:40
其实并没有做完。。

我想求教下,可不可以用armbian安装软件做地面端?好多盒子支持armbian,那个比树莓便宜好多!我不懂只是问问,

libc0607 发表于 2020-6-27 13:22:34

riyueyoub 发表于 2020-6-27 12:13
我想求教下,可不可以用armbian安装软件做地面端?好多盒子支持armbian,那个比树莓便宜好多!我不懂只是 ...

如果你选择的盒子在armbian下支持硬件解码h264或h265 并且你能把软件搬过去 就可以

riyueyoub 发表于 2020-6-27 15:37:42

libc0607 发表于 2020-6-27 13:22
如果你选择的盒子在armbian下支持硬件解码h264或h265 并且你能把软件搬过去 就可以 ...

{:1_9:}我什么都不懂,刚接触这东西不久 盒子支持265解码,就是不会搬软件!是直接下载软件编译安装后,再打软件里的内核补丁吗?我看有个文章是用卡片电脑安装wifiboardcast的!不过我不会,摸不到头绪,英文一窍不通{:1_12:}{:1_8:},如果能这个成本要降不少啊!

libc0607 发表于 2020-6-27 23:25:14

riyueyoub 发表于 2020-6-27 15:37
我什么都不懂,刚接触这东西不久 盒子支持265解码,就是不会搬软件!是直接下载软件编译安装后, ...

那你还是。。。还是。。。还是等openhd搞派4的h265吧。。。。

wstzb 发表于 2020-7-6 00:28:42

===============================================================
===============================================================
                     YJSNPI VENC start
venc.ini:


# enc: 264,265
# rc: 0(cbr),1(vbr),2(cvbr),3(avbr),6(qvbr) 其他的吞了
# kbps: 视频比特率
# ch1_res: udp通道分辨率,240,360,480
# gop: 0-norm,1-dual,2-smart
# ch0_savedir 需要存在

ch0_enc=264       
ch0_rc=0               
ch0_kbps=2048
ch0_gop=2       
#ch0_savedir=/var/tmp/mmcblock0/save233
ch0_savedir=/tf

ch1_enc=265
ch1_res=360                       
ch1_rc=0               
ch1_kbps=1024
ch1_gop=1       
ch1_udp_bind_port=20000
ch1_udp_send_ip=192.168.1.107
ch1_udp_send_port=5000ipaddr:
===============================================================
===============================================================
===============================================================
===============================================================
                     YJSNPI VENC start
venc.ini:


# enc: 264,265
# rc: 0(cbr),1(vbr),2(cvbr),3(avbr),6(qvbr) 其他的吞了
# kbps: 视频比特率
# ch1_res: udp通道分辨率,240,360,480
# gop: 0-norm,1-dual,2-smart
# ch0_savedir 需要存在

ch0_enc=264       
ch0_rc=0               
ch0_kbps=2048
ch0_gop=2       
ch0_savedir=/var/tmp/mmcblock0/save233
#ch0_savedir=/tf

ch1_enc=265
ch1_res=360                       
ch1_rc=0               
ch1_kbps=1024
ch1_gop=1       
ch1_udp_bind_port=20000
ch1_udp_send_ip=192.168.1.107
ch1_udp_send_port=5000ipaddr:
===============================================================
===============================================================
===============================================================
===============================================================
                     YJSNPI VENC start
venc.ini:


# enc: 264,265
# rc: 0(cbr),1(vbr),2(cvbr),3(avbr),6(qvbr) 其他的吞了
# kbps: 视频比特率
# ch1_res: udp通道分辨率,240,360,480
# gop: 0-norm,1-dual,2-smart
# ch0_savedir 需要存在

ch0_enc=264       
ch0_rc=0               
ch0_kbps=2000
ch0_gop=2       
#ch0_savedir=/var/tmp/mmcblock0/save233
ch0_savedir=/tf

ch1_enc=264
ch1_res=360                       
ch1_rc=0               
ch1_kbps=1024
ch1_gop=1       
ch1_udp_bind_port=20000
ch1_udp_send_ip=192.168.1.107
ch1_udp_send_port=5000ipaddr:
===============================================================
===============================================================
===============================================================
===============================================================
                     YJSNPI VENC start
venc.ini:


# enc: 264,265
# rc: 0(cbr),1(vbr),2(cvbr),3(avbr),6(qvbr) 其他的吞了
# kbps: 视频比特率
# ch1_res: udp通道分辨率,240,360,480
# gop: 0-norm,1-dual,2-smart
# ch0_savedir 需要存在

ch0_enc=264       
ch0_rc=1
ch0_kbps=512
ch0_gop=1
#ch0_savedir=/var/tmp/mmcblock0/save233
ch0_savedir=/tf

ch1_enc=264
ch1_res=360                       
ch1_rc=1
ch1_kbps=512
ch1_gop=1       
ch1_udp_bind_port=20000
ch1_udp_send_ip=192.168.1.107
ch1_udp_send_port=5000ipaddr:
===============================================================
===============================================================
System startup

Uncompress Ok!

U-Boot 2016.11-g2fc5f58-dirty (Sep 06 2019 - 15:13:30 +0800)hi3516ev200

Relocation Offset is: 0371b000
Relocating to 43f1b000, new gd at 43edaef0, sp at 43edaed0
SPI Nor:eFlashType: 24.
Flash Name: XM_XT25F64B-S{0xB4017), 0x800000.
@hifmc_spi_nor_probe(), XmSpiNor_ProtMgr_probe(): OK.
@XmSpiNor_enableQuadMode(), Quad was Disabled, SRx: .
CONFIG_CLOSE_SPI_8PIN_4IO = y.
read->iftype: 1.
Current level, lock_level_max:7.
at xm_get_locked_range() sr:0x18, level:6.
lk
SRx val: {, , , }.
In:    serial
Out:   serial
Err:   serial
Net:   eth0
Hit ctrl+c to stop autoboot:0
@do_spi_flash_probe() flash->erase_size:65536
device 0 offset 0x40000, size 0x550000

SF: 5570560 bytes @ 0x40000 Read: OK
srcAddr 0x43000000, dstAddr 0x42000000
created_inode 0x43edbd80
find_squashfs_file: name bin, start_block 0, offset 3795, type 1
find_squashfs_file: name boot, start_block 0, offset 3963, type 1
read inode: name boot, sb 0, of 3963, type 1
find_squashfs_file: name uImage, start_block 0, offset 3827, type 2
read inode: name uImage, sb 0, of 3827, type 2
write_file: regular file, blocks 26
len 1676861
### FS load complete: 1676861 bytes loaded to 0x42000000
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   Linux-4.9.37
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1676797 Bytes = 1.6 MiB
   Load Address: 40008000
   Entry Point:40008000
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Auto login as root ...
Welcome to HiLinux.




mntmtdyjsnpi # /usr/bin/yjsnpi-venc mnt/mtd/yjsnpi/venc.ini
============================================================================
YJSNPI-Hi Video Encoder
============================================================================
YJSNPI VENC config Info old file ctr 3661, new 3662
YJSNPI VENC settings
DIS 0
CH0 enc 96, res 8, rc 0, kbps 2048, gop 2, savedir tf0000003662.h264
CH1 enc 265, res 1, rc 0, kbps 1024, gop 1, lport 20000, dport 5000, udpip 192.168.1.107
-1857 support this chip 3516e200
-1857 support this chip 3516e200
-2067 ============= MipiDev 0, SetMipiAttr enWDRMode 0
linear mode
==============================================================
=====Sony imx307_2l sensor 1080P30fps(MIPI) init success!=====
==============================================================
-600 HI_MPI_VPSS_SetChnAttr chan 0 failed with 0xa0078003
-921 Init VPSS err for 0xa0078003!
-375 ISP Dev 0 running !
ISP_CheckMemInit 138 ISP Mem NOT Init 0!
-380 HI_MPI_ISP_Run failed with 0xa01c8041!
program exit abnormally!


卡在这里了,不知道啥问题,固件是github上下的,按照教程运行的

wstzb 发表于 2020-7-6 00:55:34

搞定了,用默认配置文件运行就可以了!我的配置参数不对,明天测试一下,现在快1点了

梦的边缘 发表于 2020-7-6 08:20:07

看起来很厉害的样子!期待成品视频!

qzxyh 发表于 2020-7-6 21:22:31

期待成品视频!

wstzb 发表于 2020-7-9 23:02:08

用这个摄像头的夜视效果很棒,晚上微光就跟白天一样!
但是默认的360p像素太低了,保存的h265文件用VCL打开,看一会就闪退。。。
有人遇到吗~

libc0607 发表于 2020-7-10 17:30:36

wstzb 发表于 2020-7-9 23:02
用这个摄像头的夜视效果很棒,晚上微光就跟白天一样!
但是默认的360p像素太低了,保存的h265文件用VCL打开 ...

ev200内存太小了。。几乎没法分配给视频编码器更多内存,分辨率就上不去
下一步打算自己做硬件了,想换个高端点的芯片

wstzb 发表于 2020-7-10 23:31:10

libc0607 发表于 2020-7-10 17:30
ev200内存太小了。。几乎没法分配给视频编码器更多内存,分辨率就上不去
下一步打算自己做硬件了,想换个 ...

应该不会啊,做监控5M都可以浏览,录像不重要,实时采集比较好!主要是SONY的CMOS有优势。
页: [1] 2
查看完整版本: 百元成本 海思芯片的监控模组做录像+udp码流输出