python如何将视频流实时传输到手机?(有问题,一次只能被一台访问)
文章目录
- 蒋工优化后
基于python实现高速视频传输程序
好像没啥用
基于OpenCV的网络实时视频流传输
树莓派:基于flask的远程视频监控
flask 放置图片 然后浏览器访问图片的方法
AJAX - 服务器响应
# -*- coding: utf-8 -*-
"""
@File : app.py
@Time : 2020/11/20 11:53
@Author : Dontla_stream
@Email : sxana@qq.com
@Software: PyCharm
"""
# Import necessary libraries
from flask import Flask, render_template, Response
import cv2
import pyrealsense2 as rs
import numpy as np# Initialize the Flask app
app = Flask(__name__)camera = cv2.VideoCapture('mda-kgtgu5v2zakst4s8.mp4')def gen_frames():# ctx = rs.context()# pipeline = rs.pipeline(ctx)# cfg = rs.config()# cfg.enable_device('011422071925')# cfg.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)# cfg.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)# pipeline.start(cfg)while True:# frames = pipeline.wait_for_frames()# color_frame = frames.get_color_frame()# color_image = np.asanyarray(color_frame.get_data())# if not color_frame:success, frame = camera.read() # read the camera frameif not success:breakelse:# cv2.imshow('win', color_image)# cv2.waitKey(1)# ret, buffer = cv2.imencode('.jpg', color_image)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# 为网络应用的默认页面定义应用路由?
@app.route('/')
def index():return render_template('index.html')# 定义视频供稿的应用路由?
@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=80, debug=True)# app.run(debug=True)
host需要’0.0.0.0’,其他不行,端口可以改成其他的,没被占用就可
<body>
<div class="container"><div class="row"><div class="col-lg-8 offset-lg-2"><h3 class="mt-5">Live Streaming</h3><!-- <img src="{{ url_for('video_feed') }}" width="100%">--><video src="/static/mda-kgtgu5v2zakst4s8.mp4" controls="controls"></video></div></div>
</div>
</body>
本机浏览器打开http://127.0.0.1/
(本机地址?访问查看)
使用localhost
也可以
局域网其他电脑打开服务端主机ip查看192.168.1.161
查看
结果:
(以太网连接的本机)
(无线网笔记本)
蒋工优化后
app.py
from flask import Flask, render_template, Response, make_responseimport cv2
import base64
import pyrealsense2 as rs
import numpy as npapp = Flask(__name__)# 测试模板
@app.route('/mb')
def test_mb():return render_template('t_mb.html', sjk="jjj")@app.route('/image/<id>')
def image(id):# frames = pipeline.wait_for_frames()while True:# frames = pipeline.poll_for_frames()frames = pipeline.wait_for_frames()if frames:breakelse:print('帧丢失')color_frame = frames.get_color_frame()color_image = np.asanyarray(color_frame.get_data())flag, encoded_image = cv2.imencode(".jpg", color_image)base64_str = base64.b64encode(encoded_image)return base64_str@app.route('/')
def hello_world():return render_template('index.html')if __name__ == '__main__':ctx = rs.context()pipeline = rs.pipeline(ctx)cfg = rs.config()cfg.enable_device('037522250019')cfg.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)cfg.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)# print('aaaaaa')pipeline.start(cfg)app.run(host='0.0.0.0', port=5000, debug=False)
index.html
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>实时视频</title><script>function myFunction() {var xhr = new XMLHttpRequest();xhr.open('GET','/image/1',true);xhr.onload = function (e) {if (this.status == 200) {var blob = this.response;console.log(blob);var img = document.getElementById("img");// img.onload = function (e) {// window.URL.revokeObjectURL(img.src);// };// img.src = window.URL.createObjectURL(blob);// img.attr("src", "data:" + "image/jpg" + ";base64," + blob)img.src = "data:" + "image/jpg" + ";base64," + blob;// document.body.appendChild(img);}}xhr.send();// var img = document.getElementById("img");// img.src = '/image/' + parseInt(Math.random()*500000);// console.log(img.src);}var intervalId = window.setInterval(myFunction, 30);function xxx() {alert("xxx")}</script>
</head><body><image id='img' src='/image/1'></image>
</body></html>
python如何将视频流实时传输到手机?(有问题,一次只能被一台访问)相关推荐
- Vitis项目:基于 ZYNQ 的 IMX2221 摄像头实时视频流采集传输 (一)传感器配置
项目:基于 ZYNQ 的 IMX2221 摄像头实时视频流采集传输 章节:传感器配置(一) 本章目的:使用 ZYNQ 芯片的 PS 端的 SPI 接口对 CMOS 图像传感器进行设置操作,保证 CMO ...
- 局域网下两个电脑的文件实时传输--python程序
一.保证要传输文件的两个电脑在同一个局域网下(即同一个wifi下). 二.有两部分程序,分为sender和reciever两部分,sender放在要发送的电脑上,reciever放在要接受文件的电脑上 ...
- OpenCV:将视频流式传输到网页浏览器/HTML页面
在本教程中,您将学习如何通过Flask和Python使用OpenCV将视频从网络摄像头流式传输到网页浏览器/HTML页面. 您的车被偷过吗? 我的车在周末就被偷了.让我告诉您,我很生气. 我不能透露太 ...
- android实时传输视频Socket
android实时传输视频Socket https://download.csdn.net/download/u012560682/7780979?spm=1001.2101.3001.5697 An ...
- Android视频实时传输
1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:8080网址观看. 这种方案可以参考 ipcamera-for-android ...
- WebRTC音视频实时传输与服务质量
为了保证音视频的质量,WebRTC底层做了大量的工作,尤其是网络传输与服务质量,更是其核心技术,本文由北京音视跳动科技有限公司 首席架构师 李超在LiveVideoStack线上分享的演讲整理而成,详 ...
- 利用VC++实现局域网实时传输
本文针对不同的局域网,提出一种通用的实时视频传输的解决方案.在使用Divx编解码的基础上,提出了从压缩.组帧.发送到接收.解压整个流程的思想,具体实施方案和VC++实现核心源代码以及传输控制策略,有效 ...
- rtp 实时传输协议
实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的. 国际电信联盟ITU-T ...
- python实现微信自动加群_为Python开发人员提供实时代码片段,Kite获1700万美元A轮融资...
[猎云网(微信号:)]1月29日报道(编译:孙家乐) Kite是一款为Python开发人员提供实时代码片段的工具,它在由Trinity Ventures领投的A轮融资中获得了1700万美元.最新版本的 ...
最新文章
- Debug不崩溃Release版本崩溃的一种原因
- 【响应式Web前端设计】一文学会使用Bootstrap!
- Python:if判断与while、for循环语句
- Linux命令——chmod
- 2022年薪百万赛道:高性能神经网络与AI芯片应用
- JavaWeb国际化
- Nginx源码分析 - 基础数据结构篇 - 双向链表结构 ngx_queue.c(05)
- 关于MATLAB中使用latex语法
- 【python】BMR基础代谢率计算器的设计
- 如何成为微信小程序的开发者?
- 数值分析思考题 (钟尔杰版) 参考解答——第三章
- CAD轴测图怎么画,才能不踩坑?
- c语言日历程序 带农历,一个完整的日历(含有农历)
- Java 获取手机号码归属地以及运营商
- oracle索引的一些实践
- html css js题目
- 力出一孔,向工而生丨ClickPaaS毕普科技战略合并发布会圆满收官
- moocpython答案_中国大学慕课moocPython游戏开发入门答案
- C#怎样远程连接SQLServer2000数据库?
- 解决docker容器因报错无法启动的问题,检查、修复容器错误并重启
热门文章
- 一个c语言程序什么时候结束,新人求救,写了一个C语言程序,输入完数据后就结束了!!!...
- 耳机不分主从是什么意思_强悍的配置,百元级的价格,Xisem西圣 Ares战神蓝牙耳机体验...
- 【备忘】外币评估数据存储表
- SAP SD信用控制管理
- SAP HANA要改变什么?
- SAP-ABAP SmartForms之变量显示小技巧
- 如何把选择屏幕放到标准屏幕上
- 通过这组数据分析发现房价波动背后的规律
- 从零售商加速向零售平台进化,每日优鲜已经成为“生鲜电商第一股”
- 无性别服饰是趋势,但不该只停留在“中性”