JPEG 是全彩色和灰度图像标准化的压缩方法。
libjpeg是一个完全用C语言编写的库。libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。
libjpeg包含以下工具程序:
cjpeg and djpeg,用于JPEG和一些其他流行图形文件格式之间的转换。
rdjpgcom and wrjpgcom,用于在JFIF文件中插入和提取文字信息。
jpegtran – 一个用于在不同的JPEG格式之间进行无损转换的工具。
官网:http://www.ijg.org/
MJPG-streamer 为免费开源的视屏流传输软件。
MJPG-streamer 从Linux-UVC兼容的摄像头、文件系统、或其他输入插件获取JPEG图像,转换成流式的M-JPEG,通过HTTP传输到浏览器,VLC和其他软件。
下载地址:http://sourceforge.net/projects/mjpg-streamer/
MJPG-streamer 需要JPEG库的支持。
JPEG库移植
1.下载源码包、解压
tar zxvf jpegsrc.v6b.tar.gz
2.配置
./configure --prefix /opt/arm-jpeg --host=arm-linux --enable-shared
3.编译
make
4.安装
make install
mjpg-streamer库移植
1.下载源码包、解压
tar xvf mjpg-streamer-r63.tar.gz
2.修改Makefile并编译
find ./ -name "Makefile" -exec sed -i "s/CC = gcc/CC = arm-linux-gcc/g" {} \;
make
编译完后,在当前目录会得到如下文件:
多个.so库文件
mjpg_streamer
start.sh
3.复制文件到开发板
sudo cp *.so /nfsroot/opt/mjpg-streamer/
sudo cp mjpg-streamer /nfsroot/opt/mjpg-streamer/
sudo cp start.sh /nfsroot/opt/mjpg-streamer/
sudo cp -r www/ /nfsroot/opt/mjpg-streamer/
sudo cp -r /opt/jpeg-arm/lib/* /nfsroot/opt/mjpg-streamer/
4.测试
修改start.sh,注释掉28行,打开最后一行注释:
28 #./mjpg_streamer -o "output_http.so -w ./www"
./mjpg_streamer -i "./input_testpicture.so -r 320x240 -d 500" -o "./output_http.so -w www"
在开发板运行:
./start.sh
此时,开发板为服务器并开始运行
在PC浏览器地址栏输入开发板IP:8080
可看到选项卡中的动态图像
如果有摄像头
驱动配置支持
插好摄像头之后出现video3设备节点
修改启动脚本start.sh
./mjpg_streamer -i "./input_uvc.so -r 320x240 -d /d ev/video3 -f 30" -o "./output_http.so -w www -p 80"
即可显示视频
问题:
1.致命错误: linux/videodev.h:没有那个文件或目录
解决:从旧的kernel中找到该头文件并复制到系统目录下
sudo cp videodev.h /usr/include/linux/