Safemotion Lib
Loading...
Searching...
No Matches
Functions
utils_video Namespace Reference

Functions

 crop_clip (input_video_path, output_video_path, crop_area, time_interval=[0, -1], interver_type='time')
 
 make_video (folder_or_paths, save_path, fps=30, half=True)
 

Function Documentation

◆ crop_clip()

utils_video.crop_clip ( input_video_path,
output_video_path,
crop_area,
time_interval = [0, -1],
interver_type = 'time' )
동영상에서 특정 영역및 시간 범위를 잘라서 저장하는 기능
args:
    input_video_path (str): 입력 동영상 경로
    output_video_path (str): 동영상을 저장할 경로
    crop_area (list[int] or tuple) : 동영상에서 잘라낼 영역의 좌상단과 우하단 좌표 (x1, y1, x2, y2)
    time_interval (list or tuple): 동영상에서 잘라낼 시작 구간과 종료 구간 (시작 구간, 종료 구간)
    interver_type : time_interval 단위 
        'time' : 초단위, 소수점 입력 가능
        'frame' : 프레임 단위, 정수로 입력

Definition at line 7 of file utils_video.py.

7def crop_clip(input_video_path, output_video_path, crop_area, time_interval=[0, -1], interver_type='time'):
8 """
9 동영상에서 특정 영역및 시간 범위를 잘라서 저장하는 기능
10 args:
11 input_video_path (str): 입력 동영상 경로
12 output_video_path (str): 동영상을 저장할 경로
13 crop_area (list[int] or tuple) : 동영상에서 잘라낼 영역의 좌상단과 우하단 좌표 (x1, y1, x2, y2)
14 time_interval (list or tuple): 동영상에서 잘라낼 시작 구간과 종료 구간 (시작 구간, 종료 구간)
15 interver_type : time_interval 단위
16 'time' : 초단위, 소수점 입력 가능
17 'frame' : 프레임 단위, 정수로 입력
18 """
19
20 # 동영상 읽기
21 clip = VideoFileClip(input_video_path)
22
23 # 구간 설정
24 start_time, end_time = time_interval
25 if interver_type == 'frame':
26 fps = clip.fps
27 start_time = start_time / fps
28 end_time = end_time / fps
29
30 # 지정한 시간 구간을 잘라내기
31 subclip = clip.subclip(start_time, end_time)
32
33 # 지정한 영역을 잘라내기
34 cropped_clip = subclip.crop(y1=crop_area[1], y2=crop_area[3], x1=crop_area[0], x2=crop_area[2])
35
36 # 잘라낸 영역을 새 동영상 파일로 저장
37 cropped_clip.write_videofile(output_video_path, codec="libx264")
38
39 # 자원 해제
40 clip.close()
41
42

◆ make_video()

utils_video.make_video ( folder_or_paths,
save_path,
fps = 30,
half = True )
이미지를 기반으로 동영상을 생성하는 기능
args:
    folder_or_paths (str or list[str]): 동영상을 만들 이미지가 저장된 폴더 또는 이미지 경로 리스트
    save_path (str): 동영상을 저장할 경로
    fps (int): 생성할 동영상의 프레임 속도
    half (bool): 이미지의 크기를 절반으로 줄여서 저장할지 여부

Definition at line 43 of file utils_video.py.

43def make_video(folder_or_paths, save_path, fps=30, half=True):
44 """
45 이미지를 기반으로 동영상을 생성하는 기능
46 args:
47 folder_or_paths (str or list[str]): 동영상을 만들 이미지가 저장된 폴더 또는 이미지 경로 리스트
48 save_path (str): 동영상을 저장할 경로
49 fps (int): 생성할 동영상의 프레임 속도
50 half (bool): 이미지의 크기를 절반으로 줄여서 저장할지 여부
51 """
52
53 #이미지 경로 설정
54 if isinstance(folder_or_paths, str):
55 _, path_list = search_file(folder_or_paths, '.jpg')
56 else:
57 path_list = folder_or_paths
58
59 # 이미지 시퀀스로부터 동영상 클립 생성
60 clip = ImageSequenceClip(path_list, fps=fps)
61
62 # 크기를 절반으로 줄이는 옵션이 활성화된 경우, 크기를 조절합니다.
63 if half:
64 clip = clip.resize(height=int(clip.h/2), width=int(clip.w/2))
65
66 # 동영상 파일로 저장
67 clip.write_videofile(save_path, codec='libx264', bitrate='4000k')
68
69 # 자원 해제
70 clip.close()
71