A stream represents a video source (local device, file, HTTP/HTTPS, RTSP).
Each stream has:
name- stream identifier (unique).path- device path, file path, or URL.type- one oflocal | file | http | rtsp. Iftypeis not provided, it is inferred frompath:local:/dev/video*rtsp:rtsp://...http:http://...orhttps://...- everything else is
file
loop- whether file playback should loop.active_pipeline- one ofmanual | automatic | none.
yodau> list-streams
# Example output:
2 streams:
Stream(name=cam0, path=/dev/video0, type=local, loop=true, active_pipeline=none)
Stream(name=dogcam, path=rtsp://..., type=rtsp, loop=true, active_pipeline=none)
yodau> list-streams --connections
# Same as above, but also prints connected lines for each stream.yodau> add-stream --path=<path> [--name=<name>] [--type=<type>] [--loop=<0|1>]pathis required.name,type,loopare optional.- Default for
loopistrue. - If
nameis empty or already in use, a unique name likestream_0,stream_1, ... is auto-generated.
yodau> add-stream <path> [<name>] [<type>] [<loop>]
# Example usages:
yodau> add-stream /dev/video0 cam0 local 1
yodau> add-stream rtsp://example.com/live dogcam
yodau> add-stream /home/me/clip.mp4 clip1 file 0yodau> start-stream --name=<stream-name>
yodau> stop-stream --name=<stream-name>--nameis required; fails with an error if the stream does not exist.
A line describes a polyline or polygon in normalized coordinates. Lines can later be attached to streams.
Each line has:
name- line identifier.path- sequence of points.close- whether the line is treated as closed (polygon).
Coordinates are specified and stored as floating-point percentages in the range [0.0, 100.0], where:
(0, 0)- top-left corner(100, 100)- bottom-right corner
yodau> add-line --path=<coords> [--name=<name>] [--close=<0|1>]pathis required.nameandcloseare optional.closedefaults tofalse.- If
nameis omitted, a name likeline_0,line_1, ... is auto-generated. pathis a semicolon-separated list of points, each point asx,y. Parentheses around points are allowed but ignored.
Examples:
yodau> add-line --path=0,0;100,0
yodau> add-line --path=10,20;20,20;20,80;10,80 --name=door --close=1
yodau> add-line --path=33.3,10;66.6,10;50,50yodau> list-lines
# Example output:
2 lines:
Line(name=line_0, closed=false, points=[(0, 0); (100, 0)])
Line(name=door, closed=true, points=[(10, 20); (20, 20); (20, 80); (10, 80)])yodau> set-line --stream=<stream-name> --line=<line-name>- Fails with an error if either the stream or the line does not exist.