用到的工具材料:
- 树莓派3B+
- 网线
- 电脑
- CSI摄像头
- USB摄像头
实现的功能有:
①树莓派通过网线将CSI摄像头与USB摄像头的实时画面推流至上位机电脑中的显示
②实测双摄延时低至200ms以下
我的另一篇博文中介绍了使用树莓派H.264硬件编解码推流CSI摄像头,所以本文仅介绍如何用 MJPG-Streamer推流USB摄像头实时画面。所以需要同时推流双摄时,可选择CSI+USB Camera或者双USB Camera。
图1 树莓派接线整体图 |
图2 树莓派接线整体图 |
总体流程
1.树莓派硬件连接与软件及驱动安装
2.上位机PC端的接收视频流
3.延迟效果测试
1.硬件连接与软件及驱动配置
1)检测是否存在USB摄像头设备
输入以下指令:
1 | pi@raspberrypi:~ $ lsusb |
- 未插入USB摄像头
1 |
|
- 插入USB摄像头
1 | pi@raspberrypi:~ $ lsusb |
1 | pi@raspberrypi:~ $ v4l2-ctl --list-formats |
1 | pi@raspberrypi:~ $ v4l2-ctl --list-formats |
图1 还未插入USB摄像头 |
图2 插入USB摄像头 |
2)安装 MJPG-Streamer from github
按照以下命令安装MJPG-Streamer及其相关配置 每一行为一个命令
1 | sudo apt-get install cmake libjpeg8-dev |
流程如下
3)启动MJPG-Streamer
启动如下指令:
TCP端口8085被指定为输出端口,以确保没有对其他任何东西的干扰。
1 | /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 10 -r 1280x720" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8085 -w /usr/local/share/mjpg-streamer/www" |

如上图所示,推流已经完成,分辨率为720P(1280X720),端口号为8085,到此树莓派的任务已经完成
1 | pi@raspberrypi:~ $ /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 10 -r 1280x720" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8085 -w /usr/local/share/mjpg-streamer/www" |
4)开启指定/多个摄像头
- USB设备存在两个摄像头

- 如果你有多个摄像头,也可以开启多个摄像头
- -d /dev/video1 参数标明需要开启的摄像头
1 | /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -d /dev/video1 -n -f 10 -r 1280x720" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8085 -w /usr/local/share/mjpg-streamer/www" |
2.上位机PC端的接收视频流
采用web网页接收视频流
打开浏览器输入:
1 | http://树莓派ip地址:开启的端口号 |
1 | // A case in point 例如: |
输入 http://192.168.2.150:8085 打开后如下图:为MJPG Streamer 首页
- 查看视频点击Stream

看到网页中有树莓派USB摄像头拍摄的画面,证明视频推流成功。
3.双摄延迟效果测试
我们打开一个在线秒表,让其开始计时,而后我们用树莓派CSI摄像头及USB摄像头去拍摄电脑屏幕,然后截屏,计算拍摄的时间与秒表实际时间的差值,可以粗略测得延时的结果

“如上图所示” 在线秒表为1.18.697
USB摄像头(Web MJPG-Streamer)推流视频中的在线秒表为1.18.567
CSI摄像头(MPlayer 视频播放器)推流视频中的在线秒表为1.18.525
其差值△t1=0.130s=130ms △t1=0.172s=172ms
之后我通过多次测试多种组合得到如下图数据(仅做参考):

总结:
1 | 分辨率都为 720P 延迟大致为100-200ms之间[带光纤延迟增加并不明显] |
图1 树莓派接线整体图
图2 树莓派接线整体图
图1 还未插入USB摄像头
图2 插入USB摄像头