firefly-rk3288 视频服务器MJPG_Streamer移植
本帖最后由 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.kogspca_zc3xx.ko拷到开发板
root@firefly:/home/firefly/Desktop/gspca# ls
gspca_main.kogspca_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
包含:
docmjpg-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.sowww
input_testpicture.sooutput_file.sooutput_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的主要程序流程图
http://developer.t-firefly.com/forum.php?mod=image&aid=981&size=300x300&key=4efd47a6494bfbb6&nocache=yes&type=fixnone
http://developer.t-firefly.com/forum.php?mod=image&aid=982&size=300x300&key=cf6883fb4d9e0526&nocache=yes&type=fixnone
http://developer.t-firefly.com/forum.php?mod=image&aid=980&size=300x300&key=549e5d1f49551017&nocache=yes&type=fixnone
下面效果图:
http://developer.t-firefly.com/forum.php?mod=image&aid=977&size=300x300&key=0f8a3ff7903e113e&nocache=yes&type=fixnone
http://developer.t-firefly.com/forum.php?mod=image&aid=978&size=300x300&key=ce43aef3c3d4fed6&nocache=yes&type=fixnone
顶一个 不错!可以参考一下!
页:
[1]