我想使用网址在opencv中阅读视频

时间:2019-07-30 10:20:45

标签: python opencv flask

我使用host ='0.0.0.0',以便可以从其他计算机上运行此代码。现在假设我的ip是###。###。#。###。 我想做的是通过这样的链接:###。###。#。### /并且视频将在浏览器上运行。 我尝试过这种方法,但似乎是错误的方法。

对于粗糙的工作,我只是尝试仅使用opencv来运行它 我粘贴了这样的链接: video_link = <'link.com'> cap = cv2.VideoCapture(video_link) 奏效了。

这是我尝试过的

from flask import Flask
import cv2

app = Flask(__name__)
@app.route("/video/<string:url>")
def input_value(url):
    link = str(url)
    return link

    cap = cv2.VideoCapture(link)

    while (cap.isOpened()):
        ret, frame = cap.read()

        if ret:
            cv2.imshow('output', frame)
            if cv2.waitKey(1) == ord('q'):
                break
        else:
            break


if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)

我收到类似404的消息

3 个答案:

答案 0 :(得分:0)

我发现您尚未提供要提取404错误消息的视频的网址。

@app.route("/video/<string:url>")

第2行,使用所需的URL重复,其中包括要显示的视频。

,例如:

@app.route("/video/https://www.youtube.com/watch?v=Jvf5y21ZqtQ")

答案 1 :(得分:0)

我明白了。

from flask import Flask
import cv2
app = Flask(__name__)
@app.route("/video/<path:url>")
def input_value(url):
    counter = 0
    cap = cv2.VideoCapture(url)


    while (cap.isOpened()):
        ret, frame = cap.read()

        if ret:
            counter += 1
            cv2.imshow('output', frame)
            if cv2.waitKey(1) == ord('q'):
                break
        else:
            break
    return str(counter)
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)

此代码从地址栏中获取链接,然后在我的机器上运行视频并在网页上返回计数器值

答案 2 :(得分:-1)

根据您的代码,我相信您希望视频在网页上可见。为此,只需使用html视频标签并将django中的URL作为网页中的值传递。