Source Protocols and URL Options
Enter the upstream address in Source Stream. The selected Engine server—not the browser—must be able to open it.
Source Forms
| Source | Use | Example |
|---|---|---|
| HTTP/HTTPS | HLS, DASH, Smooth Streaming, or HTTP-TS | https://source.example/live/index.m3u8 |
| UDP/RTP | Unicast or multicast transport stream | udp://239.10.10.10:5000?localaddr=192.0.2.10 |
| RTSP | Camera or contribution source | rtsp://user:password@source.example:554/path |
| RTMP/RTMPS | Existing RTMP publisher | rtmp://source.example/app/name |
| SRT | Reliable contribution over an unreliable network | srt://source.example.com:9000?mode=caller&latency=120000 |
| TCP | Raw TCP contribution | tcp://source.example:9000 |
| DVB | Service discovered by an Engine Adapter | dvb://server=1&adapter=2&sid=101 |
| Local RTMP publish | Let a publisher such as OBS push into Engine | rtmplocal://a-unique-token-at-least-16-characters |
| Video capture | V4L2 video with an optional ALSA input | v4l2://v4l2=/dev/video0&alsa=auto |
| Local file | File readable by the selected server | /data/input.ts |
Add Sources
- Put the preferred URL first and backup URLs below it. Engine tries them in that order.
- Prefix a saved URL with
#to skip it without deleting it. - Start with Copy video/audio and one output.
- Confirm the selected input, bitrate, programs, tracks, timestamps, and failover before adding processing.
For DVB, use the satellite-dish selector. For local RTMP, use a unique 16–128 character token containing letters, numbers, ., _, or -, then publish to rtmp://server:port/stream/<token>.
HTTP Request Settings
Use the fields beside Source Stream instead of embedding ordinary request settings in the URL:
| Field | Effect |
|---|---|
| HTTP User Agent | Sets the request User-Agent |
| HTTP Referer | Sets the request Referer |
| HTTP Headers | Adds headers; separate lines with literal \r\n |
| Proxy | Tries the selected Engine proxy definitions |
| HTTP Local Address | Binds the request to one interface address on the selected server |
Change one field at a time. A proxy or local address must be reachable from the server running the Stream.
Query Parameters
Start with ? and separate parameters with &:
https://source.example/manifest.mpd?token=value&ignore_subtitles=1Engine removes recognized Engine options before opening the source. Unrecognized parameters remain in the upstream URL. Names are case-sensitive.
| Parameter | Values | Effect |
|---|---|---|
decryption_key | KID:KEY or comma-separated pairs | Source decryption keys for supported manifests |
ignore_subtitles | 0 or 1 | Ignore manifest subtitle tracks |
segment_with_manifest_params | 0 or 1 | Copy manifest parameters to segment requests |
segment_with_proxy | 0 or 1 | Use the source proxy for segments |
http_proxy | Proxy URL | Override the proxy for this HTTP source |
http_persistent | 0 or 1 | Control persistent HTTP connections |
headers | Name: value\r\nName2: value | Send source HTTP headers |
stream_loop | -1 or non-negative count | Loop a finite source |
language | Language tag | Set language for .srt or .ass input |
Protocol-native parameters are preserved, for example:
srt://source.example.com:9000?mode=caller&latency=120000&streamid=channel-1
udp://239.10.10.10:5000?localaddr=192.0.2.10&reuse=1Keep tokens, headers, proxy credentials, and decryption keys out of screenshots and logs.
Loop a Finite File
To use a local media file as a continuous live source:
- append
?stream_loop=-1to the file source; - enable Rate Emulation so Engine reads the file at media speed;
- start with one Copy output and verify the loop boundary.
Use a non-negative stream_loop value for a finite repeat count. Do not enable Rate Emulation for a normal live source.