Update extract_frames.py
Browse files- extract_frames.py +10 -8
extract_frames.py
CHANGED
|
@@ -19,16 +19,13 @@ def preprocess_and_save_frames(
|
|
| 19 |
device: str = "cpu"
|
| 20 |
):
|
| 21 |
"""
|
| 22 |
-
Loads a video and saves frames as images in output_root
|
|
|
|
| 23 |
"""
|
| 24 |
|
| 25 |
# Ensure the base frames directory exists
|
| 26 |
os.makedirs(output_root, exist_ok=True)
|
| 27 |
|
| 28 |
-
# Create subfolder for this specific video
|
| 29 |
-
video_dir = os.path.join(output_root, video_id)
|
| 30 |
-
os.makedirs(video_dir, exist_ok=True)
|
| 31 |
-
|
| 32 |
center_crop_transform = None
|
| 33 |
if crop_size > 0:
|
| 34 |
from torchvision import transforms
|
|
@@ -47,9 +44,14 @@ def preprocess_and_save_frames(
|
|
| 47 |
if center_crop_transform is not None:
|
| 48 |
frame_tensor = center_crop_transform(frame_tensor)
|
| 49 |
|
| 50 |
-
#
|
| 51 |
-
|
|
|
|
| 52 |
save_image(frame_tensor, frame_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
frame_count += 1
|
| 54 |
|
| 55 |
frame_bytes = frame_tensor.numel() * 4
|
|
@@ -74,4 +76,4 @@ if __name__ == "__main__":
|
|
| 74 |
except Exception as e:
|
| 75 |
print(f"⚠️ Failed {el['id']}: {e}")
|
| 76 |
|
| 77 |
-
print("✅ All frames saved under ./frames
|
|
|
|
| 19 |
device: str = "cpu"
|
| 20 |
):
|
| 21 |
"""
|
| 22 |
+
Loads a video and saves frames as images in output_root/.
|
| 23 |
+
Frame names follow the pattern: <video_id>_frame_<n>.png
|
| 24 |
"""
|
| 25 |
|
| 26 |
# Ensure the base frames directory exists
|
| 27 |
os.makedirs(output_root, exist_ok=True)
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
center_crop_transform = None
|
| 30 |
if crop_size > 0:
|
| 31 |
from torchvision import transforms
|
|
|
|
| 44 |
if center_crop_transform is not None:
|
| 45 |
frame_tensor = center_crop_transform(frame_tensor)
|
| 46 |
|
| 47 |
+
# Flat naming pattern (no subfolders)
|
| 48 |
+
frame_name = f"{video_id}_frame_{frame_count}.png"
|
| 49 |
+
frame_path = os.path.join(output_root, frame_name)
|
| 50 |
save_image(frame_tensor, frame_path)
|
| 51 |
+
|
| 52 |
+
# Print saved frame name
|
| 53 |
+
print(frame_name)
|
| 54 |
+
|
| 55 |
frame_count += 1
|
| 56 |
|
| 57 |
frame_bytes = frame_tensor.numel() * 4
|
|
|
|
| 76 |
except Exception as e:
|
| 77 |
print(f"⚠️ Failed {el['id']}: {e}")
|
| 78 |
|
| 79 |
+
print("✅ All frames saved under ./frames/")
|