本文通过OpenCV将视频裁剪成指定时间范围内的小视频,代码如下:
OpenCV把视频拆分成一帧一帧的图片并存放入指定的目录下,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import cv2
import os

def apart(video_path, video_name, image_path):
"""
功能:将视频拆分成图片
参数:
video_path:要拆分的视频路径
video_name:要拆分的视频名字(不带后缀)
image_path:拆分后图片的存放路径
"""

# 在这里把后缀接上
video = os.path.join(video_path, video_name + '.mp4')

# 提取视频的频率,每1帧提取一个
frameFrequency = 1

if not os.path.exists(image_path):
#如果文件目录不存在则创建目录
os.makedirs(image_path)

# 获取视频
use_video = cv2.VideoCapture(video)

# 初始化计数器
count = 0

# 开始循环抽取图片
print('Start extracting images!')
while True:
res, image = use_video.read()
count += 1

# 如果提取完图片,则退出循环
if not res:
print('not res , not image')
break

# 将图片写入文件夹中
cv2.imwrite(image_path + str(count) + '.jpg', image)
print(image_path + str(count) + '.jpg')

print('End of image extraction!')
use_video.release()

if __name__ == '__main__':
video_path = 'video/'
video_name = 'first_video'
image_path = 'image/'
apart(video_path, video_name, image_path)