我们常常从输入的数据流(视频)当中把目标检测出来,检测的结果一般用矩形框起来。每当我们向别人显示效果时,都要重新运行程序,这样耗费时间。所以,我们可以把有标注的视频保存起来,以便用作ppt或向别人显示。
本文采用opencv来对视频进行保存,编程语言为python:
cap = cv.VideoCapture("input.mp4") #输入视频
width = int(cap.get(cv.CAP_PROP_FRAME_WIDTH)) #获取输入视频中每帧的宽
height = int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)) ##获取输入视频中每帧的高
fps = cap.get(cv.CAP_PROP_FPS) #获取输入视频的帧率
fourcc = int(cap.get(cv.CAP_PROP_FOURCC)) #定义输出视频的格式
out = cv.VideoWriter("output.mp4", fourcc, fps, (width, height)) #创建输出视频
while cap.isOpened():
ret,frame = cap.read()
if ret:
#检测目标并标注
out.write(frame) #保存当前帧
key = cv.waitKey(30)
if key == 27:
break
else:
cap.release()
out.release()
break
cv.destroyAllWindows()
相信大家在很多博客都见过以上的代码,但当我们复制粘贴后,程序可运行,可是保存下来的视频无法打开,而且控制台显示错误。
会出现以上错误,主要是缺少一个.dll文件,就是下面这个:
只要我们把这个文件放到脚本文件(.py)的同一目录下,以上问题统统解决了,希望帮到大家。
需要改.dll文件的可以从这个链接下载:
openh264-1.7.0-win64.dll