
树莓派 - 摄像头推流
树莓派中通过摄像头推送视频流的一些方案。
<封面摄于浙江·新昌的乡村田间,落日残霞进行后期处理而成,有点北极光的感觉。>
安装摄像头
- 将 CSI 摄像头串口插入树莓派对应的凹槽。
- 连接完成后命令行输入
sudo raspi-config
,Interface Options => Camera,启动摄像头并重启。
raspivid
raspivid 是 Raspberry PI OS 内置的视频采集工具,可以直接使用摄像头采集视频并进行推流。
Tips: 64 位系统暂不支持该工具,请使用 32 位系统。
TCP(H.246 裸流)
执行以下命令可直接以 TCP 形式推送 H.246 格式的裸流。
|
UDP(H.246 裸流)
对网络延迟要求较高的场景下,可以使用 UDP 的形式推送裸流,以降低延迟。
|
ffmpeg(RTMP 串流)
在直播场景下,我们可以借助 ffmpeg 工具对视频进行转码,并推流到 RTMP 服务器;客户端可以连接该服务器接收视频。
在云服务器上执行以下命令搭建 RTMP 推流服务器。
|
在树莓派上执行以下命令进行推流。
|
MJPG-streamer(MJPEG)
介绍
MJPG-streamer 是一款开源视频推流服务器,以 HTTP 的形式推送 MJPEG 格式的视频,该方案实现比较简单,延迟也凑合,大约在 1s 内。MJPEG 是一系列 JPG 图片帧组成的视频,只支持以 <img src="MJPEG 务器地址">
标签的形式插入 HTML 播放,不能单独分帧处理。所以只适合简单的摄像头监控场景。
安装过程
安装依赖库:
|
本地编译项目:
|
对于普通的 USB 摄像头,通过以下命令即可使用:
|
打开浏览器输入 http://树莓派IP:8080/?action=stream
即可访问视频。
CSI 摄像头安装依赖
若是使用树莓派的 CSI 摄像头,还需要补充安装一些硬件支持依赖。
|
在文件的最后一行加入: deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/stretch stretch main
,键入 :wq
保存。
|
重启后输入以下命令继续安装依赖:
|
重启后输入以下命令开始推送视频:
|
打开浏览器输入 http://树莓派IP:8080/?action=stream
即可访问视频。
- 本文作者:zhaoo
- 本文链接:https://www.izhaoo.com/2021/02/28/raspi-camera-push-stream/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
