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
