发烧友实测 | OKA40i-C开发板试用体验之远程视频监控

原创 2023-02-22 11:52:00 远程视频监控 A40i

 一. 开源软件MJPG-Streamer

上次介绍了使用FFmpeg将USB摄像头的视频转换为视频流发送给PC机,今天来介绍另一个解决方案MJPG-Streamer。MJPG-Streamer的原理是将USB摄像头采集的图像以JPEG格式发送出去,然后持续更新图片形成一个视频流。

它的优势有两个:

一是和浏览器的兼容性最好,可以轻松地在浏览器中显示,而无需担心浏览器是否支持Flash或流媒体协议;二是采用JPEG没有前后帧的关联,所以如果出现丢包只影响当前画面,而不会像H.264那样可能连续一段时间的马赛克图像。

当然也有缺点:

缺点是JPEG流的压缩效率比较低,比H.264浪费带宽。

二. Libjpeg库的编译

MJPG-Streamer要用到libjpeg,所以首先需要编译libjpeg。首先访问http://www.ijg.org/下载源代码,我使用的是最新的9e版本。将源代码解压到jpeg-9e目录后,在该命令下执行configure命令进行配置:

./configure --host=ARM-linux-gnueabihf --prefix=/mnt/boaled/jpeg-9e/_install/

其中的host是指明所使用的编译器,prefix是指定编译后文件安装的目录。

然后执行下面的命令:

make

make install


命令执行完毕,就会在prefix所指定的目录下生成4个目录,其中include目录包括所需要的头文件,而lib目录下包括库文件。这些在后面会用到。编译后需要把libjpeg.so.9.5.0拷贝到开发板的 /usr/lib 目录下,并建立一个指向该文件的软连接libjpeg.so.9。

另外,开发板原来带有libjpeg.so.8.0.2这个版本。如果不希望安装更新版本,也可以在http://www.ijg.org/files/下载和板子对应的历史版本。

三.  MJPG-Streamer的编译

MJPG-Streamer有两个主要版本(建议在PC打开链接):

1.http://sourceforge.net/projects/mjpg-streamer/这个是原始版本,不过原作者已经放弃更新了。

2.https://github.com/jacksonliam/mjpg-streamer/

这个是后续更新的版本。

要在飞凌嵌入式OKA40i-C开发板上使用,只能使用sourceforge那个版本。因为github的版本虽然更新,但是它对内核的版本有要求,至少3.18以上。

OKA40i-C开发板提供的内核版本是3.10,无法正确处理新版本的某些V4L2消息。另外,github版本采用CMake进行编译,后面所介绍的编译方法也不适用。

进入下方地址:

https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/

点右上的“Download Snapshot”下载最新版的mjpg-streamer-code-182。这里可以看到两个mjpg-streamer目录。一般使用mjpg-streamer-experimental这个版本,它支持的功能更多一些。

在编译之前,需要先修改plugins/input_uvc目录下的makefile文件,在其中加入如下两行:

这两行的作用就是编译时能够找到我们前面生成的libjpeg库。如果想修改MJPG-Streamer的插件设置,也可以修改mjpg-streamer-experimental目录下的makefile:

在本次测试中用不到其他插件,所以就采用默认配置。

然后在命令行执行下面的命令就可以编译了。

make CC=arm-linux-gnueabihf-gcc

编译成功后把mjpg_streamer和几个so文件都拷贝到飞凌A40i开发板上并正确设置好权限就可以运行了。

四. 测试结果

在input_testpicture插件中带有一幅默认图片,即使你手上没有摄像头,也可以使用该插件测试MJPG-Streamer的功能。在开发板的终端输入如下命令:

./mjpg_streamer -i "input_testpicture.so"

如果使用USB摄像头,需要使用input_uvc.so插件,在开发板的终端输入命令,结果如下图所示:

./mjpg_streamer -i "input_uvc.so -r 800x600" -o "output_http.so"

想要了解有关飞凌嵌入式OKA40i-C开发板的更多详情,欢迎大家点击下图进入飞凌嵌入式官网


扩展阅读:《发烧友实测 | 用OKA40i-C开发板玩转FFmpeg》



相关产品 >

  • FETA40i-C核心板

    Allwinner A40i是全志开发的一款工业级处理器,A40i作为全国产工业级芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架构,工作温度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飞凌嵌入式深度研究全志A40i芯片参数、原理图、datasheet规格书推出了以FETA40i核心板为主的一系列全国产工业级嵌入式计算机板卡,并提供了用于评估的A40i工控板、 A40i开发板。 了解详情
    FETA40i-C核心板
  • OKA40i-C开发板

    国产工业级,高清输出,丰富接口|OKA40i开发板采用底板+核心板结构,基于全志工控行业平台级处理器四核Cortex-A7 A40i设计,主频1.2GHz,集成MAli400MP2 GPU,内存1GB/2GB DDR3L,存储8GB eMMC。 全志A40i工控行业芯片平台 A40i为国产工控行业芯,全志A40i处理器代表了Allwin在智能工业控制领域的成就。飞凌嵌入式A40i系列OKA40i-C开发板是飞凌推出的一款中国芯,全国产级工业级开发板,适用于适用于基于视觉交互的工业控制产品 了解详情
    OKA40i-C开发板

推荐阅读 换一批 换一批