1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Python迅速从短视频中获取视频帧的办法详细说明

Python迅速获取视频帧(线程同步)

本文给大家介绍一类从视频里获取视频帧的办法,因为单核获取视频帧速率比较慢,因而接下来我们增强了线程同步的办法。现在详细介绍一下这种办法。

Python迅速从短视频中获取视频帧的办法详细说明

1、获取视频帧

获取视频帧需要使用Opencv控制模块。通过启用笔记本电脑内置摄像头载入视频帧,上传“res”布尔型参数来判断载入是否成功,用cv2.imwrite()函数公式存储载入过的视频帧。

2、线程同步方式

线程同步的应用关键应用了threading库。通过threading.Thread()函数公式启用线程同步,在其中主要参数“target”是所需用到的函数公式,主要参数“args”是上边函数的输入数据。

如果需要抽取剔除的帧,可以直接在读取frame的时候将此帧写下来,其他帧直接跳过。样例代码如下:

代码

以下是抽取剔除视频帧工具的Python代码:

import cv2
#视频抽帧
def extract_frame(video_path:str,result_path:str,fps,weight,height,start,end):
    fourcc=cv2.VideoWriter_fourcc(*'mp4v')
    videoWriter=cv2.VideoWriter(result_path,fourcc,fps,(weight,height))
    vc=cv2.VideoCapture(video_path)
    if vc.isOpened():
        ret,frame=vc.read()
    else:
        ret=False
    count=0#count the number of pictures
    while ret:
        ret,frame=vc.read()
        if start<=count<=end:
            count+=1
            continue
        else:
            videoWriter.write(frame)
        count+=1
        print(count)
    videoWriter.release()
    vc.release()
if __name__=='__main__':
    extract_frame('C:UsersxxxDesktop123.mp4','C:UsersxxxDesktop114.mp4',25,640,368,119,125)

以上就是Python获取视频帧的方法,希望这篇文章对你有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6939.html