使用opencv读取相机画面,并编码
使用socket实现http multipart/x-mixed-replace 视频流
在浏览器中打开相应的ip端口就能看到
import cv2
import socket
cap = cv2.VideoCapture(0)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('',8080))
server_socket.listen()
print('listen')
csock, caddr = server_socket.accept()
print('GOT CONNECTION FROM:', caddr)
res = b'HTTP/1.1 200 OK\r\nContent-Type: multipart/x-mixed-replace;boundary=frame\r\n\r\n'
csock.send(res)
while 1:
ret, frame = cap.read()
if not ret:
continue
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
res = b'--frame\r\nContent-Type: image/jpeg\r\n\r\n'+frame+b'\r\n'
csock.send(res)