树莓派之网络摄像头搭建

2017-12-26 Frank 服务器

准备

树莓派(已安装系统)
摄像头(已连接树莓派)

开启摄像头设置

sudo raspi-config
#选择5 Interfacing Options
#选择P1 Camera
#回车后选择Yes
#重启之后运行下面命令看摄像头是否正常工作
vcgencmd get_camera

Camera module 操作指令

raspbian 中系统自带对摄像头的操作指令,分别是raspistill, raspivid & raspistillyuv(这里有官方详细文档),其中 raspivid 是获取视频流的指令。

# 捕捉 5s 视频并输出到 video.h264,视频尺寸为 320x240
raspivid -t 5000 -w 320 -h 240 -o video.h264

# 实时监控并输出到 stdout
raspivid -t 0 -w 320 -h 240 -o -
获取实时监控之后的视频流输出之后,可以通过 ffmpeg 转化视频格式,输出到监听服务器。

安装 Nodejs/ffmpeg

# 1. install nodejs
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
node -v

# 2. install ffmpeg
## libx264 support
sudo git clone git://git.videolan.org/x264
cd x264
sudo ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
sudo make
sudo make install

## ffmpeg
sudo git clone git://git.ffmpeg.org/ffmpeg
cd ffmpeg
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
sudo make # 这一步可能相当相当漫长,在我这里跑了有一个多小时
sudo make install

Webcam

通过 ffmpeg 转换视频格式:

ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 http://127.0.0.1:8082/yourpassword
同时创建 Node server 监听 http://127.0.0.1:8082(参考:[2]):

git clone https://github.com/phoboslab/jsmpeg.git webcam
cd webcam && node stream-server.js yourpassword

# Listening for MPEG Stream on http://127.0.0.1:8082/<secret>/<width>/<height>
# Awaiting WebSocket connections on ws://127.0.0.1:8084/
然后打开stream-example.html就可以看到实时监控画面了,如果是远程调试需要稍作更改:

# edit stream-example.html
var client = new WebSocket( 'ws://RASPI_LOCAL_IP:8084/' );
        var player = new jsmpeg(client, {canvas:canvas});

# @/path/to/webcam
python -m SimpleHTTPServer 8080

# in your browser
http://RASPI_LOCAL_IP:8080

另外利用homebridge可以让手机的Home应用显示视频,详见[3]。

参考
[1] 用树莓派搭建网络摄像头
[2] jsmpeg
[3] homebridge-camera-rpi

标签: 树莓派

发表评论 登录

Top