基于OpenCV + flask 实现的网络实时视频流传输 | 附源码
AI算法与图像处理
共 3367字,需浏览 7分钟
·
2020-11-16 18:30
点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
01.如何使用Web浏览器查看实时流媒体
02.操作步骤
第1步-安装Flask和OpenCV:
第2步-导入必要的库,初始化flask应用程序:
#Import necessary libraries
from flask import Flask, render_template, Response
import cv2
#Initialize the Flask app
app = Flask(__name__)
第3步-使用OpenCV捕获视频:
camera = cv2.VideoCapture(0)
'''
for ip camera use - rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp'
for local webcam use cv2.VideoCapture(0)
'''
![](https://filescdn.proginn.com/9a6992a236d2c2fb18a7482ea17916f2/944755adaa8946a2fc1e4c278a7bfddc.webp)
def gen_frames():
while True:
success, frame = camera.read() # read the camera frame
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') # concat frame one by one and show result
第5步-为网络应用的默认页面定义应用路由:
@app.route('/')
def index():
return render_template('index.html')
第6步-定义视频供稿的应用路由:
@app.route('/video_feed')
def video_feed():
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
<body>
<div class="container">
<div class="row">
<div class="col-lg-8 offset-lg-2">
<h3 class="mt-5">Live Streamingh3>
<img src="{{ url_for('video_feed') }}" width="100%">
div>
div>
div>
body>
第7步-启动Flask服务器:
if __name__ == "__main__":
app.run(debug=True)
只需在运行“ app.py”后在网络浏览器中键入“ localhost:5000”即可打开您的网络应用程序 app.py —这是我们在上面创建的Flask应用程序 模板-此文件夹包含我们的“ index.html”文件。在渲染模板时,这在Flask中是必需的。所有HTML文件都放在此文件夹下。
下载1:leetcode 开源书
在「AI算法与图像处理」公众号后台回复:leetcode,即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!
下载2 CVPR2020 在「AI算法与图像处理」公众号后台回复:CVPR2020,即可下载1467篇CVPR 2020论文 个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
觉得不错就点亮在看吧
![](https://filescdn.proginn.com/470dff69f47b22bd49940a97b7ad70cb/b5e3ebfdc0ce1cec78071505b028e0c9.webp)
评论