步骤:
要使用Python将实时摄像机传送流写入H5页面,可以使用以下步骤。
1、安装必要的软件包。您需要安装OpenCV和Flask以及gunicorn 与 gevent 。您可以通过在终端中运行以下命令来执行此操作。
pip install opencv-python
pip install Flask
pip install gunicorn
pip install gevent
2、创建Python文件。在工作目录中创建一个名为“app.py”的新Python文件。
3、导入必要的包。将以下行添加到“app.py”文件的顶部。
4、初始化Flask。将以下代码行添加到“app.py”文件中以初始化Flask
6、创建相机捕获对象。将以下代码行添加到“app.py”文件中,以创建相机捕捉对象。
7、创建HTML文件。在工作目录中创建一个名为“index.HTML”的新HTML文件。
8、添加HTML代码。将以下代码行添加到“index.HTML”文件中。
9、创建视频源路由。将以下代码行添加到“app.py”文件以创建视频源路径。
10、运行应用程序。在“app.py”文件底部添加以下代码行以运行应用程序。
服务端代码:
import cv2
from flask import Flask, render_template, Response
from gevent import pywsgi
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index1.html')
cap = cv2.VideoCapture(0)
def gen_frames():
while True:
success, frame = cap.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
server = pywsgi.WSGIServer(('192.168.1.10', 5000), app)
server.serve_forever()
# server = make_server('192.168.1.10', 5000, app)
# server.serve_forever()
app.run()
网页端代码:py同级文件夹下创建templates文件夹,按如下内容创建网页,命名为index1.html
<!doctype html>
<html>
<head>
<title>Live Camera Stream</title>
</head>
<body>
<h1>Live Camera Stream</h1>
<img src="{{ url_for('video_feed') }}">
</body>
</html>
效果如下所示:
1