首页 > 解决方案 > 如何在 python 中读取实时视频提要或视频点播提要?

问题描述

我需要阅读实时视频提要以及 Python 中的任何视频提要 URL。这是机器学习项目的输入。我用的cv.VideoCapture方法。它对我不起作用。我尝试了许多 StackOverflow 链接,但没有找到解决方案。

请帮助阅读我在 python 中的实时/普通视频 URL。我尝试使用下面的代码段。

import cv2
url = 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4'
camera = cv2.VideoCapture()
print("open:",camera.open(url)) # False
print("read:",camera.read()) # (False, None)

输出:

open: False
read: (False, None)

标签: pythoncomputer-vision

解决方案


这是 1 分钟谷歌搜索找到的解决方案。更多,这里是链接

您需要将您的网址传递给VideoCapture(url).

对于您的问题:

>>> import cv2
>>> cv2.__version__
'3.4.2'
>>> cap = cv2.VideoCapture("https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4")
")


>>> cap.read()
(True, array([[[ 46, 112, 104],
        [ 31,  97,  89],
        [ 21,  92,  83],
        ...,

       [[ 62, 153, 159],
        [ 68, 159, 165],
        [ 70, 158, 165],
        ...,
        [ 33, 121, 114],
        [ 28, 131, 113],
        [ 42, 145, 127]]], dtype=uint8))
>>> cap.release()
>>> cv2.destroyAllWindows()

下面的代码是从文档中引用的,

import cv2
import numpy as np

# Create a VideoCapture object and read from input file
# If the input is the camera, pass 0 instead of the video file name
cap = cv2.VideoCapture('chaplin.mp4')

# Check if camera opened successfully
if (cap.isOpened()== False): 
  print("Error opening video stream or file")

# Read until video is completed
while(cap.isOpened()):
  # Capture frame-by-frame
  ret, frame = cap.read()
  if ret == True:

    # Display the resulting frame
    cv2.imshow('Frame',frame)

    # Press Q on keyboard to  exit
    if cv2.waitKey(25) & 0xFF == ord('q'):
      break

  # Break the loop
  else: 
    break

# When everything done, release the video capture object
cap.release()

# Closes all the frames
cv2.destroyAllWindows()

推荐阅读