mjpg-stream
之前一篇记录了树莓派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