Skip to content

Commit 3c13740

Browse files
committed
increase fps limit to 60 for video inference api
1 parent 5c2e4c8 commit 3c13740

File tree

3 files changed

+49
-3
lines changed

3 files changed

+49
-3
lines changed

roboflow/models/video.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ def predict( # type: ignore[override]
9797

9898
url = urljoin(API_URL, f"/video_upload_signed_url/?api_key={self.__api_key}")
9999

100-
if fps > 30:
101-
raise Exception("FPS must be less than or equal to 30.")
100+
if fps > 60:
101+
raise Exception("FPS must be less than or equal to 60.")
102102

103103
if additional_models is None:
104104
additional_models = []

roboflow/roboflowpy.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from roboflow.models.object_detection import ObjectDetectionModel
1414
from roboflow.models.semantic_segmentation import SemanticSegmentationModel
1515

16-
1716
def login(args):
1817
roboflow.login()
1918

@@ -111,7 +110,24 @@ def get_workspace(args):
111110
api_key = load_roboflow_api_key(args.workspaceId)
112111
workspace_json = rfapi.get_workspace(api_key, args.workspaceId)
113112
print(json.dumps(workspace_json, indent=2))
113+
114+
115+
def run_video_inference_api(args):
116+
rf = roboflow.Roboflow(args.api_key)
117+
project = rf.workspace().project(args.project)
118+
version = project.version(args.version_number)
119+
model = project.version(version).model
114120

121+
#model = VideoInferenceModel(args.api_key, project.id, version.version, project.id) # Pass dataset_id
122+
# Pass model_id and version
123+
job_id, signed_url, expire_time = model.predict_video(
124+
args.video_file,
125+
fps=40,
126+
prediction_type="batch-video",
127+
)
128+
results = model.poll_until_video_results(job_id)
129+
with open("test_video.json", "w") as f:
130+
json.dump(results, f)
115131

116132
def get_workspace_project_version(args):
117133
# api_key = load_roboflow_api_key(args.workspaceId)
@@ -173,6 +189,7 @@ def _argparser():
173189
_add_workspaces_parser(subparsers)
174190
_add_upload_model_parser(subparsers)
175191
_add_get_workspace_project_version_parser(subparsers)
192+
_add_run_video_inference_api_parser(subparsers)
176193

177194
return parser
178195

@@ -329,6 +346,34 @@ def _add_workspaces_parser(subparsers):
329346
)
330347
workspaceget_parser.set_defaults(func=get_workspace)
331348

349+
def _add_run_video_inference_api_parser(subparsers):
350+
run_video_inference_api_parser = subparsers.add_parser(
351+
"run_video_inference_api",
352+
help="run video inference api",
353+
)
354+
355+
run_video_inference_api_parser.add_argument(
356+
"-a",
357+
dest="api_key",
358+
help="api_key",
359+
)
360+
run_video_inference_api_parser.add_argument(
361+
"-p",
362+
dest="project",
363+
help="project_id to upload the image into",
364+
)
365+
run_video_inference_api_parser.add_argument(
366+
"-v",
367+
dest="version_number",
368+
type=int,
369+
help="version number to upload the model to",
370+
)
371+
run_video_inference_api_parser.add_argument(
372+
"-f",
373+
dest="video_file",
374+
help="path to video file",
375+
)
376+
run_video_inference_api_parser.set_defaults(func=run_video_inference_api)
332377

333378
def _add_infer_parser(subparsers):
334379
infer_parser = subparsers.add_parser(

tests/manual/video_inference.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
python ../../roboflow/roboflowpy.py run_video_inference_api -a -p -v -f

0 commit comments

Comments
 (0)