[OK210开发板体验]进阶篇(1)视频图像采集之MJPG-streamer编译(Ubuntu系统)

本篇主要内容分为:
嵌入式视频图像开源库
mjpg-streamer简介
mjpg-streamer在Ubuntu下编译

板卡选择飞凌嵌入式S5PV210 OK210开发板

一、嵌入式视频图像开源库
    在嵌入式系统中,常用的视频图像处理开源系统有:luvcview、cheese、motion、mjpg-streamer或者ffmpeg,其中:
  • luvcview: 基于V4L2、SDL的程序,支持拍照录像,参数调节,代码精简实用,适合学习V4L2编程
  • cheese:基于V4L2、GTK的程序,支持拍照录像,特殊视频效果
  • motion:移动侦测拍照程序
  • mjpg-streamer:网络摄像机程序
二、mjpg-streamer简介
MJPG-streamer,是用于从webcam摄像头采集图像,把他们以流的形式通过基于ip的网络传输到浏览器如Firehox,Cambozola,VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备。它可以利用某些webcams的硬件压缩功能来降低服务器CPU的开销。它为嵌入式设备和一些常规服务器提供了一个轻量且更少CPU消耗的方案,因为它无需为视频帧压缩浪费大量的计算效率。
值得一提地是,mjpg-sreamer源码的下载,由于其一直没有更新,现存网上的编译教程都是“老式”的,不适合现在的编译环境(linux-3.x内核),故多数人是失败的。网上的下载地址主要有两个:地址1,地址2,经测试,都不能编译成功,具体正确的地址,见下面。
一般下载后,mjpg-streamer下包含如下目录:其中mjpg-streamer提供了各个输入输出设备组件,uvc-streamer提供了uvc-streamer的可执行目录,mjpeg-client分别有linux和Window的客户端测试程序。
 
mjpg-streamer的工作流程,大致如下所示:

 
三、mjpg-streamer在Ubuntu下编译
1 安装前准备
1)sudo apt-get install libsdl1.2-dev subversion
2)sudo apt-get install libjpeg62-dev否则出现如下错误

3)sudo apt-get install imagemagick否则出现如下错误

 
2 下载mjpeg-streamer
git clone https://github.com/shrkey/mjpg-streamer
cd mjpg-streamer/mjpg-streamer
 
3 编译安装
make
sudo make install

ps:重新编译前,需要执行
make clean(相对make)
make uninstall(相对make install)
4 测试
运行./start.sh
(1)网页测试

(2)网页视频流测试

(3)Window客户端测试
 
(4)VLN播放器测试