Firefly开源社区

firefly-rk3288 视频服务器MJPG_Streamer移植

974

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
974
QQ
发表于 2015-7-6 10:53:16     
本帖最后由 madman 于 2015-7-7 16:04 编辑

        MJPG_Streamer是一个开源的轻量级的视频传输服务器应用项目。它可以实现从单一组件中采集或者获取到图像信息并将这些信息传送到多个输出组件当中的应用。该应用可以将输入的IPEG格式的图像信息进行视频流化处理,并通过TCP/IP网络协议传输到浏览器。     
      这里我使用的是中星微zc301的摄像头,和firefly-rk3288的板子。板子上烧写的
Firefly-RK3288_Ubuntu14.04_201501271612.7z固件
      实现了从摄像头获取视频,在局域网内网页端查看视频的功能:
      下面是相关的步骤:

首先编译加载zc301p摄像头驱动:
在pad版的sdk kernel中
Make menuconfig
选中
Drivers > Multimedia support > Media USB Adapters > GSPCA based webcams >
<M>   ZC3XX USB Camera Driver

然后编译
make modules
mkdir modules_install
make INSTALL_MOD_PATH=./modules_install modules_install

将kernel/modules_install/lib/modules/3.10.0/kernel/drivers/media/usb/gspca目录下
gspca_main.ko  gspca_zc3xx.ko拷到开发板

root@firefly:/home/firefly/Desktop/gspca# ls
gspca_main.ko  gspca_zc3xx.ko
root@firefly:/home/firefly/Desktop/gspca# insmod gspca_main.ko
root@firefly:/home/firefly/Desktop/gspca# insmod gspca_zc3xx.ko

root@firefly:~# lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam
root@firefly:/home/firefly/Desktop/gspca# ls /dev/video0
/dev/video0
摄像头加载成功(注意要先加载main.ko)

移植mjpg-sreamer需要先移植jpeg库,移植方法如下:

wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz
tar -zxvf jpegsrc.v8b.tar.gz
cd jpeg-8b
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make
make install

拷贝libjpeg.s0.8库到开发板文件系统lib下中
# cp /usr/local/jpeg/lib/libjpeg.so.8 /lib/

下载    mjpg-streamer.tar.gz
   http://mjpg-streamer.svn.sourcef ... mer.tar.gz?view=tar
包含:
doc  mjpg-streamer udp_client
mjpeg-client mjpg-streamer-experimental uvc-streamer
拷贝到3288开发板上
进入mjpg-streamer/mjpg-streamer/ 修改plugins/input_uvc/Makfile
                修改
                CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
                为
                CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/usr/local/jpeg/include/
                修改
                $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                为
                $(CC) $(CFLAGS) -ljpeg -L/usr/local/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

编译
                Make

Mkdir mjpg
复制mjpg-streamer/mjpg-streamer的 *.so文件 到mjpg
如:
root@firefly:/home/firefly/Desktop/mjpg# ls
input_file.so         input_uvc.so    output_http.so  www
input_testpicture.so  output_file.so  output_udp.so

启动
mjpg_streamer -i "/home/firefly/Desktop/mjpg/input_uvc.so -d /dev/video0" -o "/home/firefly/Desktop/mjpg/output_http.so"

查看网址(同一局域网内)

查看视频:http://168.168.100.51:8080/?action=stream
查看图像:http://168.168.100.51:8080/?action=snapshot
其中168.168.100.51 是ip地址 8080是端口号

mjpg的主要程序流程图






下面效果图:





20150706104604.png
QQ截图20150706105034.png
QQ截图20150706105012.png
20150706104604.png
20150706103934.png
20150706103913.png
回复

使用道具 举报

265

积分

5

威望

6

贡献

实习版主

Rank: 7Rank: 7Rank: 7

积分
265

活跃会员热心会员突出贡献

发表于 2015-7-6 10:54:20     
顶一个
回复

使用道具 举报

10

积分

0

威望

0

贡献

游客

积分
10
发表于 2015-7-6 22:51:48     
不错!可以参考一下!
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表