h5中web端调用自带摄像头并且录屏上传保存视频

前端调用摄像头并录制屏幕

 navigator.mediaDevices.getUserMedia 此函数调用摄像头获取视频流

mediaRecorder 录制视频的函数

摄像头数据存储到chunks中

录屏结束回调将chunks中的视频上传到服务器formData.append('video', recordedBlob, 'recordedVideo.webm');

通过表单上传。

前端代码如下:

<!doctype html>
<html class="no-js" lang="">

<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>Lookie Lookie!</title>
  <meta name="description" content="A website that learns to predict where you are looking at. Written in TensorFlow.js">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

</head>

<body>
 
  <canvas id="heatMap"></canvas>


  <div id="info" data-content=&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Flask实现Python的区域录屏功能,并保存录制的视频,你可以使用OpenCV库来捕捉屏幕区域,并使用Flask创建一个Web应用程序来显示录制的视频。下面是一个示例代码: ```python from flask import Flask, render_template, Response import cv2 app = Flask(__name__) def generate_frames(): # 设置录制区域的坐标和尺寸 x, y, width, height = 100, 100, 640, 480 # 打开屏幕录制 screen_recorder = cv2.VideoCapture(0) # 设置屏幕录制的分辨率 screen_recorder.set(3, width) screen_recorder.set(4, height) # 设置视频编码器 fourcc = cv2.VideoWriter_fourcc(*'XVID') output = cv2.VideoWriter('output.avi', fourcc, 20.0, (width, height)) while True: # 读取屏幕录制的帧 ret, frame = screen_recorder.read() if not ret: break # 截取指定区域的帧 frame = frame[y:y+height, x:x+width] # 将帧写入输出文件 output.write(frame) # 将帧转换为JPEG格式 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') # 释放资源 screen_recorder.release() output.release() @app.route('/') def index(): return render_template('index.html') @app.route('/video_feed') def video_feed(): return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame') if __name__ == '__main__': app.run(debug=True) ``` 在上面的代码,我们通过设置`x`、`y`、`width`和`height`来定义录制区域的坐标和尺寸。然后,我们使用OpenCV的`VideoCapture`来打开屏幕录制,并设置分辨率。接下来,我们创建一个输出文件并设置视频编码器。在每个循环,我们读取屏幕录制的帧,截取指定区域的帧,并将其写入输出文件。然后,我们将帧转换为JPEG格式,并生成视频流。 同样地,在项目目录下创建一个名为`templates`的文件夹,并在其创建一个名为`index.html`的模板文件,用于显示视频流。模板文件的内容可以是以下代码: ```html <!DOCTYPE html> <html> <head> <title>Screen Recording</title> </head> <body> <img src="{{ url_for('video_feed') }}" width="640" height="480"> </body> </html> ``` 运行上述代码后,你可以在浏览器访问`http://localhost:5000`来查看录制的视频。同时,录制的视频保存为名为`output.avi`的文件。请确保你已经安装了Flask和OpenCV库。如果没有安装,可以通过以下命令进行安装: ``` pip install flask opencv-python ``` 希望这能满足你的需求!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web前端神器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值