Skip to content
Source Protocols and URL Options

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

SourceUseExample
HTTP/HTTPSHLS, DASH, Smooth Streaming, or HTTP-TShttps://source.example/live/index.m3u8
UDP/RTPUnicast or multicast transport streamudp://239.10.10.10:5000?localaddr=192.0.2.10
RTSPCamera or contribution sourcertsp://user:password@source.example:554/path
RTMP/RTMPSExisting RTMP publisherrtmp://source.example/app/name
SRTReliable contribution over an unreliable networksrt://source.example.com:9000?mode=caller&latency=120000
TCPRaw TCP contributiontcp://source.example:9000
DVBService discovered by an Engine Adapterdvb://server=1&adapter=2&sid=101
Local RTMP publishLet a publisher such as OBS push into Enginertmplocal://a-unique-token-at-least-16-characters
Video captureV4L2 video with an optional ALSA inputv4l2://v4l2=/dev/video0&alsa=auto
Local fileFile readable by the selected server/data/input.ts

Add Sources

  1. Put the preferred URL first and backup URLs below it. Engine tries them in that order.
  2. Prefix a saved URL with # to skip it without deleting it.
  3. Start with Copy video/audio and one output.
  4. 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:

FieldEffect
HTTP User AgentSets the request User-Agent
HTTP RefererSets the request Referer
HTTP HeadersAdds headers; separate lines with literal \r\n
ProxyTries the selected Engine proxy definitions
HTTP Local AddressBinds 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=1

Engine removes recognized Engine options before opening the source. Unrecognized parameters remain in the upstream URL. Names are case-sensitive.

ParameterValuesEffect
decryption_keyKID:KEY or comma-separated pairsSource decryption keys for supported manifests
ignore_subtitles0 or 1Ignore manifest subtitle tracks
segment_with_manifest_params0 or 1Copy manifest parameters to segment requests
segment_with_proxy0 or 1Use the source proxy for segments
http_proxyProxy URLOverride the proxy for this HTTP source
http_persistent0 or 1Control persistent HTTP connections
headersName: value\r\nName2: valueSend source HTTP headers
stream_loop-1 or non-negative countLoop a finite source
languageLanguage tagSet 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=1

Keep 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:

  1. append ?stream_loop=-1 to the file source;
  2. enable Rate Emulation so Engine reads the file at media speed;
  3. 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.