python使用opencv模块获取视频随机封面和视频时长

之前也简单使用过OpenCV模块,这里再次使用的时候再介绍下这个模块
OpenCV 是一个功能强大、应用广泛的计算机视觉库,它为开发人员提供了丰富的工具和算法,可以帮助他们快速构建各种视觉应用。
接下来就看看如何使用opencv获取视频的封面和时常,封面我是随机获取视频中的一帧作为图片

获取随机封面

import cv2
import random

def get_video_cover(video_path, image_out_path):
    cap = cv2.VideoCapture(video_path)
    #获取总帧数
    frame_num = cap.get(cv2.CAP_PROP_FRAME_COUNT)
    #过去随机1帧
    frame = random.randint(1, int(frame_num))
    #获取指定帧
    cap.set(cv2.CAP_PROP_POS_FRAMES, frame)
    #读取指定帧
    success, image = cap.read()
    if success:
        try:
            #将指定帧图片保存
            cv2.imwrite(image_out_path, image)
            print("获取影片封面成功!")
        except Exception as e:
            print(e)
    else:
        print("获取影片封面失败!")
get_video_cover(r"./20250528233946F1042EFCA28410F6917B.mp4", r"./cover.png")

最后获取封面如下

202505290007508791892243.png

获取视频总时长代码如下:

import cv2
def get_video_duration(video_path): cap = cv2.VideoCapture(video_path) if cap.isOpened(): #获取帧率 rate = cap.get(cv2.CAP_PROP_FPS) #获取帧数 frame_num = cap.get(cv2.CAP_PROP_FRAME_COUNT) duration = frame_num / rate print("影片时长为 {}".format(duration)) else: print("获取影片时长失败!")
get_video_duration(r"./20250528233946F1042EFCA28410F6917B.mp4")

打印594.7666666666667,单位是秒。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1045

评论列表