notebooks icon indicating copy to clipboard operation
notebooks copied to clipboard

Could not open video at /content/subway.mp4

Open v479038280 opened this issue 10 months ago • 2 comments

Search before asking

  • [X] I have searched the Roboflow Notebooks issues and found no similar bug report.

Notebook name

how-to-detect-and-count-objects-in-polygon-zone.ipynb

Bug

Exception                                 Traceback (most recent call last)
[<ipython-input-27-ef352d094252>](https://localhost:8080/#) in <cell line: 6>()
      4 generator = sv.get_video_frames_generator(SUBWAY_VIDEO_PATH)
      5 iterator = iter(generator)
----> 6 frame = next(iterator)
      7 
      8 # detect

[/usr/local/lib/python3.10/dist-packages/supervision/video.py](https://localhost:8080/#) in get_video_frames_generator(source_path)
    118     video = cv2.VideoCapture(source_path)
    119     if not video.isOpened():
--> 120         raise Exception(f"Could not open video at {source_path}")
    121     success, frame = video.read()
    122     while success:

Exception: Could not open video at /content/subway.mp4

Environment

  • Google colab

Minimal Reproducible Example

import supervision as sv

# extract video frame
generator = sv.get_video_frames_generator(SUBWAY_VIDEO_PATH)
iterator = iter(generator)
frame = next(iterator)

# detect
outputs = predictor(frame)
detections = sv.Detections(
    xyxy=outputs["instances"].pred_boxes.tensor.cpu().numpy(),
    confidence=outputs["instances"].scores.cpu().numpy(),
    class_id=outputs["instances"].pred_classes.cpu().numpy().astype(int)
)

# annotate
box_annotator = sv.BoxAnnotator(thickness=4, text_thickness=4, text_scale=2)
frame = box_annotator.annotate(scene=frame, detections=detections)

%matplotlib inline  
sv.show_frame_in_notebook(frame, (16, 16))

Additional

the file subway.mp4 is a Invalidation file .

Are you willing to submit a PR?

  • [ ] Yes I'd like to help by submitting a PR!

v479038280 avatar Mar 28 '24 14:03 v479038280

I am also facing the same issue Screen Shot 2024-04-06 at 3 04 19 PM .

nextgenai-research avatar Apr 06 '24 09:04 nextgenai-research

I fixed this by creating a content folder and placing the video inside the folder. The dot before {HOME} is necessary for Colab to look at the root directory and search for the folder named content. I included a small code sample below that fixes this issue:

import os

HOME = os.getcwd()
# HOME = './content'
SUBWAY_VIDEO_PATH = f".{HOME}/subway.mp4"

If you use the line that is commented out, then the dot before {HOME} is not necessary; it's only necessary with os.getcwd(). The folder would also be unnecessary and you can avoid creating one if you use the line that is commented out. You can use either HOME variable for your project.

el634dev avatar May 15 '24 23:05 el634dev