videowriter로 저장중인 비디오를 html에서 가져오는 방법

조회수 703회

현재 두개의 쓰레드를 이용해서 하나는 웹캠의 비디오를 파일로 저장하는 쓰레드를, 하나는 이 저장중인 파일을 html 로 넘겨서 html로 웹에서 보여주는 기능을 하고 있습니다. 제가 웹에 대해 잘 모르는데, flask로 render_template로 저장중인 비디오 변수값을 넘겨서 html에서 로 해당 변수를 url_for 를 사용하여 받아 출력해주고 싶습니다. 하지만 동영상이 출력되지가 않네요.

비디오를 저장하는 파이썬 코드입니다.

fourcc = VideoWriter_fourcc(*'H264')
out = VideoWriter('/content/drive/My Drive/Colab Notebooks/MRCNN_pure/static/image/output.mp4', fourcc, 13.0, (1280, 720))

_lock = threading.Lock()

def webcam(capture):
  while True:
    frame_pos = capture.get(cv2.CAP_PROP_POS_FRAMES)
    frame_count = capture.get(cv2.CAP_PROP_FRAME_COUNT)

    grabbed, frame = capture.read()
    if not grabbed:
      print ("Not grabbed.")
      break;

    if grabbed:
      _lock.acquire()
      out.write(frame)
      _lock.release()

다음은 이를 render_template로 넘겨주는 flask 실행 코드입니다.

app = Flask(__name__)
    run_with_ngrok(app)

    @app.route("/")
    def home()-> 'html':
      return render_template('test.html', output = "image/output.mp4")

    if __name__ == "__main__":
      app.run()

다음은 html파일입니다.

<body>
        <h1>HTML5 오픈 커뮤니티</h1>
        <p>이 자료는 <a href="http://www.htmlfive.co.kr">HTML5 오픈 커뮤니티</a>에서 배포합니다.</p>

        {% if True %}
          <video controls autoplay preload="metadata" width="50%" src="{{ url_for('static',filename=output) }}" type='video/mp4'>
            not working
          </video>
          <img src="{{url_for('static', filename=output)}}">
        {% endif %}
    </body>

다른 완전한 동영상 파일을 넘겨 웹으로 출력해주는건 되는데 저장중인 비디오를 출력해주는 것은 되지 않네요. 좋은 방법이 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)