我尝试对视频进行一些图像处理,然后使用colab上的opencv保存生成的视频。但是,我无法访问正在写入的生成的视频文件。
import cv2
from google.colab.patches import cv2_imshow
import numpy as np
fourcc = cv2.VideoWriter_fourcc(*'H264')
cap = cv2.VideoCapture(vid_file)
out = cv2.VideoWriter('output.mp4',fourcc,30.0,(1124,1080))
cnt = 0
ret = True
while(ret):
ret,frame = cap.read()
print(cnt,end=' ')
# check if prey was tracked on this frame
match = np.where(prey_frames==cnt)[0]
if match:
prey_frame = match[0]
# print(prey_frame)
image = cv2.circle(frame,(int(prey_px[prey_frame].x),95+int(prey_px[prey_frame].y)),
radius=5,color=(255,0,255),thickness=2)
else:
image = frame
out.write(image)
cnt += 1
out.release()
cap.release()
cv2.destroyAllWindows()
据我所知,这应该写入一个名为“output.mp4”的文件。这段代码运行时没有错误,但当前目录中没有文件,也没有该名称的文件可供下载(使用files.download('output.mp4')
返回“找不到文件”错误)。
任何帮助都将不胜感激!
1条答案
按热度按时间vzgqcmou1#
我遇到过几次这个问题,我相信这与Colab的操作环境只支持少数视频编码有关。我能够让视频编写者使用以下代码:
fourcc = cv2.VideoWriter_fourcc('F','M','P','4')