Spaces:
Running
Running
Update app.py
Browse files
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"
|
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 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
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)
|