【问题标题】:I want to read a video in opencv using url我想使用 url 在 opencv 中阅读视频
【发布时间】:2019-12-07 17:10:33
【问题描述】:

我使用了 host='0.0.0.0' 以便我可以从不同的机器上运行此代码。现在假设我的 ip 是###.###.#.###。 我想要做的是传递这样的链接:###.###.#.###/ 视频将在浏览器上运行。 我试过这种方法,但似乎是错误的方法。

对于粗略的工作,我只是尝试仅使用 opencv 运行它 我粘贴了这样的链接: video_link = 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的消息

【问题讨论】:

  • 请看下面的 url,它显示了如何直接从 Open VideoCapture 方法使用 URL stackoverflow.com/questions/50185654/opencv-load-video-from-url
  • 这不是我要找的。我已经提到我试过这个。
  • 不,你没有提到你在任何地方都试过这个链接
  • 这是一个例子: from flask import Flask app = Flask(name) @app.route("/add/, ") def add(number, number2): x = number y = number2 result = x + y return str(result) if name == "main": app. run(host='0.0.0.0', debug=True) 当我在地址栏上输入这个:###.###.#.###:5000/add/3,5 它给了我一个空白页面左上角打印结果为 8。
  • 我提到了这个:对于一个粗略的工作,我只是尝试使用 opencv 运行它 我粘贴了这样的链接: video_link = cap = cv2.VideoCapture(video_link)有效。我在 vs 代码上试过这个

标签: python opencv flask


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我看到您没有提供 url 来获取视频,这会给出 404 错误消息。

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

    第 2 行,替换为包含您要显示的视频的所需网址。

    如:

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

    【讨论】:

    • 我没有提供网址,因为我会从我的网络浏览器将网址作为参数传递..就像这样....123.147.1.355:5000/video/youtube.com/watch?v=Jvf5y21ZqtQ 它应该在网络浏览器上显示视频
    • 为此,您应该使用按引用调用的方法。比如 def url(x): print "x=",x," id=",id(x) x=123.147.1.355:5000 print "x=",x," id=",id(x) 之后在您的代码中使用此 url(x)。
    【解决方案3】:

    我明白了。

    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)
    

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

    【讨论】:

    • 你最近问这个问题的时候为什么马上回答?
    • 我没有立即回答。我一直在寻找答案,同时也在弄清楚代码。
    猜你喜欢
    • 2013-01-27
    • 1970-01-01
    • 2018-03-29
    • 2014-04-20
    • 2018-10-26
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多