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>.
YouTube Sources After a Restart
The management page and other sources can become ready while YouTube support is still starting. YouTube source checks and Streams wait for that preparation to finish.
Changed in Engine 1.0.1+
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.