怎么在python项目中利用openCV实现一个截取视频功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
使用cv2对视频进行切割
import cv2 def clip_video (target_video, source_video,还以为,start_time, end_time): 时间=cap 才能;cv2.VideoCapture (source_video) if 才能;not  cap.isOpened (): ,,,logger_warning (& # 39; video  is not 打开# 39;) 其他的才能: 成功,,,,,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 #,视频总帧数/帧速率,是时间/秒【总共有多少秒的视频时间】 ,,,if start_time 祝辞,duration 或是end_time 祝辞,持续时间: ,,,,,回来 ,,,start_time =, fps *,浮子(start_time) ,,,end_time =, fps *,浮子(end_time) ,,,#,AVI格式编码输出,XVID ,,,four_cc =, cv2.VideoWriter_fourcc (* & # 39; h264 # 39;) ,,,video_writer =, cv2.VideoWriter (target_video, four_cc,, fps,, (int (f_width), int (f_height))) ,,,num =0 ,,,while 正确的: ,,,,,,,frame =, cap.read () ,,,,,if int (start_time), & lt;=, int (num), & lt;=, int (end_time): ,,,,,,,if 成功: ,,,,,,,,,video_writer.write(框架) ,,,,,,,其他的: ,,,,,,,,,休息 ,,,,,num +=1 ,,,,,if num 祝辞,frame_number: ,,,,,,,休息 ,,,cap.release ()
VideoWriter_fourcc编码格式:
fourcc意为四字符代码(四码),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混
cv2.VideoWriter_fourcc(& # 39;我# 39;& # 39;4 & # 39;,& # 39;2 & # 39;,& # 39;0 & # 39;),该参数是YUV编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc (& # 39; p # 39; & # 39;我# 39;,& # 39;猴# 39;,& # 39;我# 39;),该参数是mpeg 1编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc (& # 39; x # 39; & # 39; v # 39;, & # 39;我# 39;,& # 39;d # 39;),该参数是mpeg - 4编码类型,文件名后缀为.avi
cv2.VideoWriter_fourcc (& # 39; t # 39; & # 39; h # 39;, & # 39; e # 39;, & # 39; o # 39;),该参数是Ogg Vorbis,文件名后缀为.ogv
cv2.VideoWriter_fourcc (& # 39; f # 39; & # 39; l # 39;, & # 39; v # 39;, & # 39; 1 & # 39;),该参数是Flash视频,文件名后缀为。flv
看完上述内容,你们掌握怎么在python项目中利用openCV实现一个截取视频功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!