本帖最后由 翠花儿 于 2021-6-15 09:55 编辑
本文档介绍移植 MJPG库和mjpg-streamer服务器到迅为i.MX6Q开发板上,并将采集到的图像通过网络在PC机上显示出来,交叉编译工具为arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,摄像头为USB免驱摄像头。 1 移植MJPG库因为使用mjpg-streamer要用到MJPG库,所以我们要先把MJPG库移植到开发板上。 MJPG是MJPEG的缩写,MJPEG是一种视频编码格式,但是MJPEG还可以表示文件格式扩展名,常用于闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,能发送高质量图片,生成完全动画视频,即由系列jpg图片组成视频。 MJPG库下载地址:http://www.ijg.org/files/,本文档选择的jpegsrc.v8b.tar.gz这个版本,也可以使用文档同一目录下的jpegsrc.v8b.tar.gz压缩包,然后在Ubuntu创建文件夹mjpg,输入以下命令: mkdir mjpg 将下载好的jpegsrc.v8b.tar.gz压缩包放到mjpg文件夹下,然后输入以下命令解压: tar -vxf jpegsrc.v8b.tar.gz 解压完后如下图所示: 然后在此目录下创建文件夹_jpeg_install用来存放编译生成文件,输入以下命令: mkdir _jpeg_install 进入jpeg-8b文件夹,执行以下命令配置编译选项: ./configure --prefix=/home/topeet/iMX6Q/mjpg/_jpeg_install --host=arm-none-linux-gnueabi 参数说明: --prefix=/home/topeet/iMX6Q/mjpg/_jpeg_install :为上步创建的文件夹路径,根据实际填写。 --host=arm-none-linux-gnueabi:为交叉编译工具的名字。 完成后如下图: 执行make编译,完成后如下图: 执行make install,完成后如下图: 进入_jpeg_install文件夹查看,有以下所示文件即为成功: 将_jpeg_install的/lib/下的库文件通过ssh拷贝到开发板的/lib/目录下(本教程提供的QT5.7系统带ssh功能),拷贝到开发板如下图所示: 2 移植mjpg-streamer服务器mjpg-streamer是一个命令行应用程序,可通过网络将JPEG文件从网络摄像头流传输到各种类型的查看器,例如浏览器,mplayer等其他能够接收MJPG流的软件。 在mjpg文件夹下输入以下命令下载文件(本文档附带的资料包里面也有下载好的压缩包),目录下多出以下文件如下图所示: svn checkout https://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml13208\wps10.jpg 进入mjpg/mjpg-streamer-code/mjpg-streamer/文件夹下,执行命令make clean 修改编译选项,如下图所示,输入命令“grep “CFLAGS” * -nR”,搜索“CFLAGS”: 根据搜索出来的信息,进入mjpg/mjpg-streamer-code/mjpg-streamer/plugins文件夹,修改/plugins/input_uvc/Makefile,第15行添加 CFLAGS += -I /home/topeet/iMX6Q/mjpg/_jpeg_install/include/ 第25行改为: LFLAGS += -L /home/topeet/iMX6Q/mjpg/_jpeg_install/lib/ -ljpeg 完成后如下图: 回到mjpg-streamer目录下,执行 make CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc编译,如下图所示: 在目录下会生成.so库文件和mjpg_streamer, 将.so文件通过ssh拷贝到开发板的/lib/目录下,将mjpg_streamer文件夹通过ssh拷贝到开发板的/bin/目录下,将www通过ssh拷贝到/opt/目录下,准备工作完成,接下来进行测试。 3 测试测试过程中要保证开发板网络畅通,作者连接了有线网,并且能够ping通Ubuntu,我们将usb免驱摄像头插入开发板usb口,插入后,串口打印以下信息,然后输入lsusb命令,发现摄像头已经被识别到。 根据start.sh文件,输入以下命令测试,: mjpg_streamer -i "input_uvc.so -d /dev/video2 -r 320x240 -f 30 -yuv" -o "output_http.so -w /opt/www" 下方会显示端口号: 然后在浏览器输入服务器ip和端口号,ip为开发板ip,端口号默认为8080, http://192.168.1.230:8080/ 如下图所示,能看到图像说明移植成功。
|