我正在尝试编写一个程序,该程序将使用
torchvision.io.VideoReader
从一组视频文件中提取许多静态图像。 该程序预计将在 Google Colab 上运行。 不幸的是,尽管 torchvision 0.18.0 在 Colab 的运行时上可用,但当我尝试创建 VideoReader 对象时,我收到一个 AttributeError
并显示消息 'ImportError' object has no attribute 'open'
。
我的 Colab 笔记本的完整代码:
import torch
import torchvision
import os
from google.colab import drive
driveLoc = '/content/drive'
if os.path.exists(driveLoc):
print ("Drive already mounted")
else:
print ("Mounting drive")
drive.mount(driveLoc)
vpath = driveLoc + "/MyDrive/videos"
datafiles = os.listdir(vpath)
for f in datafiles:
if not os.path.isfile(vpath+"/"+f):
continue
print (f)
video = torchvision.io.VideoReader(vpath+"/"+f, "video")
print (video.get_metadata())
完整追溯:
AttributeError Traceback (most recent call last)
<ipython-input-7-1051bd84b049> in <cell line: 16>()
19 print (f)
20
---> 21 video = torchvision.io.VideoReader(vpath+"/"+f, "video")
22 print (video.get_metadata())
23
/usr/local/lib/python3.10/dist-packages/torchvision/io/video_reader.py in __init__(self, src, stream, num_threads)
157
158 elif self.backend == "pyav":
--> 159 self.container = av.open(src, metadata_errors="ignore")
160 # TODO: load metadata
161 stream_type = stream.split(":")[0]
AttributeError: 'ImportError' object has no attribute 'open'
只需在默认的 Colab 运行时上运行它,无需安装额外的软件包。我想我需要安装其他东西,但错误没有给我任何线索......