hina19 commited on
Commit
8429ef6
·
verified ·
1 Parent(s): c3b0aec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -11
app.py CHANGED
@@ -30,7 +30,7 @@ if uploaded_file:
30
  # Scene Detection & Frame Extraction
31
  st.write("🔍 Detecting scene changes and extracting key frames...")
32
 
33
- def extract_key_frames(video_path, output_folder="frames", frames_per_scene=3):
34
  os.makedirs(output_folder, exist_ok=True)
35
  video = open_video(video_path)
36
  scene_manager = SceneManager()
@@ -39,16 +39,15 @@ if uploaded_file:
39
  scenes = scene_manager.get_scene_list()
40
  cap = cv2.VideoCapture(video_path)
41
  for i, (start, end) in enumerate(scenes):
42
- start_frame = start.get_frames()
43
- end_frame = end.get_frames()
44
- step = (end_frame - start_frame) // (frames_per_scene + 1)
45
- for j in range(frames_per_scene):
46
- frame_time = start_frame + step * (j + 1)
47
- cap.set(cv2.CAP_PROP_POS_FRAMES, frame_time)
48
- ret, frame = cap.read()
49
- if ret:
50
- frame_path = os.path.join(output_folder, f"scene_{i+1}_frame{j+1}.jpg")
51
- cv2.imwrite(frame_path, frame)
52
  cap.release()
53
 
54
  extract_key_frames(video_path)
 
30
  # Scene Detection & Frame Extraction
31
  st.write("🔍 Detecting scene changes and extracting key frames...")
32
 
33
+ def extract_key_frames(video_path, output_folder="frames"):
34
  os.makedirs(output_folder, exist_ok=True)
35
  video = open_video(video_path)
36
  scene_manager = SceneManager()
 
39
  scenes = scene_manager.get_scene_list()
40
  cap = cv2.VideoCapture(video_path)
41
  for i, (start, end) in enumerate(scenes):
42
+ frame_time = start.get_frames() # Extract frame at scene start
43
+ cap.set(cv2.CAP_PROP_POS_FRAMES, frame_time)
44
+ ret, frame = cap.read()
45
+
46
+ if ret:
47
+ frame_path = os.path.join(output_folder, f"scene_{i+1}.jpg")
48
+ cv2.imwrite(frame_path, frame)
49
+ print(f"Saved: {frame_path}")
50
+
 
51
  cap.release()
52
 
53
  extract_key_frames(video_path)