百元成本 海思芯片的监控模组做录像+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的有空做好发
后面这块板是成品还是自己做的
不玩夜航的话光圈 F2.0 足够了.不知道天色比较暗的阴天如何?楼主要是有视频让大家看看效果最好了 wsqzdz 发表于 2020-5-25 10:21
后面这块板是成品还是自己做的
图里后面这块是成品,Github上发了自己做的 4920614 发表于 2020-5-25 10:41
不玩夜航的话光圈 F2.0 足够了.不知道天色比较暗的阴天如何?楼主要是有视频让大家看看效果最好了 ...
问题是需要用别的东西对比一下才容易看出区别
最近比较忙。。有空傍晚出去录一个 我来顶你帖了,有点看不懂,GitHub都要翻墙,无语 佩服大牛,想问下楼主OpenWrt的地面端怎么安装地面端软件?看了几遍摸不清头绪 riyueyoub 发表于 2020-6-16 22:18
佩服大牛,想问下楼主OpenWrt的地面端怎么安装地面端软件?看了几遍摸不清头绪 ...
其实并没有做完。。 刷了一下github的ev200的固件,买了扩展版接了tf卡,可以读取ini文件,启动运行出错,主要是xx-env这软件运行出错了,晚点把错误的内容拷贝出来 libc0607 发表于 2020-6-17 13:40
其实并没有做完。。
我想求教下,可不可以用armbian安装软件做地面端?好多盒子支持armbian,那个比树莓便宜好多!我不懂只是问问, riyueyoub 发表于 2020-6-27 12:13
我想求教下,可不可以用armbian安装软件做地面端?好多盒子支持armbian,那个比树莓便宜好多!我不懂只是 ...
如果你选择的盒子在armbian下支持硬件解码h264或h265 并且你能把软件搬过去 就可以 libc0607 发表于 2020-6-27 13:22
如果你选择的盒子在armbian下支持硬件解码h264或h265 并且你能把软件搬过去 就可以 ...
{:1_9:}我什么都不懂,刚接触这东西不久 盒子支持265解码,就是不会搬软件!是直接下载软件编译安装后,再打软件里的内核补丁吗?我看有个文章是用卡片电脑安装wifiboardcast的!不过我不会,摸不到头绪,英文一窍不通{:1_12:}{:1_8:},如果能这个成本要降不少啊! riyueyoub 发表于 2020-6-27 15:37
我什么都不懂,刚接触这东西不久 盒子支持265解码,就是不会搬软件!是直接下载软件编译安装后, ...
那你还是。。。还是。。。还是等openhd搞派4的h265吧。。。。 ===============================================================
===============================================================
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上下的,按照教程运行的 搞定了,用默认配置文件运行就可以了!我的配置参数不对,明天测试一下,现在快1点了 看起来很厉害的样子!期待成品视频! 期待成品视频! 用这个摄像头的夜视效果很棒,晚上微光就跟白天一样!
但是默认的360p像素太低了,保存的h265文件用VCL打开,看一会就闪退。。。
有人遇到吗~ wstzb 发表于 2020-7-9 23:02
用这个摄像头的夜视效果很棒,晚上微光就跟白天一样!
但是默认的360p像素太低了,保存的h265文件用VCL打开 ...
ev200内存太小了。。几乎没法分配给视频编码器更多内存,分辨率就上不去
下一步打算自己做硬件了,想换个高端点的芯片 libc0607 发表于 2020-7-10 17:30
ev200内存太小了。。几乎没法分配给视频编码器更多内存,分辨率就上不去
下一步打算自己做硬件了,想换个 ...
应该不会啊,做监控5M都可以浏览,录像不重要,实时采集比较好!主要是SONY的CMOS有优势。
页:
[1]
2