树莓派摄像头视频如何在局域网电脑的浏览器上实时查看?
默认已经连接好摄像头,并测试摄像头已经能正常工作. 摄像头设置参考链接:树莓派系列摄像头使用介绍 - 树莓派平台 - 微象电子
方案一:MediaMTX(最均衡、零代码方案)
1、安装:在Pi上分别执行以下命令,下载并解压MediaMTX。
# 前往GitHub Releases页面,找到最新的linux_armv7版本,留意最新的版本号(例如 v1.12.2),替换下方代码中的 1.12.2 为自己获取到的最新版本号
wget https://github.com/bluenviron/mediamtx/releases/download/v1.12.2/mediamtx_v1.12.2_linux_armv7.tar.gz
tar -xzvf mediamtx_v1.12.2_linux_armv7.tar.gz2、配置:编辑解压出的 mediamtx.yml 文件,在文件末尾添加以下配置,开启低延迟的WebRTC模式及相应的API功能。
# 在文件末尾添加
paths:
cam:
source: rpiCamera
rpiCameraBitrate: 5000000 # 5Mbps码率,可按需调整3、运行:执行 ./mediamtx。浏览器输入 http://<你的树莓派IP地址>:8889/cam 即可看到你的低延迟视频流。
方案二:PiCamera2 Web Stream(Python灵活方案)
如果你希望用Python来控制摄像头逻辑,这是一个不错的选择。它基于PiCamera2库,能提供一个轻量级的HTTP视频流,延迟也相对较低
1、安装依赖:
sudo apt install -y python3-libcamera python3-picamera2 python3-opencv python3-numpy python3-flask2、编写代码:创建一个Python脚本,例如 web_stream.py,并粘贴以下代码。这是一个简单的MJPEG流服务器。
import io
import picamera2
import time
import libcamera
from flask import Flask, Response, render_template_string
app = Flask(__name__)
# HTML 页面,直接嵌入在Python中
HTML_PAGE = """
<!DOCTYPE html>
<html>
<head><title>PiCamera2 Stream</title></head>
<body>
<img src="{{ url_for('video_feed') }}" style="width:100%;">
</body>
</html>
"""
class VideoStream:
def __init__(self):
self.picam2 = picamera2.Picamera2()
video_config = self.picam2.create_video_configuration(
main={"size": (1280, 720)},
controls={"FrameRate": 30}
)
self.picam2.configure(video_config)
self.picam2.start()
time.sleep(1) # 给摄像头一点启动时间
def get_frame(self):
data = io.BytesIO()
self.picam2.capture_file(data, format='jpeg')
data.seek(0)
return data.read()
stream = VideoStream()
def gen_frames():
while True:
frame = stream.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
time.sleep(0.03) # 大约30fps
@app.route('/')
def index():
return render_template_string(HTML_PAGE)
@app.route('/video_feed')
def video_feed():
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, threaded=True)3、运行与访问:执行 python3 web_stream.py,在浏览器输入 http://<你的树莓派IP地址>:5000 即可看到画面。
页:
[1]