视频处理的本质就是对图像的连续处理。那么视频的合并和剪切其实就是对图片的组合,多个视频的合并和剪切就是读取视频中的图片进行重新排列组合。这次分享的内容,是把多个视频合并成一个视频。
当然,你也可以使用目前比较流行的视频剪辑软件,进行合并也非常方便。但是,当视频打到一定的数量之后,处理效率也会下降。这时通过程序自动化合并,是非常高效的。
具体如何实现,我们通过下面的程序来完成:
代码语言:javascript复制# 合并多个视频文件
def merge_video(src,new_video_name="merge.avi"):
vw = cv2. cv2.VideoWriter(new_video_name,cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'), 24, (600, 480))
mp4_list = [x for x in os.listdir(src) if x[-4:] == ".mp4"]
for mp4 in mp4_list:
capture = cv2.VideoCapture("../%s"% mp4)
fps = capture.get(cv2.CAP_PROP_FPS)
if capture.isOpened():
i = 0
while i < fps * 17.5:
i = 1
ret,prev = capture.read()
if ret is True:
if fps == 24:
vw.write(prev)
else:
vw.write(prev)
else:
break
vw.release()
cv2.destroyAllWindows()
上述函数需要传入两个参数,一个为合并后视频文件的名称;一个为待合并的视频文件目录。运行这段程序后,会将src目录下的所有MP4文件按安装读取的顺序进行合并。