jschwab21 commited on
Commit
23ff2b1
·
verified ·
1 Parent(s): 87303e5

Update video_processing.py

Browse files
Files changed (1) hide show
  1. video_processing.py +9 -1
video_processing.py CHANGED
@@ -75,6 +75,11 @@ def find_scenes(video_path):
75
  def convert_timestamp_to_seconds(timestamp):
76
  return float(timestamp)
77
 
 
 
 
 
 
78
  def extract_frames(video_path, start_time, end_time):
79
  frames = []
80
  video_clip = VideoFileClip(video_path).subclip(start_time, end_time)
@@ -100,6 +105,8 @@ def analyze_scenes(video_path, scenes, description):
100
  positive_feature, negative_features = text_features[0], text_features[1:]
101
 
102
  for scene_num, (start_time, end_time) in enumerate(scenes):
 
 
103
  frames = extract_frames(video_path, start_time, end_time)
104
  if not frames:
105
  print(f"Scene {scene_num + 1}: Start={start_time}, End={end_time} - No frames extracted")
@@ -116,7 +123,8 @@ def analyze_scenes(video_path, scenes, description):
116
  scene_prob += positive_similarity - negative_similarities
117
 
118
  scene_prob /= len(frames)
119
- scene_duration = end_time - start_time
 
120
  print(f"Scene {scene_num + 1}: Start={start_time}, End={end_time}, Probability={scene_prob}, Duration={scene_duration}")
121
 
122
  scene_scores.append((scene_prob, start_time, end_time, scene_duration))
 
75
  def convert_timestamp_to_seconds(timestamp):
76
  return float(timestamp)
77
 
78
+ def timecode_to_seconds(timecode):
79
+ h, m, s = timecode.split(':')
80
+ return int(h) * 3600 + int(m) * 60 + float(s)
81
+
82
+
83
  def extract_frames(video_path, start_time, end_time):
84
  frames = []
85
  video_clip = VideoFileClip(video_path).subclip(start_time, end_time)
 
105
  positive_feature, negative_features = text_features[0], text_features[1:]
106
 
107
  for scene_num, (start_time, end_time) in enumerate(scenes):
108
+ start_seconds = timecode_to_seconds(start_time)
109
+ end_seconds = timecode_to_seconds(end_time)
110
  frames = extract_frames(video_path, start_time, end_time)
111
  if not frames:
112
  print(f"Scene {scene_num + 1}: Start={start_time}, End={end_time} - No frames extracted")
 
123
  scene_prob += positive_similarity - negative_similarities
124
 
125
  scene_prob /= len(frames)
126
+ scene_duration = end_seconds - start_seconds
127
+
128
  print(f"Scene {scene_num + 1}: Start={start_time}, End={end_time}, Probability={scene_prob}, Duration={scene_duration}")
129
 
130
  scene_scores.append((scene_prob, start_time, end_time, scene_duration))