opencv:保存视频

我们常常从输入的数据流(视频)当中把目标检测出来,检测的结果一般用矩形框起来。每当我们向别人显示效果时,都要重新运行程序,这样耗费时间。所以,我们可以把有标注的视频保存起来,以便用作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()

相信大家在很多博客都见过以上的代码,但当我们复制粘贴后,程序可运行,可是保存下来的视频无法打开,而且控制台显示错误。
opencv:保存视频_第1张图片
会出现以上错误,主要是缺少一个.dll文件,就是下面这个:
opencv:保存视频_第2张图片
只要我们把这个文件放到脚本文件(.py)的同一目录下,以上问题统统解决了,希望帮到大家。
需要改.dll文件的可以从这个链接下载:
openh264-1.7.0-win64.dll

你可能感兴趣的:(opencv,opencv,音视频,人工智能)