python+openCV对视频进行截取的实现
使用cv2对视频进行切割
importcv2
defclip_video(source_video,target_video,start_time,end_time):
cap=cv2.VideoCapture(source_video)
ifnotcap.isOpened():
logger_warning('videoisnotopened')
else:
success,frame=cap.read()
f_shape=frame.shape
f_height=f_shape[0]#原视频图片的高度
f_width=f_shape[1]
fps=cap.get(5)#帧速率
frame_number=cap.get(7)#视频文件的帧数
duration=frame_number/fps#视频总帧数/帧速率是时间/秒【总共有多少秒的视频时间】
ifstart_time>durationorend_time>duration:
return
start_time=fps*float(start_time)
end_time=fps*float(end_time)
#AVI格式编码输出XVID
four_cc=cv2.VideoWriter_fourcc(*'H264')
video_writer=cv2.VideoWriter(target_video,four_cc,fps,(int(f_width),int(f_height)))
num=0
whileTrue:
success,frame=cap.read()
ifint(start_time)<=int(num)<=int(end_time):
ifsuccess:
video_writer.write(frame)
else:
break
num+=1
ifnum>frame_number:
break
cap.release()
VideoWriter_fourcc编码格式:
fourcc意为四字符代码(Four-CharacterCodes),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混
cv2.VideoWriter_fourcc('I','4','2','0'),该参数是YUV编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc('P','I','M','I'),该参数是MPEG-1编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc('X','V','I','D'),该参数是MPEG-4编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc('T','H','E','O'),该参数是OggVorbis,文件名后缀为.ogv
cv2.VideoWriter_fourcc('F','L','V','1'),该参数是Flash视频,文件名后缀为.flv
到此这篇关于python+openCV对视频进行截取的实现的文章就介绍到这了,更多相关openCV视频截取内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!