Media server
Match
Inputs, outputs and destinations are on the media server. They are all kept while it is off and start again with it. Capture computers reconnect by themselves.
Inputs live—
Outputs active—
Ingress / egress—
Server—
Inputs · bitrate, last 2 min
ManageOutputs · bitrate, last 2 min
Add outputRecent activity
All logsInputs
Add input| Name | Type | Address / source | Status | Bitrate | Bitrate, last 2 min | Outputs |
|---|
No inputs yet. Add one.
Monitor
Preview is off
Monitoring only: re-encoded on the server, a few seconds behind, switches off after 10 minutes. It does not affect the outputs.
Routing matrix
Click a crosspoint to send an input to an outputAdd inputs and outputs first.
Passthrough outputs switch on the next packet and their receivers stay connected; the decoder recovers at the next keyframe. Remux and transcode outputs restart their encoder on the new input (about a second).
Outputs
Add output| Name | Input | Transport | Address / destination | Status | Rate | Bitrate, last 2 min | Dropped |
|---|
No outputs yet. Add one.
Send this computer's capture devices to the server
nothing to install: this page is the agent- Open this page (This computer in the DynaLink menu) in Chrome, Edge or Safari on the computer that has the capture card or camera.
- Name the computer and press Connect. Allow camera and microphone when the browser asks: that is how the page sees the devices.
- On the server (any DynaLink tab, on any computer): Inputs › Add input › Capture device › Detect devices now lists this computer's devices under its name. Add one, and this page starts sending it.
- Keep this tab open and the computer awake while it sends.
Devices on this computer
Press Connect to list them.
The browser sees what the computer offers as a camera or microphone: webcams, USB/HDMI capture devices, and Blackmagic DeckLink / UltraStudio inputs when Blackmagic Desktop Video (with its webcam support) is installed with the card. The test signal is made in this browser, to try the path without a camera.
Sending to the server
Nothing yet. Add an input from this computer on the server.
This page encodes H.264 and AAC with the computer's own encoder (WebCodecs) and uploads each frame as soon as it is encoded, over HTTPS; the server passes the video on as it is, to SRT, platforms and every other output. A slow connection skips ahead to the next keyframe instead of falling behind. Video is progressive 8-bit and sound is stereo. Browsers without WebCodecs send the browser's own recording instead, which adds about a second.
Computers connected to this server
None yet.
Click a camera or capture input to watch it here
Nothing chosen
Each computer that pressed Connect, with its cameras and capture inputs. Click one to watch it in the player: one that is sent to DynaLink as an input plays that input; any other is sent by its computer as a small preview (about 1.5 Mbps, only while you watch). Remove takes a computer off this list with its inputs (not while one of them feeds destinations or shared encodes); it stays off until someone presses Connect on it. A new edge key makes every page fetch the key again (native agents need it re-entered). Run it as an app on a capture computer: open /edge in Chrome or Edge, then Chrome menu › Cast, save and share › Install page as app (Edge: Apps › Install this site as an app). To have it start with the computer: Chrome › chrome://apps › right-click it › Start app when you sign in (Edge: edge://apps › Auto-start on device login). It reconnects and resumes by itself; minimised or behind other windows it keeps sending. Set the computer never to sleep.
Add a destination
Add as many as you need: several YouTube channels, several Facebook pages, any mix of platformsDestinations
| Platform | Name | Source · encode | Status | Sending | Bitrate, last 2 min |
|---|
Pause keeps the connection and sends nothing; Stop releases it (the destination is kept). Each picture comes from a shared encode (H.264 + AAC, a keyframe every 2 s, up to the bitrate chosen), shared by destinations asking for the same quality; it runs while one of them is on and rests when they are all stopped. Logo draws a logo on that encode's picture (every destination using it).
What the platforms need
| Platform | Ingest | Max video | Keyframes | Shape | Where to find the key |
|---|
Every platform takes H.264 video and AAC audio (stereo), progressive, and needs audio on the stream; DynaLink adds silence when the source has none. Stream keys are stored on the gateway and never shown again. The broadcast starts on the platform once data arrives; end it on the platform.
SCTE-35The ad-break marker inside a video stream. DynaLink writes it into its outputs: SRT and UDP (a TS PID), HLS (playlist tags) and RTMP, live platforms included (AMF cue messages).
SCTE-104The ad-break message to an encoder, over TCP. DynaLink sends it to encoders you add, and receives it from playout automation.
Ad break now
immediate, no pre-roll · to every destination ticked belowLength
Override, no length:
stays in the ad break until AD OFF (YouTube needs a length: it gets the length chosen above)
Manual triggers
you trigger the breakSend to one destination, a group, or all of them. Under "Ticked below", tick a source to send to everything that carries it, or tick single destinations. SCTE-35 is inserted into a DynaLink output; SCTE-104 is sent to an encoder.
One click is one event: every destination it goes to gets the same event ID. Pre-roll announces the break ahead of time (SCTE-104 asks for at least 4 s; 0 = immediate).
Groups
the same cue to a set of destinations, in one clickPut destinations that break together in a group, e.g. "India platforms" or "Broadcast feeds". A cue sent to a group is one event for all its members; another group can get a different break, or none. A destination can be in several groups. Quick buttons use the pre-roll set under Manual triggers.
Members
Automatic triggers
playout automation, or a schedule per destination or groupFrom playout automation SCTE-104 in → SCTE-35 out
Its cues go to:
Point the playout automation's SCTE-104 (IP) output at this server and port; each message it sends becomes SCTE-35 in the groups and outputs ticked here (none ticked: every output with SCTE-35 on). SCTE-104 inside SDI (VANC) needs a capture build with DeckLink VANC support, which stock ffmpeg does not have.
Schedules
Trigger log
every cue and which protocol it went out as| Time | Triggered by | Cue | Source | Sent as | To | Event ID | Result |
|---|
No cues yet.
Destinations
which outputs carry SCTE-35 (live platforms included), and which encoders get SCTE-104DynaLink outputs SCTE-35
Encoders / injectors SCTE-104
How the triggers flow
Manual or scheduled, to DynaLink outputs
You, or a scheduleManual / Automatic above
SCTE-35 inserted
by DynaLink
by DynaLink
DynaLink outputsSRT · UDP · HLS tags · RTMP / live platforms
in the stream
Decoders, ad insertersswitch at the marked frame
Manual or scheduled, to an encoder
You, or a scheduleManual / Automatic above
SCTE-104 over TCP
sent by DynaLink
sent by DynaLink
Encoder / injectorinserts SCTE-35 itself
SCTE-35 in its stream
Its decodersswitch at the marked frame
From playout automation
Playout automation(or a switcher)
SCTE-104 over TCP
received by DynaLink
received by DynaLink
DynaLinkturns it into SCTE-35
SCTE-35 inserted
into ticked outputs
into ticked outputs
Decoders, ad insertersswitch at the marked frame
Live platforms get the cue in their stream: over SRT as SCTE-35 on a TS PID; over RTMP, which has no standard for it, as an AMF message in the format chosen per destination (YouTube's cue point for YouTube, Adobe's onAdCue with the full SCTE-35 section otherwise, or Elemental's onCuePoint). Whether a platform acts on it is the platform's choice: see the notes under Destinations.
Graphs
last 5 minutes · 2 s samples
Licence
Logs of each day
kept on the media server for 30 daysNo logs yet.
Performance: while anything is live, a row every 10 seconds: server CPU, each input's bitrate (and the capture PC's frames, skips and upload), each encode's CPU, speed and drops, each output's state and bitrate. The spreadsheet opens in Excel or Google Sheets. Events: every message of the day (inputs going live or lost, destinations connecting, cues, quality lowered to keep up). Times are India time.
Gateway
SRT latency floors are set by the operator (not on this page). SRT uses the higher of the two sides' values, so an encoder or decoder on a poor link raises its own.
Server
Log
last 150 lines, liveRunning now
Events
| When (India time) | Event | Source | Sends to | Runs | Status |
|---|
Events are kept on this dashboard server, never on the media server. Automatic: 15 min before Go Live the media server is switched on (at the event's size) and the event's destinations are made, stopped; at Go Live they start once its source is live (a missing feed is asked for here, and the only live input is taken by itself); at Stop they stop and the media server is switched off, with a countdown 15 min before that and a button to keep it on and switch off by hand. Manual: nothing happens by itself; Run now starts it at once. Logo: set per destination in Edit, or by destination name for every upcoming match; it is drawn when the match runs, so the media server can be off while you choose it. Stream keys are kept here and never shown in full. Times are India time.
Billing
Loading…
Which output for which decoder
| Decoder | Video it decodes | Audio | Use |
|---|---|---|---|
| Haivision Makito X | H.264 Baseline/Main/High, 4:2:0 8-bit only, up to Level 4.2 (1080p60), progressive or interlaced. HEVC only on the HEVC SKU. | AAC-LC 48 kHz; several audio PIDs OK (up to 8 pairs) | Passthrough if the input is H.264 4:2:0 8-bit; otherwise transcode with the Makito X preset |
| Haivision Makito X4 | H.264 up to Level 5.2 and HEVC up to 5.1, 8/10-bit, 4:2:0/4:2:2. No interlaced H.264 (interlaced only from HEVC). | AAC-LC, MPEG-1 L2, up to 16 pairs; PID filtering | Passthrough for most inputs; never choose interlaced H.264 for it |
| Matrox Monarch EDGE D4 / S1 | H.264 only (no HEVC), 4:2:0 8/10-bit, 4:2:2 only at 10-bit, up to Level 5.2. Avoid B-frames with 1080i content. | AAC-LC/HE, stereo pairs, one PID per pair | Transcode with the Matrox Monarch EDGE preset unless the input is already H.264 4:2:0 |
| Matrox Maevex 6152 | H.264 only, up to High 4:4:4, Level 5.2 | AAC-LC/HE, 32–48 kHz | Same as Monarch EDGE |
If a decoder connects but shows no picture
- On the decoder's SRT statistics, confirm it is connected and receiving data. If not: wrong caller/listener pairing, wrong address or port, or firewall.
- Check encryption: passphrase and AES key length identical on both ends.
- Check the SRT latency on the decoder: at least 3–4× the RTT shown here, higher on a lossy link.
- Compare the codec with the table above: HEVC, 4:2:2 8-bit or 10-bit on a decoder that cannot decode it looks exactly like "connected, no video". Use a transcode output with the matching preset.
- Keyframe interval: the decoder can only start on a keyframe. Transcodes here use 1 s.
- Audio must be 48 kHz AAC-LC (or MPEG-1 L2); re-encode the audio if the source differs.
Inputs
- SRT and UDP inputs are relayed bit-exact. SRT listener ports and UDP ports must be open (UDP) in the server's firewall.
- RTMP push listens on a TCP port (1935 upward) that must be open; the stream key is checked and wrong keys are dropped.
- RTMP pull, RTSP, HLS are remuxed to MPEG-TS without re-encoding video (RTSP audio is re-encoded to AAC).
- Capture cards: Blackmagic DeckLink (SDI/HDMI) needs an ffmpeg built with DeckLink support; V4L2 devices (Magewell and others) and macOS devices work with stock ffmpeg. Captured video is encoded at the bitrate you choose.
- Test pattern: colour bars, 1 kHz tone and (where the font library is available) a burned-in clock for measuring delay.