• CubieTruck上安装mjpg_streamer


    最近手头项目需要用到一个上位机,需要在上位机上实现远程访问及视频监控。其中视频监控采用了网上资料较多的mjpg_streamer进行视频处理。在使用中遇到许多坑也一并记录下来。

    首先安装依赖环境和检测环境,装全点没坏处:)  

    sudo apt-get install subversion 
    sudo apt-get install libv4l-dev
    sudo apt-get install libjpeg8-dev
    sudo apt-get install imagemagick
    sudo apt-get install fswebcam
    sudo apt-get install v4l-utils
    sudo apt-get install build-essential make

    安装完成后,开始下载代码并进行编译

    cd ~/
    mkdir code
    cd code
    svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/
    cd mjpg-streamer/mjpg-streamer
    make USE_LIBV4L2=true clean all
    sudo make DESTDIR=/usr install
    

    执行完sudo make DESTDIR=/usr install 后信息如下:

    mjpg-streamer# sudo make DESTDIR=/usr install
    install --mode=755 mjpg_streamer /usr/bin
    install --mode=644 input_uvc.so output_file.so output_udp.so output_http.so input_testpicture.so input_file.so /usr/lib/
    install --mode=755 -d /usr/www
    install --mode=644 -D www/* /usr/www   

    如遇编译失败再装下面的依赖包,有的人说要下依赖包重新编译,具体是否好用未测试,发现有这个方法就不用做那么多事了

    sudo apt-get install libjpeg-dev
    

     现在就可以进行测试了:

    • 首先需要检测摄像头是否已加载
    # ls /dev/video*
    /dev/video0
    
    • 确认摄像头支持的类型:
    # fswebcam -v
    

     

    • 运行命令
    mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 320x240  -f 15" -o "/usr/lib/output_http.so  -w /usr/www"
    mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 640x480  -f 15" -o "/usr/lib/output_http.so  -w /usr/www"
    mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 640x480  -f 25" -o "/usr/lib/output_http.so  -w /usr/www"
    mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 1024x768 -f 15" -o "/usr/lib/output_http.so  -w /usr/www"
    mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 1024x768 -f 30" -o "/usr/lib/output_http.so  -w /usr/www"
    

    结果

    MJPG Streamer Version: svn rev: 3:172
     i: Using V4L2 device.: /dev/video0
     i: Desired Resolution: 640 x 480
     i: Frames Per Second.: 15
     i: Format............: MJPEG
    。。。。。。
     o: www-folder-path...: /usr/www/
     o: HTTP TCP port.....: 8080
     o: username:password.: disabled
     o: commands..........: enabled
    

    访问(注意用FireFox或chrome,其它浏览器支持不是很好),看到下面的就对了:

    http://ip:8080 (这个端口取决于你的设置 -p 如果未设置默认为8080)

      

    参数:

    -i : uses input_uvc.so (the USB Webcam) as input
    -o : output_http.so for the output (sending the images to a Web server
    -w : the directory, which has the HTML, CSS, and JS files:   /usr/local/www
    You can cancel the stream by pressing Ctrl+C.  If you want to experiment with some other options, some are listed below:
    
    -b : runs in the background
    -p : set a default port instead of the default 8080
    -c : prompts for username:password
    -yYUYV : enables YUYV format and disables MJPEG mode
    -f : framerate (in seconds)
    

     遇到的问题:

    1、CPU居高不下:

    两种原因:(1)参数内加入了 -y 开启了 yuv模式,我测试结果是一个CPU跑到了90% ,可以看到程序启动后的信息:

           (2)摄像头不支持mjpeg,这样的话CPU也会居高不下。采用上面的fswebcam -v进行检测,如果不支持mjpeg的话就不要用了

           i: Format............: MJPEG 如果不是这个就是有可能你带Y参数或是摄像头不支持
    测试:使用支持MJPEG摄像头开启 -y参数:

    关闭-y参数:

    
    

    2、找不到网页

    路径问题,在参数 -w后面跟的要么应该指向你建立的code文件夹下的www目录或是编译过程结果中的目录,我的结果显示的是/var/www

    3、其它机器访问不了默认端口:

    检测系统默认安装的ufw是否已启动,启动的话先关了再试

    基本上就这很多了:)

    转载请注明:http://www.cnblogs.com/forrestsun/p/4995083.html

  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/forrestsun/p/4995083.html
Copyright © 2020-2023  润新知