Starter profiles
On first run, Senta automatically creates 8 ready-made profiles - they’re visible on the Profiles page right away. This page walks through each one’s ffmpeg command: what it does, why each flag is there, and when the profile is (or isn’t) a good fit to use as-is.
Common ffmpeg flags
Section titled “Common ffmpeg flags”Before going through the profiles one by one - a table of the flags that repeat across most of them (full list in the official ffmpeg documentation):
| Flag | What it does |
|---|---|
-y | Overwrite the output without asking for confirmation. |
-hide_banner | Don’t print ffmpeg’s build/version banner at startup. |
-re / -readrate 1 | Read the input at its own (real) speed instead of as fast as possible - needed so a file can be streamed like a live source. |
-stream_loop -1 | Loop the input file - start over from the beginning once it ends, forever. |
-map 0:0 -map 0:1 | Explicitly include tracks 0 (video) and 1 (audio) from the input - a safeguard in case ffmpeg would otherwise pick the wrong tracks. |
-c:v, -c:a | Video and audio codec respectively. copy means “pass the stream through unchanged, no re-encoding.” |
-b:v, -b:a | Target video and audio bitrate. |
-preset fast | Speed vs. compression-efficiency tradeoff for software encoders (libx264/libx265) - fast trades a bit of quality/size for encoding speed. |
-profile:v main | The H.264 Main profile - a good balance of player compatibility and quality. |
-filter:v yadif | Deinterlacing - removes interlacing artifacts from sources that were shot interlaced. |
-forced-idr 1 | Makes the encoder (relevant for NVENC) emit full IDR frames at keyframe points instead of lightweight I-frames - matters if the stream gets segmented later (HLS/DASH) or switched between sources. |
-r | Output frame rate. |
-g | GOP size - the interval between keyframes, in frames. |
-keyint_min | Minimum interval between keyframes. |
-f mpegts | Output container format - MPEG-TS. |
-gpu | Index of the NVIDIA GPU to use for NVENC hardware encoding. |
${i} / ${o} | The standard input/output variables - see Variables. |
HD h264 (ID 1)
Section titled “HD h264 (ID 1)”ffmpeg -y -hide_banner -i ${i} -map 0:0 -map 0:1 ${cv} ${gpu} -preset fast -profile:v main -filter:v yadif -forced-idr 1 -b:v 4M -c:a aac -b:a 128k -r 25 -g 8 -keyint_min 13 -f mpegts ${o}WHERE[ { "desc": "gpu", "data": { "name": "GPU", "description": "Select GPU which stream will use, set empty if you don't use GPU", "command": "-gpu $value", "default": "" } }, { "desc": "cv", "data": { "name": "Video codec", "description": "To copy original codec set copy", "command": "-c:v $value", "default": "", "extension": { "type": "select", "options": ["h264_nvenc", "libx264", "libx265", "hevc_nvenc", "libaom-av1", "libvpx", "libvpx-vp9", "copy"] } } }]HD transcoding at a 4 Mbps bitrate. When creating a stream, you can pick the video codec from a dropdown - hardware (h264_nvenc, hevc_nvenc), software (libx264, libx265, libaom-av1, libvpx*), or just copy to skip re-encoding video entirely - as well as which GPU to use for transcoding.
- Pros: the most flexible of the starter profiles - the codec is chosen right when creating the stream, no need to edit the profile itself.
- Cons: deinterlacing (
yadif) and the GOP settings are baked into the profile, not exposed as variables - if the source is progressive or you need a different keyframe interval, you’ll need to copy and edit the profile by hand.
SD h264 (ID 2)
Section titled “SD h264 (ID 2)”ffmpeg -re -y -hide_banner -i ${i} -map 0:0 -map 0:1 -c:v h264_nvenc -gpu 0 -preset fast -profile:v main -filter:v yadif -forced-idr 1 -b:v 1M -c:a aac -b:a 128k -r 25 -g 8 -keyint_min 13 -f mpegts ${o}The same set of flags as HD, but with a fixed 1 Mbps bitrate and no variables - the codec (h264_nvenc) and GPU (0) are baked directly into the command.
- Pros: minimal setup - ready to use right away if you have an NVIDIA card with NVENC.
- Cons: won’t run at all without a GPU that supports NVENC; changing the codec or GPU index means editing the command directly.
SD+HD h264 (ID 3)
Section titled “SD+HD h264 (ID 3)”ffmpeg -re -y -hide_banner -stream_loop -1 -i ${i} -gpu 1 -r 30000/1001 -g 8 -keyint_min 13 -preset fast -profile:v main -filter:v yadif -forced-idr 1 -c:v h264_nvenc -b:v 4M -c:a aac -b:a 128k -f mpegts ${o} -r 30000/1001 -g 8 -keyint_min 13 -preset fast -profile:v main -filter:v yadif -forced-idr 1 -vf scale=568:-1 -c:v h264_nvenc -b:v 1M -c:a aac -b:a 128k -f mpegts ${o}A single ffmpeg process with two outputs at once: a full-resolution stream at 4 Mbps, and one scaled down to a width of 568px (-vf scale=568:-1 - the height is computed automatically to preserve the aspect ratio) at 1 Mbps. When creating a stream from this profile, Senta shows two fields - Output #0 and Output #1, for the full and the downscaled variant respectively.
- Pros: one command instead of two separate streams - saves decoding the input twice (it’s decoded once for both outputs).
- Cons: heavier GPU load (both variants are encoded at once), hard-tied to NVENC,
-gpu 1- the GPU index is baked into the command rather than exposed as a variable.
ACC (ID 4)
Section titled “ACC (ID 4)”ffmpeg -readrate 1 -y -hide_banner -stream_loop -1 -vcodec copy -acodec aac -i ${i} ${o}Copies the video without re-encoding and converts the audio track to AAC - useful when the source audio is in a format not supported by a player or CDN (AC3, for instance) and you don’t want to re-encode video.
- Pros: barely touches CPU/GPU - only the audio gets re-encoded.
- Cons: the AAC bitrate isn’t set explicitly, so ffmpeg’s default applies, which can be surprising; if the source audio is already AAC, this profile isn’t needed.
Logo adding (ID 5)
Section titled “Logo adding (ID 5)”// Add a logo to the videoffmpeg -i ${i} ${logo} -filter_complex "[1][0]scale2ref=oh*mdar:ih*0.2[logo][video];[video][logo]overlay=(main_w-overlay_w)-${x}:${y}" -y ${o}WHERE[ { "desc": "logo", "data": { "name": "Logo path", "description": "Print the path to the image file with the logo", "command": "-i $value", "default": "" } }, { "desc": "x", "data": { "name": "Shift along the X axis", "description": "Offset from the top right corner along the X axis", "command": "$value", "default": "" } }, { "desc": "y", "data": { "name": "Shift along the Y axis", "description": "Offset from the top right corner along the Y axis", "command": "$value", "default": "" } }]Overlays an image (the logo) onto the video. scale2ref first scales the logo to match the video’s height (ih*0.2 - 20% of the frame height, width computed automatically by scale2ref to preserve the logo’s aspect ratio), then overlay places it with an x/y offset from the frame’s top-right corner.
- Pros: the logo path and position are set through variables, no need to touch the command itself.
- Cons: the command has no
-c:v/-c:aor-f- ffmpeg infers the output format from${o}’s file extension (e.g.output.ts); if the destination is a network address with no extension (udp://...), you’ll need to add a format yourself, e.g.-f mpegts. The logo can only be anchored to the top-right corner - a different position means changing theoverlayformula.
Remove sound (ID 6)
Section titled “Remove sound (ID 6)”// Remove sound from videoffmpeg -i ${i} -an -c:v copy ${o}Strips the audio (-an - no audio) and copies the video stream unchanged.
- Pros: near-instant - the video isn’t re-encoded.
- Cons: since the video is a plain copy, this profile won’t work if you also need to change to a container/codec incompatible with the source.
SIMPLE TESTCARD (ID 7)
Section titled “SIMPLE TESTCARD (ID 7)”// Simple testcard with 8 color bars and 1kHz tone// You don't need any input file, just run itffmpeg -re -f lavfi -i pal100bars=size=1920x1080:rate=25 -c:v libx264 -g 12 -b:v 2M -f mpegts ${o}Generates a test pattern - PAL color bars - via ffmpeg’s built-in lavfi source, with no input file at all.
- Pros: doesn’t need a real video source - you can verify Senta → network → player in a minute.
- Cons: resolution, bitrate, and frame rate are baked into the command, not exposed as variables.
Static file streaming (ID 8)
Section titled “Static file streaming (ID 8)”// Streaming a static fileffmpeg -re -stream_loop -1 -i ${i} -vcodec mpeg4 -aspect 16:9 -f mpegts ${o}Loops a local file to simulate a live source - this is the exact profile used in the Quick Start example.
- Pros: the simplest way to turn any file into a continuously running test stream.
- Cons: the codec (
mpeg4) is dated compared to h264/h265 and less bitrate-efficient; the aspect ratio is fixed at 16:9 regardless of the actual video.