分类: LINUX
2013-04-14 15:16:44
原文地址:基于linux的网络视频服务器移植 作者:mmmmpl
开发环境
主 机 Ubuntu 10.04
开 发 板 devkit8500 (arm-cortex a8 dm3730)
交叉编译器 arm-2009q1
1. 下面mjpg-streamer库从,mjpg-streamer的移植需要jpeg的库,jpeg库的移植这里不再细述,网上找找怎么移植就是了。
2. 解压源码
#tar xvf mjpg-streamer-r63.tar.gz
3. 修改顶层Makefile及plugins目录中的各级Nakefile将所有
CC=gcc
--->>>
CC=arm-none-linux-gnueabi-gcc
(1) CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
--->>>
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE
-Wall -shared -fPIC -I/work/prj/root-dev/usr/include
(2) LFLAGS += -lpthread -ldl
--->>>
LFLAGS += -lpthread -ldl -L/work/prj/root-dev/usr/lib
(3) $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
--->>>
$(CC) $(CFLAGS) $(LFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
5. make就是了,生成一堆动态库文件和可执行文件mjpg_streamer,将mjpg_streamer和*.so文件全部cp到开发板目录下,在开发板上运行
./mjpg_streamer -i "/mjpg/input_uvc.so" -o "/mjpg/output_http.so -w /www"
在PC上打开一个网页输入下面地址就能看到摄像头捕获的视频(我的开发板IP为192.168.1.88):
****
注意:在运行mjpg_streamer时可能会提示不能开发某个库input_*.so或output_*.so文件,这时请检查你源码目录下的所有Makefile当中的CC=gcc是否都已经修改成CC=arm-none-linux-gnueabi-gcc,如果没有修改成功,就会生成PC上运行的.so文件,所以在开发板上自然就无法加载了,我移植过程中就是被这个问题苦恼了好久。