Stream Profiles
Transcoding/output presets (the equivalent of TVHeadend stream profiles) that can be attached to a package or forced onto an individual client. A profile decides container, codecs, resolution, bitrates and encoder preset — or leaves the stream untouched.
On this page
Read the page (2.9.381)
Profiles are grouped by what they cost the server: Original (copy · copy, no re-encoding, no extra load), Graphics card (NVENC, QSV, VAAPI or AMF: light, but the card handles only a few at once) and Processor (one encode per viewer on the server). Each row shows Video · audio, Picture, Used by (accounts that picked it in the app and are not forced onto another, accounts you forced onto it, packages that use it and, in amber, who is watching on it right now; "Nobody" when no one) and its Enabled switch. The chips at the top show the default for everyone, the re-encodes running now (on the processor and on the graphics card) and how many accounts are on a re-encoding profile.
Switch profiles on or off (2.9.381)
Click a row's Enabled switch: it changes at once. To change several, tick their boxes (or "Select all" on a group): the selection bar offers Enable, Disable, Delete, Make default (exactly one enabled profile) and Clear selection. Disable, Delete and Make default ask first, in the page, with the sum of who is affected: the accounts on those profiles play their next choice (forced, picked, package) or the default from their next channel, and a viewer already watching keeps the current channel. A disabled profile disappears from the app's Stream quality list. The default profile is always on (its switch is locked) and can't be disabled or deleted; Passthrough is always on too, because every account falls back to it; built-in profiles can be disabled but not deleted. Switching off works on every licence. On a phone the profiles are cards: tap Select to tick them.
Add or edit a profile (2.9.381)
"Add profile" (or ✎ on a row) opens a side window. Start from a template, Original, Graphics card or Processor, then set the Name, a Description (for you and your staff: the app shows only the name), Picture size, Picture bitrate, Sound and Enabled (a new profile starts off). "Advanced (ffmpeg)" holds the rest: Video encoder (copy / libx264 / libx265 / h264_nvenc / hevc_nvenc / h264_vaapi / hevc_vaapi / h264_qsv / hevc_qsv), Container, Preset, Video profile, Frame rate, GOP, Scale mode, Audio channels, Sound bitrate, Deinterlace and Extra arguments. A value set outside these lists is kept. The default is chosen with Make default in the selection bar.
Apply a profile to subscribers
Per package: Packages → "Package Stream Profile". Per subscriber: Clients → Edit User → "Transcode Profile" (blank = Package/System Default). Resolution order at stream time is client override → the subscriber's own preference (if they set one in the app) → package profile → the Default profile.
Restore the built-ins (2.9.381)
"Restore defaults…" first shows what would change: built-in profiles that are missing are added back, and Passthrough is set back to copy · copy and always on. Your own profiles are not touched, and a profile you disabled stays disabled. "Restore" then adds them.
Extra ffmpeg arguments are checked (2.9.490)
Advanced > Extra arguments takes encoder and container tuning only (for example -tune zerolatency, -g 50, -x264-params keyint=50, -vf yadif,scale=1280:-2). Anything that names an input, an output, a file, a format or a protocol (-i, -f, a file name, drawtext textfile=, movie=, -progress ...) is refused when you save, with the refused words; a profile saved earlier has those words left out when it plays. Only an admin can change these arguments; staff see them read-only.
Watch out
- Creating or editing a profile needs the Business licence (custom transcoding). On Free and Pro the built-in profiles are what you get: "Restore defaults…", the Enabled switches, the selection bar and assigning an existing profile to a package or client still work.
- A profile with Status = Disabled is skipped silently at stream time and the resolution falls through to the next level (package, then Default). Disabling a profile is therefore not a way to block anyone — it just re-routes them.
- Only the app/XC and MAG/Stalker paths resolve a per-client or per-package profile. The admin/token playback path used by the personal M3U always uses the Default profile, so a per-user profile will not apply there.
- Delete in the selection bar (2.9.381) also takes the profile off every account that picked it or was given it and off the packages that use it: they play the default profile.
- The nav item is shown to staff with the "Manage Stream Profiles" permission, but the create/edit/delete/restore endpoints require the Manage Settings permission. Staff with only manage_profiles can open the page and see profiles yet every save fails with 403.
- Make default (2.9.381) moves the default flag: there is exactly one default, and it is what every unassigned client and the M3U path use.
- H.264 (libx264) profiles run on the graphics card (2.9.363): when the server has an NVIDIA card whose NVENC works, a libx264 profile is encoded as h264_nvenc with its own bitrate, resolution, scale mode, frame rate, GOP and audio. Its Preset becomes the NVENC preset of about the same speed (ultrafast p1, superfast p2, veryfast and faster p3, fast and medium p4, slow p5, slower p6, veryslow p7), and x264-only FFmpeg Extra Args are adjusted:
-tune zerolatencybecomes-tune ll;-x264-params,-x264opts,-crf,-refs, a second-c:v libx264and the other x264 tunes are left out. The profile itself is not changed and still shows libx264. A server without an NVIDIA card encodes it with libx264 on the processor, as before. With NVENC on the server, a libx264 profile is never sent to a Fleet node (a node would encode it on its processor). A live transcode of a source only the server itself can open (127.0.0.1, localhost, a file) always runs on the server, never on a Fleet node.