用micropython picoweb为esp32-cam 传输视频流
1.安装picoweb
import upip
upip.install('picoweb')
- 服务端
from lib import picoweb
import camera
import gc
app = picoweb.WebApp("app")
def send_frame():
while True:
buf = camera.capture()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n'
+ buf + b'\r\n')
del buf
gc.collect()
@app.route("/v")
def index(req, resp):
yield from picoweb.start_response(resp, content_type="multipart/x-mixed-replace; boundary=frame")
while True:
yield from resp.awrite(next(send_frame()))
gc.collect()
# print(gc.mem_free(), end='\r')
def run():
app.run(debug=True, port=80, host='0.0.0.0')
- main.py
import gc
from Wifi.Sta import Sta
import camera
import webframe
w = Sta()
w.connect()
w.wait()
camera.deinit()
cr = camera.init(0, format=camera.JPEG)
print("Camera ready?: ", cr)
if cr:
camera.framesize(7)
webframe.run()
gc.collect()