1. 移植mjpg-streamer

a.1 移植libjpeg

         tar zxf libjpeg-turbo-1.2.1.tar.gz
cd libjpeg-turbo-1.2.1
./configure --host=arm-linux --prefix=/work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp
make
make install
cd tmp/lib
cp *so* /work/nfs_root/fs_mini_mdev_new/lib/ -d

注意:文件体统   
        视频使用的是fs_mini_mdev_new_auto_wifi_ap.tar.bz2,因为自己制作过文件系统,暂时使用的是自己的。

a.2 移植mjpg-streamer

tar zxf mjpg-streamer-r63.tar.gz
            cd mjpg-streamer-r63
           
            a.2.1修改所有的Makefile
            vim Makefile            //顶层
                 将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc

cd plugins/input_gspcav1
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
           
            cd plugins/input_testpicture
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
                    
            cd /plugins/input_uv
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
            cd plugins/output_autofocus
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
            cd plugins/output_file
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
            cd plugins/output_http
            vim Makefile
                将:
                     CC = gcc
                 改为:
                     CC = arm-linux-gcc
             也就是将plugins 目录下面的所有的子目录的Makefile 全部进行修改

a.2.2 plugins/input_uvc 里面  修改

cd plugins/input_uvc
                vim Makefile
                将:
                    CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
                修改为:
                    CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/include
                                        添加的这个是编译libjpeg 库生成的头文件。
                将:
                    input_uvc.so: $(OTHER_HEADERS) input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                                    $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo
                                    jpeg_utils.lo dynctrl.lo
                修改为:
                input_uvc.so: $(OTHER_HEADERS) input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                    $(CC) $(CFLAGS) -ljpeg -L /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/lib
                    -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                        //添加了-L /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/lib  指明库文件的位置

回到顶层目录:make                        生成mjpg_streamer  这个应用程序和很多的.so 文件
               
                cp mjpg_streamer /work/nfs_root/fs_mini_mdev_new/bin/
                cp *so* /work/nfs_root/fs_mini_mdev_new/lib/ -d

a.3  使用

内核:
                    1.添加UVC
                    cp config_ok  .config
                    make menuconfig
                        <*> Multimedia support  ---> 
                             <*>   Video For Linux
                             [*]   Video capture adapters (NEW)  ---> 
                             [*]   V4L USB devices (NEW)  --->
                                     <*>   USB Video Class (UVC) 
                    执行: make uImage
                // 因为使用的是百问网的制作的USB 摄像头,所以,必须按照第二课1.1.9 视频修改UVC 驱动,修改完在make uImage
                        将修改的好的uvc_video.c 和uvc_driver.c 拷贝到/linux-3.4.2/drivers/media/video/uvc 替换掉
                // 因为百问网的摄像头的特殊性才需要修改,否则是不用修改的
               
                // 配置内核,使其支持 USB 总线驱动,如下
                    Device Drivers --->
                        [*] USB support --->
                        {*} Support for Host-side USB
                        [*] USB device filesystem (DEPRECATED)
                        [*] USB device class-devices (DEPRECATED)
                        <*> OHCI HCD support
                        <*> USB Mass Storage support
                       
                    [*] HID Devices --->
                        {*} Generic HID support
                        [*] /dev/hidraw raw HID device support
                       
                    SCSI device support --->
                    <*> SCSI device support
                    [*] legacy /proc/scsi/ support
                    <*> SCSI disk support
                    <*> SCSI tape support

2.支持AR2917WIFI的:

make menuconfig
                  Symbol: ATH9K_HTC [=n]                                                                      
                  Type  : tristate                                                                           
                  Prompt: Atheros HTC based wireless cards support                                           
                    Defined at drivers/net/wireless/ath/ath9k/Kconfig:100                                    
                    Depends on: NETDEVICES [=y] && WLAN [=y] && ATH_COMMON [=n] && USB [=y] && MAC80211 [=m] 
                    Location:                                                                                
                      -> Device Drivers                                                                      
                        -> Network device support (NETDEVICES [=y])                                          
                          -> Wireless LAN (WLAN [=y])                                                        
                            -> Atheros Wireless Cards (ATH_COMMON [=n])
                    根据上面的依赖,还需要对ATH_COMMON 和 MAC80211 进行设置
                -> Networking support (NET [=y])                                                         
                -> Wireless (WIRELESS [=y]) 
                              <*>cfg80211 - wireless configuration API
                              <*>Generic IEEE 802.11 Networking Stack (mac80211)
                         
               -> Device Drivers                                                                        
             -> Network device support (NETDEVICES [=y])                                            
               -> Wireless LAN (WLAN [=y])                                                          
                 -> Atheros Wireless Cards (ATH_COMMON [=y]) 
                                  <*>   Atheros HTC based wireless cards support
            3.添加WIFI 固件
                mkdir  /work/nfs_root/fs_mini_mdev_new/lib/firmware
                cp htc_9271.fw /work/nfs_root/fs_mini_mdev_new/lib/firmware
       
        文件系统:
                    使用的是制作好的,包含众多WIFI应用程序的fs_mini_mdev_new_auto_wifi_ap.tar.bz2
        运行:   
                二合一摄像头
                mjpg_streamer -i "input_uvc.so -f 10 -r 320*240" -o "output_http.so -w www"
               
                一般摄像头
                mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
               
                二合一摄像头
                mjpg_streamer -i "input_uvc.so -f 10 -r 640*480" -o "output_http.so -w www"
               
                一般摄像头
                mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
       
       
        在火狐浏览器上面执行:   
            http://202.193.53.83:8080/?action=stream
                        // 谷歌、360急速浏览器都是失败的,
                                    
                        
        mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
            -i : 指定输入的插件。可见指定了input_uvc.so 这个插件,作为输入的驱动。因为我们使用的是UVC摄像头。                   
            -o :指定输出的插件。    output_http.so这个插件。
            ---------------------------------------------------------------
             Help for input plugin..: UVC webcam grabber
             ---------------------------------------------------------------
             The following parameters can be passed to this plugin:
            
             [-d | --device ].......: video device to open (your camera)
             [-r | --resolution ]...: the resolution of the video device,
                                      can be one of the following strings:
                                      QSIF QCIF CGA QVGA CIF VGA
                                      SVGA XGA SXGA
                                      or a custom value like the following
                                      example: 640x480
             [-f | --fps ]..........: frames per second
             [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
             [-q | --quality ]......: JPEG compression quality in percent
                                      (activates YUYV format, disables MJPEG)
             [-m | --minimum_size ].: drop frames smaller then this limit, useful
                                      if the webcam produces small-sized garbage frames
                                      may happen under low light conditions
             [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
             [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                                      it up to the driver using the value "auto"

Mjpg_Streamer 的移植的更多相关文章

  1. 基于mjpg_streamer视频服务器移植【转】

    本文转载自:http://blog.csdn.net/wavemcu/article/details/7539560 MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名 ...

  2. zedboard--嵌入式网络摄像机(mjpg-streamer)的移植和搭建(二十二)

    在zedboard上移植和搭建嵌入式网络摄像机mjpg-streamer.具体步骤如下: 来自:http://write.blog.csdn.net/postedit/13741451 1.安装lib ...

  3. mjpg-streamer移植

    本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载.但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途. 作者:yuweix ...

  4. 【OK210试用体验】进阶篇(2)视频图像采集之MJPG-streamer编译(arm移植)

    上一篇([OK210试用体验]进阶篇(1)视频图像采集之MJPG-streamer编译(Ubuntu系统下))进行了MJPG-streamer在Ubuntu下的编译及测试,这一篇针对OK210,进行a ...

  5. arm开发板6410/2440上mjpg-streamer网络视频服务器移植

    摄像头移植 一.环境 主机环境 :ubuntu 10.10         目标板 :FS-S5PC100 主机工具链 :gcc-4.4.5         交叉工具链 :arm-unknown-li ...

  6. 基于mjpg-streamer网络视频服务器移植

    MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. MJPEG 全名为 "Motion Joint Photographic Experts Group&q ...

  7. mjpg-streamer视频服务器移植

    相关软件下载地址:http://pan.baidu.com/s/16yo8Y JPEG库的移植 对于内核linux-2.6.35,不能再使用servfox,如果要使用的需要修改大量的代码.在此选用新的 ...

  8. MVVM框架从WPF移植到UWP遇到的问题和解决方法

    MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...

  9. IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)

    首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...

随机推荐

  1. box-sizing重置

    html { /*-webkit-box-sizing: border-box; -moz-box-sizing: border-box;*/ box-sizing: border-box; } *, ...

  2. php中session的生成机制、回收机制和存储机制探究

    1.php中session的生成机制 我们先来分析一下PHP中是怎么生成一个session的.设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态).我们现在有一个疑问 ...

  3. [01] radio ,checkbox 表单文字对齐

    http://www.cnblogs.com/wangsir015/p/5555818.html 这几天在做表单时总会碰到复选框(checkbox)和单选框(radio)与文字不对齐的问题,要不是ch ...

  4. 【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)

    前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不 ...

  5. 洛谷 P1653 == COGS 2043 猴子

    P2107 可爱的猴子 时间限制:1000MS  空间限制:65535KB 问题描述: 树上有n只猴子.它们编号为 1 到n.1 号猴子用它的尾巴勾着树枝.剩下的猴子都被其他的猴子用手抓着.每只猴子的 ...

  6. Educational Codeforces Round 37 A B C D E F

    A. water the garden Code #include <bits/stdc++.h> #define maxn 210 using namespace std; typede ...

  7. Scrapy笔记:持久化,Feed exports的使用

    首先要明确的是,其实所有的FeedExporter都是类,里面封装了一般进行io操作的方法.因此,要怎么输出呢?其实从技术实现来说,在生成item的每一步调用其进行储存都是可以的,只不过为了更加符合s ...

  8. LeetCode OJ-- Insertion Sort List **

    https://oj.leetcode.com/problems/insertion-sort-list/ 链表实现插入排序 首先插入排序是指: a b c d e g m 对b也就是第二个位置选做元 ...

  9. 浅谈前端性能优化(PC版)

    前端的性能优化是一个很宽泛的概念,最终目的都是为了提升用户体验,改善页面性能.面试的时候经常会遇到问谈谈性能优化的手段,这个我分几大部分来概述,具体细节需要自己再针对性的去搜索,只是提供一个索引(太多 ...

  10. 修正MYSQL错误数据的一个存储过程

    -- 添加索引 CREATE INDEX idx_STRUCTURE_ID ON t_resource_info(STRUCTURE_ID); DROP PROCEDURE IF EXISTS `P_ ...