之前一篇记录了树莓派3的上手,这次呢主要是测试树莓派官方摄像头。经过简单的测试,使用raspivid得到的视频串流会有3-5秒的延时,偶然在github上看到mjpg-streamer仓库,试用以后效果出众,延时能大幅度的降低。mjpg-streamer采用的是JPEG图片流的方式输出,无需为视频帧压缩浪费大量的计算效率,因此也会降低cpu的负荷。


准备工作

  • 首先我们先安装树莓派的摄像头,将接口处黑色的卡条轻轻提上来,把摄像头排线插进去,之后将卡条摁下去固定。接着我们SSH登录树莓派,输入raspi-config,选择enable camera,然后重启。
  • 接着我们需要在树莓派上安装辅助工具
    sudo apt-get install cmake libjpeg8-dev  
    

第一步

  • cd到合适目录,然后克隆仓库
    git clone https://github.com/jacksonliam/mjpg-streamer.git  
    

第二步

  • 修改默认conf配置文件(注意修改路径)
    nano /root/mjpg-streamer-master/mjpg-streamer-experimental/plugins/input_raspicam/input_raspicam.c  
    
  • ctrl+w(搜索),输入fps,回车,按下图修改fps,width,height保存退出(这里其实fps只要改成16即可,此时已经很流畅,同时一秒传输数据可从1M降至500k)

第三步

  • 执行make脚本(注意修改路径)
    cd mjpg-streamer-experimental
    make
    sudo make install  
    

第四步

  • 启动mjpg-stream
    export LD_LIBRARY_PATH=.
    ./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"  
    


使用

在浏览器地址栏输入 http://树莓派ip:8080 就会看见下图

点击左侧steam ,就可以实时串流播放.


补充

中间呢还遇到了一些问题,记录下来。

  • 当忘记关闭时,且ssh已断,那么当你再次启动脚本是会报错.Bind:Address already in use,如下图.
    这个时候我们运行ps -aux,查看占用端口的进程.然后 kill 对应的pid
  • 或者我们可以使用screen -S camera然后在里面执行任务,这时即便关掉ssh也会继续。

最后附上github地址:mjpg-streamer