【问题标题】:How to put an opencv function to play videos in django views?如何使用 opencv 函数在 django 视图中播放视频?
【发布时间】:2016-11-24 01:59:24
【问题描述】:

我有一些 python 代码使用 opencv 从某个路径播放视频,我一直在阅读有关如何将 python 代码与 Django 合并的内容,我看到 python 代码可以放入 django views.py文件,但我的问题是我应该将什么作为渲染它的代码的参数,例如return render(request, [what do I put here?]),因为通常在请求之后放置 html 文件的位置但是如果我想要播放该视频,我只是指定我想要播放视频的 html 页面,这会起作用还是我需要做更多的事情?另外,如果您知道任何处理此类内容的好教程,我将不胜感激任何链接。提前致谢。

这是只播放视频的python代码

 filename = 'C:/Desktop/Videos/traffic2.mp4'
        vidcap = cv2.VideoCapture(filename)

        while(vidcap.isOpened()):
            success, frame_org = vidcap.read()

            cv2.imshow('frame',frame_org)  

            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

        vidcap.release()
        cv2.destroyAllWindows()

【问题讨论】:

  • 您是在询问如何在客户端的网络浏览器中播放视频,还是希望每次向某个 URL 发出请求时都在服务器上打开并播放视频窗口?
  • 我希望每次向某个 URL 发出请求时打开一个视频窗口并在服务器上播放,这将是在 html 页面上按下按钮时

标签: python html django opencv


【解决方案1】:

快速回答:不要使用模板和render(),只需使用HttpResponse。视频会播放,然后会返回响应,所以最后一切都会成功。

from django.http import HttpResponse

def index(request):
    play_video()
    return HttpResponse("OK")

意见回答:

所以我实际上已经完成了something kinda similar to this

我建议有一个带有按钮的主视图,当单击该按钮时,它会调用一个 JavaScript 函数,该函数 sends a GET request 到另一个 隐藏 视图,该视图实际上在服务器上播放视频。

这个隐藏视图基本上就是我上面贴的代码sn-p。

您可能还需要考虑将视频播放代码放在subprocess 中,因为 Django 或网络浏览器可能会超时或其他原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2012-11-28
    • 1970-01-01
    • 2023-03-23
    • 2012-08-09
    相关资源
    最近更新 更多