0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用VF2部署一个网络摄像头

发烧电子爱好者 来源:发烧电子爱好者 作者:发烧电子爱好者 2023-09-11 09:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本来今天想下载编译openWRT,后来发现tf卡空间分配问题,明天再调整吧,看了看桌上的USB摄像头,今天晚上就你出场了。

一开始我是犹豫的,因为RISC-V的生态,不一定能部署的上相关软件,但是JH7110,加上Imagination的GPU,再加上Debian OS,想不出会有什么不兼容的场景,最大风险可能来自CPU,有的话应该都能解决掉,那就上吧。

一、软件环境

(一)操作系统

官方的Debian镜像(starfive-jh7110-202306-SD-minimal-desktop.img),也没用去update了,反正也挺新的。

root@starfive:# uname -a
Linux starfive 5.15.0-starfive #1 SMP Sun Jun 11 07:48:39 UTC 2023 riscv64 GNU/Linux

就是因为文件名上带minimal,可能需要安装的东西会比较多,反正我心里有个数。

(二)安装libjpeg62-turbo-dev

root@starfive:# apt install libjpeg62-turbo-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libc-dev-bin libc-devtools libc6-dev libcrypt-dev libnsl-dev libtirpc-dev
  linux-libc-dev manpages manpages-dev rpcsvc-proto
Suggested packages:
  glibc-doc
The following NEW packages will be installed:
  libc-dev-bin libc-devtools libc6-dev libcrypt-dev libjpeg62-turbo-dev
  libnsl-dev libtirpc-dev linux-libc-dev manpages manpages-dev rpcsvc-proto
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 8933 kB of archives.
After this operation, 44.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

(三)安装imagemagick

root@starfive:#  apt install imagemagick
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  imagemagick-6.q16 libnetpbm11 netpbm
Suggested packages:
  imagemagick-doc autotrace cups-bsd | lpr | lprng curl enscript ffmpeg gimp
  gnuplot grads graphviz hp2xx html2ps libwmf-bin mplayer povray radiance
  texlive-base-bin transfig ufraw-batch xdg-utils
  imagemagick imagemagick-6.q16 libnetpbm11 netpbm
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
After this operation, 7693 kB of additional disk space will be used.

(四)安装libv4l-dev

root@starfive:# apt install libv4l-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libv4l2rds0
Suggested packages:
  pkg-config
The following NEW packages will be installed:
  libv4l-dev libv4l2rds0
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 291 kB of archives.
After this operation, 1948 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 libv4l2rds0 riscv64 1.22.1-5+b1 [80.4 kB]
Get:2 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 libv4l-dev riscv64 1.22.1-5+b1 [211 kB]
Fetched 291 kB in 5s (61.7 kB/s)

(五)安装编译工具

发现gcc、git、cmake啥都没用,果然够minimal,逐一apt install。

root@starfive: # apt install gcc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  gcc-12 libasan8 libcc1-0 libgcc-12-dev
Suggested packages:
  gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc
  gcc-12-doc gcc-12-locales
The following NEW packages will be installed:
  gcc gcc-12 libasan8 libcc1-0 libgcc-12-dev
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.6 MB of archives.
After this operation, 70.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 libcc1-0 riscv64 12.2.0-10 [38.4 kB]
Get:2 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 libasan8 riscv64 12.2.0-10 [2067 kB]
Get:3 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 libgcc-12-dev riscv64 12.2.0-10 [1951 kB]
Get:4 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 gcc-12 riscv64 12.2.0-10 [14.6 MB]
Get:5 https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable/main riscv64 gcc riscv64 4:12.2.0-1 [5200 B]
Fetched 18.6 MB in 3min 55s (79.5 kB/s)

安装完成后检查下:

root@starfive:# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/riscv64-linux-gnu/12/lto-wrapper
Target: riscv64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-10' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=riscv64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --disable-multilib --with-arch=rv64gc --with-abi=lp64d --enable-checking=release --build=riscv64-linux-gnu --host=riscv64-linux-gnu --target=riscv64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-10)

二、源码下载、编译和安装

(一)源码下载

JH7110处理能力毋庸置疑,直接板子上编译和安装,源代码直接从github上拉取。

git clone https://github.com/jacksonliam/mjpg-streamer.git
Cloning into 'mjpg-streamer'...
remote: Enumerating objects: 2964, done.
remote: Total 2964 (delta 0), reused 0 (delta 0), pack-reused 2964
Receiving objects: 100% (2964/2964), 3.48 MiB | 4.33 MiB/s, done.
Resolving deltas: 100% (1885/1885), done.

(二)源码编译和安装

进入/mjpg-streamer/mjpg-streamer-experimental 文件夹,执行 make all。

VF21.png

检查下生成的文件,

VF22.png

再安装。

VF23.png

三、服务启动

(一)前期工作

首先确保网络正常连接。

VF24.png

之后插入USB camera,OS提示已经识别:

root@starfive: # [ 3976.150090] usb 1-1.3: new high-speed USB device number 3 using xhci_hcd
[ 3976.295340] usb 1-1.3: Found UVC 1.00 device HIK 720P Camera (2bdf:0280)
[ 3976.306997] input: HIK 720P Camera: HIK 720P Camer as /devices/platform/soc/2b000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1                                                                     .3/1-1.3:1.0/input/input0

通过对比video大法判断设备名,找出是/dev/video4:

root@starfive: # ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 Dec 22  2022 /dev/video0
crw-rw----+ 1 root video 81, 1 Dec 22  2022 /dev/video1
crw-rw----+ 1 root video 81, 2 Dec 22  2022 /dev/video2
crw-rw----+ 1 root video 81, 3 Dec 22  2022 /dev/video3
crw-rw----+ 1 root video 81, 6 Aug 21 14:42 /dev/video4
crw-rw----+ 1 root video 81, 7 Aug 21 14:42 /dev/video5
crw-rw----+ 1 root video 81, 4 Dec 22  2022 /dev/video6
crw-rw----+ 1 root video 81, 5 Dec 22  2022 /dev/video7

(二)启动USB摄像头

直接输入 mjpg_streamer 即可启动服务,默认的是video0,VF2开发板的USB摄像头是video4。在启动服务命令中通过“-d /dev/video4” 选项来指定。

y是表示YUV格式。如果没有-y,默认启动是mjpeg格式
-d指定设备
-f 制订帧数,默认30帧
-r指定视频大小,如320×240
-q指定画质,默认80对于输出参数:
-p 指定端口,一般是8080
-w 指定网页目录,设置的是/www目录
-c设置通过密码访问

./mjpg_streamer -i "./input_uvc.so -d /dev/video4 -f 30 -q 90 -n" -o "./output_http.so -w ./www"

启动后的日志如下:

VF25.png

四、网络摄像头测试

(一)在线视频查看

打开浏览器,访问URL为:[VF2开发板 IP]:8080 ,得到的内容如下:

VF26.png

(二)取一张图

取一张图的URL为`IP:8080?action=snapshot,直接给自己照相:

VF27.png

五、一些体会

全程下来无错误,整个软件安装非常顺利,本以为会出现的各种小问题一个都没。
JH7110 CPU功能强大,之前在H616上也编译过mjpg-streamer,耗时跟VF2完全不同,在VF2上简直飞一般编译安装。
GPU(Imagination BXE-4-32 GPU)还没有测试,按理来说Imagination的应该兼容性和性能不会有什么大问题,下次有时间可以测试下。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5271

    浏览量

    136059
  • 操作系统
    +关注

    关注

    37

    文章

    7436

    浏览量

    129609
  • OpenWrt
    +关注

    关注

    10

    文章

    136

    浏览量

    41410
  • 网络摄像头
    +关注

    关注

    2

    文章

    48

    浏览量

    16454
  • RISC-V
    +关注

    关注

    49

    文章

    2946

    浏览量

    53534
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微(EASY EAI)RV1126B 网络摄像头方案

    1.方案简介本方案将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头制作网络
    的头像 发表于 04-15 16:49 559次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>网络</b><b class='flag-5'>摄像头</b>方案

    汽车多摄像头系统利器:S2D13P04相机接口IC

    ——S2D13P04。 文件下载: S2D13P04F00A100-90.pdf 产品概述 S2D13P04是款面向汽车多摄像头系统的相机
    的头像 发表于 03-30 14:10 158次阅读

    如何在 VF2 上编译东西?

    了 gcc 的 riscv 版本,但我在这里不知所措。 你们中的些人设法在 VF2 上编译了该模块。 你能写简短的 gnereic 指南,介绍如何在黑板上编译它吗? 这也可以用作
    发表于 03-03 07:15

    如何超频 VF2

    你如何超频 VF2?我现在正在使用来输入此消息,但它非常慢。热量应该不是问题,因为我可以在没有散热器的情况下满载并保持彻头彻尾的寒冷,而我使用的这个有
    发表于 02-25 07:43

    ESP32-S3在初始化摄像头时检测到摄像头模组型号不被支持

    、供电不足或ESP32-S3引脚配置错误。 二、分步解决方案 1. 第步:确认摄像头模组型号(关键) ESP32-S3官方驱动仅原生支持 OV2640(200万像素)和 OV5640(500万像素
    发表于 02-11 06:38

    Vf2启动地址问题求解

    问题:图中0x13010000是Quad SPI NOR flash emmory的起始地址吗?若不是那么Quad SPI NOR flash emmory的起始地址是什么?或者vf2板子的地址map表哪里有?
    发表于 01-29 07:07

    Termux手机摄像头采集图像/视频流 部署 YOLO 模型推理

    Termux手机摄像头采集图像/视频流 部署 YOLO 模型推理
    的头像 发表于 12-14 07:26 3295次阅读

    自动驾驶既然有双目摄像头了,为什么还要三目摄像头

    [首发于智驾最前沿微信公众号]在自动驾驶领域,纯视觉方案直受到不少人的认可。双目摄像头由于模拟了人眼的工作方式,能够通过视差计算还原三维信息,在距离判断和空间感知上具有天然优势,因此被广泛应用于纯
    的头像 发表于 12-09 08:59 1247次阅读
    自动驾驶既然有双目<b class='flag-5'>摄像头</b>了,为什么还要三目<b class='flag-5'>摄像头</b>?

    车载双目摄像头如何“看见”世界?

    源自:网络 车载双目摄像头(也称立体视觉摄像头,Stereo Camera)模仿人眼的视觉机制,通过两略有间距的摄像头同时拍摄同
    的头像 发表于 11-13 09:17 1663次阅读
    车载双目<b class='flag-5'>摄像头</b>如何“看见”世界?

    创世SD NAND贴片卡:智能摄像头存储难题的完美解决方案 #人工智能 #智能摄像头 #摄像头

    摄像头
    深圳市雷龙发展有限公司
    发布于 :2025年08月05日 11:17:13

    红外摄像头模组是什么?科技时代的眼睛

    深入探讨红外摄像头模组的工作原理、应用领域以及选择红外摄像头时需要考虑的因素。什么是红外摄像头模组?红外摄像头模组是种能够捕捉红外线图像的
    的头像 发表于 07-31 10:07 1305次阅读
    红外<b class='flag-5'>摄像头</b>模组是什么?科技时代的眼睛

    【Milk-V Duo S 开发板免费体验】4 - OV5647 摄像头摄像头测试

    引言 以前使用Milk-V Duo的时候,觉得它的摄像头支持比较弱,只能支持特定型号的摄像头,还不好买。我有学生甚至因为这个原因退出了集创赛。这次特意测试了下它的
    发表于 07-08 21:26

    【VisionFive 2单板计算机试用体验】USB摄像头测试

    使用opencv测试USB摄像头、检测USB摄像头 插入USB摄像头,执行命令,提示没有找到命令 root@starfive:~# lsusb 安装软件包 root@star
    发表于 07-06 23:14

    基于RK3576开发板的网络摄像头方案

    本方案演示了如何利用EASY-EAI-Orin-Nano和MIPI-CSI摄像头制作四路网络摄像头
    的头像 发表于 05-12 17:54 1206次阅读
    基于RK3576开发板的<b class='flag-5'>网络</b><b class='flag-5'>摄像头</b>方案

    天波解疑:IPC监控摄像头的低功耗特点及其优势

    随着智能安防和城市建设的需求,高清网络监控摄像头或IPC监控摄像头被广泛应用。比起般的监控摄像头,高清
    的头像 发表于 04-25 09:46 1446次阅读
    天波解疑:IPC监控<b class='flag-5'>摄像头</b>的低功耗特点及其优势