Tutorial: run pipelines on cameras & streams
Your first pipeline ran on a test video. Now point it at the real world: USB cameras, RTSP streams, several sources at once — then add tracking and pose on top.
USB and RTSP pipelines
Point a pipeline at any source
In the Voyager SDK, the source is just the last argument to inference.py. Everything you learned in the first tutorial carries over — swap the source and the same pipeline runs on a camera, a stream, or a mix. You can drive every step here two ways: ask Agent Dev in plain words, or run the command yourself in the workspace terminal.
Run on a USB camera
Plug in a webcam and use
usb:0as the source —usb:1for a second camera. Append a format likeusb:0:640x480@30when the camera needs a specific resolution or frame rate.prompt
Run the people detector on my USB camera.bash
./inference.py yolov8n-coco-onnx usb:0 ./inference.py yolov8n-coco-onnx usb:0:640x480@30Point at an RTSP stream
Network cameras speak RTSP. Pass the stream URL — credentials included — as the source. Add
--no-displaywhen the machine is headless.prompt
Point the detector at the parking-lot camera: rtsp://user:pass@192.168.1.20:554/streambash
./inference.py yolov8n-coco-onnx rtsp://user:pass@ip:port/streamRun several streams at once
List several sources and the pipeline fans out across them — cameras and files can mix freely in one run. This is also how you find out how many streams one card can hold.
bash
./inference.py yolov8n-coco-onnx usb:0 usb:1 ./inference.py yolov8n-coco-onnx usb:0 rtsp://cam1/stream media/traffic1_1080p.mp4Add tracking
Detection finds objects per frame; tracking gives them stable IDs across frames.
yolov5m-v7-coco-trackeris the most battle-tested tracker pipeline in the SDK. For IDs that survive occlusion and re-entry, run the headline Re-ID tracker,yolox-deep-oc-sort-osnet-membank.prompt
Track the vehicles in this stream and keep their IDs stable.bash
./inference.py yolov5m-v7-coco-tracker media/traffic1_1080p.mp4 ./inference.py yolox-deep-oc-sort-osnet-membank usb:0Try pose estimation
Same trick, different task: swap the model for a pose network and your camera feed renders live skeletons.
yolov8npose-cocois the fast default.bash
./inference.py yolov8npose-coco usb:0
One pipeline, many variations
- One pipeline, any source: Sources are just arguments:
usb:N,rtsp://…, video files, and images all feed the same pipeline. - Multi-stream is built in: Multiple sources in one command fan out across streams — that is also your capacity test.
- Variations are cheap: Tracking and pose are model swaps, not rewrites — the zoo has prebuilt pipelines for both.
Continue to the model zoo
Next rung: learn what else is in the zoo and how to find it — Run model zoo pipelines.