移植mjpg-streamer 到A10

host: ubuntu12.04 -64

平台allwiner-A10

1,安装gcc-arm-linux-gnueabihf 


apt-get install gcc-arm-linux-gnueabihf ; pc 交差编译 arm 系统。

### arm-linux-gnueabihf-gcc -v


mjpg-stream的移植需要jpeg的库,所以我们先移植jpeg的库

(1)jpeg库的移植

        1)jpeg源码包通过下面这个网址下载
                http://www.ijg.org/files/jpegsrc.v8b.tar.gz
                2)
解压源码包
                tar xvf jpegsrc.v8b.tar.gz
                3)
配置源码
                cd jpeg-8b
                ./configure --prefix=/home/dou/jpeg --host=arm-linux-gnueabihf
                4)
编译
                make
                5)
安装
                make install

##复制/home/dou/jpeg    到a10,,/home/dou
                6)
拷贝libjpeg.s0.8库到开发板文件系统lib下中
 2)mjpg-stream的移植

        1)mjpg-stream源码包通过下面这个网址下载
                http://sourceforge.net/projects/mjpg-streamer/ 

                2)cp  mjpg-streamer-r63.tar.gz   到A10板子上并解压源码
                tar xvf mjpg-streamer-r63.tar.gz
                3)
修改源码
                cd mjpg-streamer-r63
              

        修改plugins/input_uvc/Makfile
                
修改
                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
                

                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/dou/jpeg/include
                
修改
                $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                

                $(CC) $(CFLAGS) -ljpeg -L/home/dou/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

                4)
编译
                make
                5)
测试
                在开发板上mkdir /mjpeg
                拷贝*.so到开发板的mjpeg目录下,mjpg_streamer到开发板的bin下并改变权限

                
                mjpg_streamer -i "/mjpeg/input_uvc.so -d /dev/video0" -o "/mjpeg/output_http.so"

10,出现问题:

 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 5
 i: Format............: MJPEG
Unable to set format: 1196444237 res: 640x480
 Init v4L2 failed !! exit fatal 
 i: init_VideoIn failed

修改:vi cd mjpg-streamer/plugins/input_uvc/input_uvc.c

int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i;
format = V4L2_PIX_FMT_YUYV

11,修改###vi plugins/input_uvc/v4l2uvc.c

//
//but I die this!///
struct v4l2_input inp;
inp.index = 0;


if (inp.type == V4L2_INPUT_TYPE_CAMERA)
printf("enuminput type is V4L2_INPUT_TYPE_CAMERA!\n");

if (-1 == ioctl (vd->fd, VIDIOC_S_INPUT, &inp))//

/
/


                 用火狐浏览器打开一个网页输入下面地址就能够看到一个视频(板zi的IP为192.168.1.4)
                http://192.168.1.4:8222

                

            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值