本篇试用陈述由发烧友
zealsoft供给,感激
zealsoft的撑持。
“感激飞凌嵌进式公司供给了本次OKA40i-C开发板的评测时机。前次我们介绍了FFmpeg的测试情状(《发烧友实测 | 用OKA40i-C开发板玩转FFmpeg》),今天停止长途监控的测试。”
一. 开源软件MJPG-Streamer
前次介绍了利用FFmpeg将USB摄像头的视频转换为视频流发送给PC机,今天来介绍另一个处理计划MJPG-Streamer。MJPG-Streamer的原理是将USB摄像头摘集的图像以JPEG格局发送出往,然后继续更新图片构成一个视频流。
它的优势有两个:
一个是和阅读器的兼容性更好,能够轻松地在阅读器中展现,而无需担忧阅读器能否撑持Flash或流媒体协议;二是摘用JPEG没有前后帧的联系关系,所以假设呈现丢包只影响当前画面,而不会像H.264那样可能持续一段时间的马赛克图像。
当然也出缺点:
它的缺点是JPEG流的压缩效率比力低,比H.264浪费带宽。
二. Libjpeg库的编译
MJPG-Streamer要用到libjpeg,所以起首需要编译libjpeg。起首拜候号令停止设置装备摆设:
./configure --host=ARM-linux-gnueabihf --prefix=/mnt/boaled/jpeg-9e/_install/
此中的host是指明所利用的编译器,prefix是指定编译后文件安拆的目次。
然后施行下面的号令:
1 make
2 make install
号令施行完毕,就会在prefix所指定的目次下生成4个目次,此中include目次包罗所需要的头文件,而lib目次下包罗库文件。那些在后面会用到。编译后需要把libjpeg.so.9.5.0拷贝到开发板的 /usr/lib 目次下,并成立一个指向该文件的软毗连libjpeg.so.9。
别的,开发板本来带有libjpeg.so.8.0.2那个版本。假设不期看安拆更新版本,也能够在/下载和板子对应的汗青版本。
展开全文
三. MJPG-Streamer的编译
MJPG-Streamer有两个次要版本(定见在PC翻开链接):
/
那个是原始版本,不外原做者已经舍弃更新了。
/
那个是后续更新的版本。
要在飞凌嵌进式OKA40i-C开发板上利用,只能利用sourceforge阿谁版本。因为github的版本固然更新,但是它对内核的版本有要求,至少3.18以上。
OKA40i-C开发板供给的内核版本是3.10,无法准确处置新版本的某些V4L2动静。别的,github版本摘用CMake停止编译,后面所介绍的编译办法也不适用。
进进下方地址:
/
点右上的“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文件都拷贝到开发板上并准确设置好权限就能够运行了。
四. 测试成果
在input_testpicture插件中带有一幅默认图片,即便你手上没有摄像头,也能够利用该插件测试MJPG-Streamer的功用。
在开发板的末端输进如下号令:
./mjpg_streamer -i "input_testpicture.so"
假设利用USB摄像头,需要利用input_uvc.so插件,在开发板的末端输进号令,成果如下图所示:
./mjpg_streamer -i "input_uvc.so -r 800x600" -o "output_"