首页 > 解决方案 > 如何显示烧瓶选择的视频显示

问题描述

我想使用烧瓶显示选定的视频。我使用 HTML 选择视频

<input id = "video_re" name = "video_select" accept = "video/*" type = "file"  >
<input type="submit"  value="testing" id="button_click" >

然后获取文件名

@app.route('/testing', methods=['POST'])
def test():
    f  = request.files['video_select']
    video_name = f.filename

    return video_name

并显示

def video_gray(selected):  
    camera = cv2.VideoCapture(selected)
    while True:
        success, frame = camera.read()  
        grayFrame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # video grayscale
        if not success:
            break
        else:
            
            ret, buffer = cv2.imencode('.jpg', grayFrame)
            grayFrame = buffer.tobytes()

            yield (b'--frame\r\n'
                b'Content-Type: image/jpeg\r\n\r\n' + grayFrame + b'\r\n')

@app.route('/video_feed')
def video_feed():
    return Response(video_gray(), mimetype='multipart/x-mixed-replace; boundary=frame')
html
<img src="{{url_for('video_feed')}}"> 

选择的视频名称是video_name我如何将此值发送到video_gray(selected)?或以其他方式显示所选视频?

标签: pythonflask

解决方案


您可以使用全局变量,将video_name声明为全局变量,您可以在任何您喜欢的地方使用它

或者试试这些,也许这会有所帮助,

只需将 post 数据直接发送到video_gray函数

@app.route('/testing', methods=['POST'])
def video_gray():
  f  = request.files['video_select']
  selected = f.filename
  camera = cv2.VideoCapture(selected) ...

或者你可以在test()函数中调用你的函数

@app.route('/testing', methods=['POST'])
def test():
   f  = request.files['video_select']
   video_name = f.filename
   video_gray(video_name)

推荐阅读