def detect_start_iframe(path, max_pts_time): search_interval = '{}%{}'.format(max(0.0, max_pts_time - 60.0), max_pts_time) iframes = get_iframes2(path, search_interval) return iframes[-1]
def trim_videos(video_list, output_dir, trim_starts=(), trim_ends=()): # find start iframe len(video_list) args = zip_longest(video_list, trim_starts, trim_ends, fillvalue=None) for video, trim_start, trim_end in args: if trim_start: trim_start = time_code_to_seconds(trim_start) if trim_end: trim_end = time_code_to_seconds(trim_end) iframes = None if trim_start: read_interval = '%{}'.format(trim_start) iframes = get_iframes2(video, read_interval) start_pts = float(iframes[-1]) if iframes else None video_name, video_ext = os.path.split(video)[-1].rsplit('.', 1) final_video = '{}-[{}-{}].{}'.format( video_name, seconds_to_time_code(start_pts) or '', seconds_to_time_code(trim_end) or '', video_ext ) output_path = os.path.join(output_dir, final_video) print('Trimming {} from {} -> {}'.format(video, start_pts, output_path)) trim_video(video, output_path, start_pts, trim_end)
def trim_videos(video_list, output_dir, trim_start): # find start iframe for video in video_list: read_interval = '%{}'.format(trim_start) iframes = get_iframes2(video, read_interval) start_pts = iframes[-1] if iframes else None video_name = os.path.split(video)[-1] output_path = os.path.join(output_dir, video_name) print('Trimming {} from {} -> {}'.format(video, start_pts, output_path)) trim_video(video, output_path, start_pts)