首页 > 解决方案 > 在python中将视频转换为二进制数据集

问题描述

我是python新手,最近开始学习它。我想将我的视频文件转换为二进制数据集。我在 python 3.7 的控制台中工作

videoFile = "C:\Users\Admin\Downloads\myvideo" # folder with my videofiles

我这样做

import numpy as np
import cv2
 
cap = cv2.VideoCapture("C:\Users\Admin\Downloads\myvideo")# folder with my video
 
while(True):
    ret, frame = cap.read() 

然后我得到错误

>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>>
... cap = cv2.VideoCapture("C:\Users\Admin\Downloads\myvideo")
  File "<stdin>", line 2
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio
n 2-3: truncated \UXXXXXXXX escape
>>>
... while(True):
...     ret, frame = cap.read()

为什么我做不到?我如何正确地将我的视频文件转换为 csv 中的二进制数据集,所有视频分别在 csv 数据集中

编辑

>>> import numpy as np
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\cv2\__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: DLL load failed: Не найден указанный модуль.
>>>
>>> cap = cv2.VideoCapture("C:\Users\Admin\Downloads\myvideo")# folder with my v
ideo
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio
n 2-3: truncated \UXXXXXXXX escape
>>>
>>> while(True):
...     ret, frame = cap.read()
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: name 'cap' is not defined
>>>

标签: pythonvideobinary

解决方案


发生此错误是因为您使用普通字符串作为路径只需将 r 放在普通字符串之前,它将普通字符串转换为原始字符串:

import numpy as np
import cv2

cap = cv2.VideoCapture(r"C:\Users\gokul\PycharmProjects\GpuTry\sample.mp4")
while(True):
    ret, frame = cap.read()
    print(frame)

上面的代码运行完美。


推荐阅读