Skip to main content

RTSP Streaming Manager

Save video sources as authenticated RTSP URLs on the robot LAN. Sources can be ROS image topics, component image streams, RTSP cameras, ONVIF cameras, or video devices.

nimbus rtsp-streaming list
nimbus rtsp-streaming status
nimbus rtsp-streaming export /tmp/rtsp-profiles.json
nimbus rtsp-streaming import /tmp/rtsp-profiles.json

Import replaces the complete saved list. Preserve each existing id when editing. Every profile needs a unique alias and RTSP path. enabled makes its URL available; processing starts when an authenticated RTSP client opens that URL. Readers share the pipeline, with a limit of 16 readers per profile. Five seconds after the last reader leaves, the Agent releases that profile's source. Recording and other consumers retain their own source ownership.

The server listens at port 8554. Use a robot LAN address and the profile's path, for example rtsp://robot.local:8554/cameras/front. status shows viewer URLs, states and reader counts. Disabled profiles keep their definitions. Listing, exporting and reading status do not start media.

Example profile JSON:

{
"items": [
{
"id": "front-camera",
"alias": "Front camera",
"enabled": true,
"rtspPath": "cameras/front",
"source": {
"streamSource": {
"rtspInfo": {
"url": "rtsp://camera.local:554/live?channel=1"
}
},
"credentials": {
"username": "camera-user",
"password": "camera-password"
}
}
}
]
}

Omit networkQuality to keep encoded H.264/H.265 packet copying where possible. A quality selection requests H.264 conversion; detected MJPEG inputs also normalize to H.264 for safe redistribution. ROS raw images require conversion. ROS1/ROS2 topics support Image and CompressedImage; ROS2 uses the Agent's current ROS domain configuration.

Exported camera passwords appear as ***. Importing that marker retains the saved password only when the profile ID, camera endpoint and username still match. Enter a real password for a new or changed camera. An empty password clears it. Exports are editing templates, not credential backups. Use the explicit credentials object; authentication in URL query parameters is unsupported.

Shared RTSP viewer credentials remain startup settings in nimbus.json:

{
"rosLiveRtspCredentials": {
"username": "viewer",
"password": "replace-with-a-strong-password"
}
}

These credentials apply to every profile and are separate from camera credentials. Restart the Agent after changing them. Missing credentials prevent the RTSP server from starting while keeping saved profiles editable. The CLI never displays the viewer password.

Existing ROS live RTSP settings migrate automatically into saved profiles, preserving their IDs, paths, quality and enabled state. Manage the complete profile list with rtsp-streaming.