Upload extract_frames.py
Browse files- scripts/extract_frames.py +10 -3
scripts/extract_frames.py
CHANGED
|
@@ -9,15 +9,22 @@ def extract_frames(video_path, output_dir, fps=2):
|
|
| 9 |
count = 0
|
| 10 |
frame_id = 1
|
| 11 |
success, image = vidcap.read()
|
|
|
|
| 12 |
while success:
|
| 13 |
-
if int(vidcap.get(cv2.CAP_PROP_POS_FRAMES)) % int(vidcap.get(cv2.CAP_PROP_FPS) // fps) == 0:
|
| 14 |
frame_name = f"{video_name}_{frame_id:04d}.png"
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
frame_id += 1
|
| 17 |
success, image = vidcap.read()
|
| 18 |
count += 1
|
| 19 |
vidcap.release()
|
| 20 |
-
print(f"Extracted {frame_id-1} frames from {video_path}")
|
| 21 |
|
| 22 |
if __name__ == "__main__":
|
| 23 |
video_dir = "videos"
|
|
|
|
| 9 |
count = 0
|
| 10 |
frame_id = 1
|
| 11 |
success, image = vidcap.read()
|
| 12 |
+
failed = 0
|
| 13 |
while success:
|
| 14 |
+
if int(vidcap.get(cv2.CAP_PROP_POS_FRAMES)) % max(1, int(vidcap.get(cv2.CAP_PROP_FPS) // fps)) == 0:
|
| 15 |
frame_name = f"{video_name}_{frame_id:04d}.png"
|
| 16 |
+
out_path = os.path.abspath(os.path.join(output_dir, frame_name))
|
| 17 |
+
ok = cv2.imwrite(out_path, image)
|
| 18 |
+
if not ok:
|
| 19 |
+
print(f"[ERROR] Failed to write frame: {out_path}")
|
| 20 |
+
failed += 1
|
| 21 |
+
elif frame_id <= 5:
|
| 22 |
+
print(f"[DEBUG] Wrote frame: {out_path}")
|
| 23 |
frame_id += 1
|
| 24 |
success, image = vidcap.read()
|
| 25 |
count += 1
|
| 26 |
vidcap.release()
|
| 27 |
+
print(f"Extracted {frame_id-1} frames from {video_path}. Failed writes: {failed}")
|
| 28 |
|
| 29 |
if __name__ == "__main__":
|
| 30 |
video_dir = "videos"
|