目录
之前做项目需要树莓派和PC进行视频传输,发现两种方法:
方法一:Python+OpenCv实现树莓派数据采集,树莓派搭建服务器,PC机作为客户端实现数据传输,结果发现传输画质太差。
网址:树莓派/PC实现实时摄像头数据共享(Python—OpenCV)_不脱发的程序猿的博客-CSDN博客
方法二:使用Python+树莓派原装摄像头,使用Python代码调用,再搭建服务器,传输视频,效果显著。
网址:树莓派/PC实现实时摄像头数据共享(Python—picamera)_不脱发的程序猿的博客-CSDN博客_picamera
最近发现一种新的数据传输方式,树莓派搭建网络摄像头,不仅速度流畅,效果感人,而且可以多个用户同时访问,爽歪歪~
给小伙伴们展示下PC端和手机端同时访问效果:
接下来给各位讲解下搭建树莓派网络摄像头的流程,主要有两种方式。
第一步:安装motion包
sudo apt-get install motion
第二步:打开 motion daemon 守护进程,让它可以一直在后台运行
-
sudo nano /etc/default/motion
-
#no修改成yes:
-
start_motion_daemon=yes
第三步:修改motion的配置文件
-
sudo vim /etc/motion/motion.conf
-
#deamon off 改成 on
-
deamon on
-
#设置分辨率
-
width 800
-
height 600
-
#关闭 localhost 的限制
-
webcam_localhost off
第四步:运行 motion
sudo motion
安装好USB摄像头,运行后重启树莓派,现在我们的摄像头已经变成了一台网络摄像头,在chrome浏览器下访问 http://[your.domain]:8081 即可看到摄像头当前拍摄的画面,需要注意有时候重启树莓派后网络摄像头可能未启动,所以需要重新运行motion。
需要注意,第一种网络摄像头搭建方式不便于Android手机端的访问,所以这里我并未使用,这里仅做拓展讲解。
PC端使用Python访问非常简单,直接使用OpenCv模块的VideoCapture()方法,输入网络摄像头URL即可。使用伪代码如下:
-
'''
-
VideoCapture()中参数是0,表示打开电脑内置摄像头,
-
参数是1或2打开外部摄像头
-
参数是视频文件路径则打开视频文件
-
参数是URL打开网络摄像头
-
'''
-
cap = cv2.VideoCapture(URL)
第一步:安装所需模块
-
sudo apt-get updatesudo
-
sudo apt-get install subversionsudo
-
sudo apt-get install libjpeg8-devsudo
-
sudo apt-get install imagemagicksudo
-
sudo apt-get install libv4l-devsudo
-
sudo apt-get install cmakesudo
-
sudo apt-get install git
第二步:git一个开源的project:MJPG-streamer
-
sudo git clone github.com/jacksonliam/mjpg-streamer.git
-
cd mjpg-streamer/mjpg-streamer-experimentalsudo
-
make all
-
sudo make install
git过程比较缓慢,大家可以耐心等待一段时间,等待100%后确认完成后再执行下一条命令,启动USB摄像头,指令如下:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
这里有一点需要注意,配置USB摄像头和树莓派专用摄像头指令不一样,这里我配置的是USB摄像头,具体指令分别如下:
-
指令启动普通USB摄像头指令:
-
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
-
启动树莓派专用摄像头RaspiCamera的指令:
-
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"
并且使用树莓派专用摄像头需要开启专用摄像头配置的,输入指令如下:
sudo raspi-config
点击摄像头使能开启即可。
以上就实现了全部的网络摄像头搭建。不过每次我们启动树莓派的时候还是需要手动去执行对应的命令,比较麻烦。那么接下来我们把当前项设置为一个系统自启动项。
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)