Behavior Details
Retry Logic
Section titled “Retry Logic”When a stream fails, it’s automatically retried with exponential backoff:
| Attempt | Delay |
|---|---|
| 1-4 | 1s |
| 5-7 | 2s |
| 8-9 | 5s |
| 10 | 10s |
| 11 | 15s |
| 12 | 20s |
| 13+ | 30s |
Random jitter (0-2s) is added to prevent thundering herd when multiple streams fail simultaneously.
- Default mode: retries indefinitely (unless
--max-retriesis set) - Continuous mode (
-C): retries on ALL exits (including clean exits like code0or255). Clean exits reset the retry counter for minimal backoff. Onlystoporremovestops a continuous stream. - Pending retries can be cancelled within ~1 second by
stoporremove.
Persistence
Section titled “Persistence”Stream configurations are stored in ~/.unleash-stream/startup. On service restart:
- Continuous streams (
-C): automatically start streaming immediately - Non-continuous streams: loaded as stopped — visible in
list, start manually withstart DEVICEorstart --all - Snapshots: automatically restart their capture loop
File Sources
Section titled “File Sources”When the source is a local file (e.g., .mp4, .mkv, .avi):
-reflag is added for real-time pacing (prevents faster-than-realtime streaming)- In continuous mode (
-C),-stream_loop -1is added for infinite looping - Files are identified by path (starts with
/,./,~, or a drive letter) or common video extensions
Log Management
Section titled “Log Management”- Each stream run creates a log file at
/tmp/unleash-{name}-{timestamp}.log - Up to 10 log files are retained per stream (oldest are deleted automatically)
- View with
unleash-stream-cli logsor directly read the files