TEASEDocs
Guides

Stream scene

The frame is no longer "whole screen". Put your laptop camera as a corner inset over the phone feed, crop the edges, and build a vertical frame for TikTok next to the wide one for Chaturbate — without OBS.

Until now the frame was a single source at full screen: whatever the phone sent is what reached the platforms. The scene makes the frame explicit — you can put the laptop camera as an inset over the phone feed, crop the edges away, and build a vertical frame for platforms that want one.

The scene lives in the Stream tab — the Scene rail on the left, next to the frame.

The studio: frame in the middle, chat on the side

The Stream tab is laid out like a familiar broadcast desk:

  • left — Scene: the scene list, that scene's layers and a single "+";
  • middle — Frame: the big incoming-feed window, and the work surface at the same time — layers are dragged right on the picture the viewer will see;
  • under the frame — the console: "Go live", "Record";
  • right — Chat and the fan Dossier.

Any block can be undocked (the icon in its header) — it then floats above everything, drags by its header and resizes by its corner. The layout is remembered. The "собрать студию" button in the bottom-right corner puts everything back.

While you are live the frame is outlined in red and layer boxes fade to a thin contour: what matters then is the picture, not the markup.

Layer settings take over the right-hand side

Clicking a layer row (or double-clicking it on the frame) puts the studio into edit mode: the settings panel takes the place of chat, dossier and console.

  • "Сохранить" — apply the scene and leave;
  • "Выйти" — close the settings, the edit stays a draft.

Settings live in two places, split by the question they answer:

  • on the right — what we show: text, file, deck cards, button captions;
  • below, full width — how it looks and behaves: look, motion, "how often it appears", opacity, fit, cropping, object style.

Not a cosmetic choice. Landing objects carry as many controls as the constructor does (style, gradient, shadow, rotation), and they do not fit the narrow column: the page used to stretch and jump under the cursor. The studio now occupies exactly the screen, and every block scrolls on its own.

Which sections the bottom strip shows depends on the layer kind — only what that layer can actually do. A camera, for one, has no "look": a video stream has neither letter colour nor backdrop, so there is nothing to paint.

The frame diagram

Inside the panel there is a rectangle for the layout and the layers in it:

  • drag the rectangle to move it;
  • drag a corner or edge to resize;
  • the list on the right is the order: higher in the list means higher in the frame.

The live picture belongs in the preview window — it plays the composed frame, exactly what the viewer sees. The diagram answers a different question: what sits where.

An empty scene is fine

As long as the scene is one source at full frame, your stream reaches the platforms as a byte-for-byte copy: we re-encode nothing, and the platform gets the picture exactly as your phone sent it. That is the default behaviour.

The inset: camera over phone

In the rail press "+" → "Живой источник". A rectangle appears in the corner.

Set its source to "Камера браузера" — the layer settings now hold a live preview, the list of cameras and the list of microphones.

Press "Включить камеру", pick the devices and press "Сохранить устройство" — next time this camera turns itself on.

Place and size the inset.

Press "Apply".

Picking a camera starts nothing

It is a setting, not a broadcast: the picture is yours alone, not a byte leaves the browser. Publishing begins when you press "В эфир" on the pult — the studio has exactly one air button.

The device choice has its own Save

It sits in the camera block, not in the settings header: camera and microphone are a fact of YOUR browser, not of the scene, and there is no reason to ship them into the scene (another laptop has other devices). The header's "Save" answers for the scene — with no pending edits it honestly reads "Сохранено".

The encoder address (RTMP)

The second source is "RTMP": a phone with Moblin, OBS, Larix, any encoder. Pick it in the same "Живой источник" layer and the address with the key opens under the frame — where other layers keep their look controls. Copy the string into the app and you are done.

The address is permanent: the receiving box may change, the string on the phone will not. Only the key changes, and only when you change it yourself.

The source called "Whoever is on air" is special: it is the feed that is currently going out to the platforms. It stays correct when you go live from the phone today and from the camera tomorrow — nothing to reconfigure.

Images and video in the frame

A layer is not only a live source. "Image" and "Video" take a file from your Media gallery (Design → Media gallery) — the same library you pick teasers from. Upload once, use it on the landing page and on air.

What people actually build with it:

  • a logo or a frame — a transparent PNG in the corner. Transparency survives: the image sits on the video with no black box around it;
  • a "back soon" standby — an image or a short video at full frame. The stream never stops: the audio stays live while the viewer sees the card. Remove the layer and the picture is back.

The file on air is not the file in your library

We prepare a separate copy for the frame: images up to 1920 px, video as a short muted loop up to 12 seconds and 1080 px. Otherwise a 4K clip shot on a phone would cost the server as much as the rest of the stream. The first time you go live after adding a file may take a couple of seconds longer — the copy is built once.

Video layers are always muted and looped: the audio on air is the live source, and two soundtracks at once mean the viewer hears neither.

Caption and timer

"Text and timer" is a live line drawn straight into the frame: your name, the rules, a goal, "back soon". The inspector holds the line itself, its colour, a plate behind it, and the time:

  • "How long the stream has run" — counts up;
  • "Countdown" — from the minutes and seconds you set, down to zero (never below).

The {таймер} token marks where the time goes in the line; without it the time is appended at the end.

The count starts when the frame does

The timer counts from the moment the frame was composed, not from "I pressed the button yesterday". So editing the scene, or your phone reconnecting, restarts it — visibly and by design.

The caption is drawn on the scene diagram at the same size and colour it will have on air, so there is no guessing.

What can go into the frame

The "+" button is the only way in, and behind it a drop-down list:

ItemWhat it is
Живой источникRTMP (phone, OBS, any encoder) or the browser camera — full frame or an inset; the address with the key opens right below the frame
Картинкаa file from the Media gallery over the frame
Видеоa clip on loop, muted (up to 12 seconds)
Текст и таймерa live line: air time or a countdown
Онлайнa live viewer counter (see below)
Тизерthe landing teaser tile with its full style header
Колодаthe landing deck — in the frame it flips through itself
Уведомлениеthe landing banner: avatar, line and a "link", slides in from the left
Виджет: липкая кнопкаthe landing sticky CTA bar — it calls to action right inside the frame

Why there is no Caption / Photo / Icon / Shape object

They would duplicate the live "Текст" and "Картинка" layers — only worse: a baked caption cannot tick. Icon and shape are landing decorations with no job in a broadcast frame. And the "247 online" badge was a plain lie on air, so a real counter replaced it.

Why the landing countdown widget is not offered

The landing countdown keeps its deadline per visitor, in their own browser. Baked into the frame it would freeze at the value it was captured with — a clock that does not run. A countdown that really ticks on air already exists: the "Текст и таймер" layer in countdown mode.

Landing objects in the frame

Teaser, deck and notification carry the constructor's full style header: fill and gradient, opacity, radius, border, shadow, rotation, backdrop blur — and the same inspector as the landing canvas.

The deck flips through itself. The viewer has no scroll, so instead of "stick" and "spines" it has one knob: seconds per card.

The notification slides in from the left, holds and leaves, over and over. No sound, no click-through: an overlay cannot be clicked.

What you see on the frame is what goes on air

Objects are drawn by the very page the server screenshots for the broadcast. This is not a "similar preview": the panel and the air run the same landing code.

How it reaches the video. Objects are baked into a transparent picture that is laid over the frame. Therefore:

  • edits show up in the panel instantly and on air after Apply;
  • objects carry no clock: a ticking timer is the separate "Caption and timer" layer, which is live;
  • motion (deck, notification) is built as a loop: a still frame goes on air first, and a minute or two later the moving one replaces it — building the loop takes tens of seconds and runs in the background;
  • there is no video object: a baked clip would be a freeze frame. For live video use the "Video" layer.

Cropping

The layer inspector has "Crop the source": four fields in percent of the original picture. That is how you drop unwanted edges, and how you get "closer".

Percent rather than pixels on purpose: the phone may send 720p instead of 1080p, and a crop in percent survives that.

Its own layers for every platform

At the top of the rail there is a scene list: "Общая" plus one per armed platform. What is allowed on your own page gets you banned on a cam site, so these are different sets of layers, not one set with caveats.

  • The shared scene is composed into the frame: sources, insets, media and captions live there, and every platform receives it.
  • A platform scene is laid over the finished frame for that platform only. It takes everything the shared scene takes except a live source inset: a ticking caption, a countdown, the viewer counter, a photo, a clip, landing objects.

Live on a platform is really live

A caption, a timer and the viewer counter on a platform keep ticking instead of freezing into a picture: that platform's frame is built by the same engine as the shared one. Platform scenes used to be baked into a single snapshot, which would have frozen anything live — that is why the "+" menu there used to be four times shorter.

A camera inset is deliberately absent: the same stream would have to be decoded again for every platform, and "six platforms cost the same as one" would stop being true. The inset lives in the shared scene — there is one source on air.

Disabled platforms stay in the scene list, marked "выкл". Otherwise their layers would be unreachable — neither viewable nor clearable — and would ride into the frame the moment the platform is switched back on.

The price stays honest: an empty platform scene changes nothing (the platform gets a byte copy), a non-empty one re-encodes that platform alone — and the chip says exactly that.

A platform has exactly one overlay

If a platform has its own studio layers, the old caption from its settings no longer goes on air — the caption designer says so itself.

A vertical frame per platform

The layout is chosen in the platform's own settings (the "Куда вещаем" card), and only where vertical is native: TikTok, Instagram Live, Telegram. Cam sites and subscription platforms have a horizontal room — 9:16 would give them black bars for the price of a separate encode, so the server refuses that choice.

As soon as one platform goes vertical, the scene list gains "Общая 9:16" — its own scene, not a crop of the wide one. Two vertical platforms share it.

A vertical frame costs its own encode

The wide and the vertical frame are composed by two separate processes on our server. Give the vertical layout only to the platforms that actually need it.

Who is in frame when both sources are live

The "В кадре: Решай сам · Приложение · Камера" pills appear in the cockpit exactly when the app and the browser camera are broadcasting at the same time. One source — nothing to choose, no pills.

  • Решай сам (default) — whoever publishes is in frame.
  • Приложение / Камера — a hard choice: this source goes to the platforms even while the other one is live.

The choice is one per broadcast, not per platform: two sources at once would mean two different shows. It also decides whose AUDIO the viewer gets — so "why can't they hear me" is fixed here, not by switching a source off at random.

Online: how many are watching right now

The "Онлайн" layer is an ordinary line with an {онлайн} token; the server substitutes the number on every reconcile. You can add the token to any text:

The number updates during the broadcast, every ten seconds, and the frame does not blink: the line lives in a file and the caption re-reads it by itself. Go live at zero and the number catches up instead of staying zero all night. Смотрят {онлайн}.

The number adds up honestly:

  • where the platform reports its viewer count, we take its number (today Chaturbate does);
  • where it does not, we count unique people seen in chat over the last five minutes. That is knowingly lower than the real audience: lurkers are invisible.

The "Эфир сейчас" card shows the split per platform and where each number came from. Your own lines are excluded — otherwise you could inflate your own audience just by typing in chat.

Zero viewers and nothing to count are different things

While no platform chat is connected the counter shows 0 and says so plainly: we are not looking anywhere — which is not the same as "nobody is watching". Only platforms whose room we actually read are counted.

Layer look and motion

Below the frame, across the full width of the studio, sits the "Оформление · Движение" strip — it appears whenever layer settings are open.

Look — four ready-made styles: Стекло (glass), Неон (neon), Плотный (solid), Без подложки (no backdrop). A click restyles the selected layer; the "ко всем слоям сцены" checkbox spreads it across the whole scene so the frame reads as one piece. A preset is not "remembered": it simply sets the same fields you can then tweak by hand.

Motion — how the layer lives in the frame:

MotionWhat it doesAvailable to
Паритdrifts up and downevery layer
Качаетсяthe same, side to sideevery layer
Мерцаетbreathes with opacitycaptions and objects
Дышитscales up a little and backobjects only
Выезжает и уходитslides in from the left, holds, leavesobjects only

The "Цикл" slider sets the full round trip (1–20 seconds).

Why the motion list differs per layer

A live frame is composed in real time, and its motion is drawn by the server as a formula inside the frame coordinate. That is free, but it only expresses a shift (plus opacity for captions). Scaling and sliding are drawn by the browser, which is why objects have them: objects reach the air as a ready-made loop.

The bottom live layer does not drift

The bottom layer is the frame's background and the server lays it out motionless. The panel says so outright instead of pretending the setting applied. Move the layer up, or put the motion on a layer above it.

Letter styling: depth, neon, shine

The "Текст и таймер" layer gets an "Оформление букв" section in the same bottom strip — five styles plus a shine toggle:

StyleHow it looks
Плоский (flat)plain letters in their own colour
Контур (outline)dark outline: readable over anything, even bright skin
Тень (shadow)a soft offset shadow that lifts the letters off the frame
Объём (depth)letters extrude into a darker shade of THEIR OWN colour
Неон (neon)a glowing tube: soft halo outside, bright core inside

The "блик пробегает по буквам" checkbox adds a highlight that sweeps across the caption every three seconds. It combines with any style — "depth + shine" is the common pick.

It costs the frame nothing

The styling is drawn with the same letters as the caption itself, just in several passes — no baking, no extra input, no added delay. The shine is computed over the area of the CAPTION rather than the frame, so it is nearly free too.

The extrusion shade comes from the caption's own colour, never black: a black shadow under a coloured caption reads as dirt. All of it works together with motion and scheduling — the shine hides along with the caption.

How often a layer appears

Section "Появление" in the same bottom strip. By default a layer hangs in the frame for the whole broadcast; the "появляется по расписанию" checkbox turns on two sliders:

  • "Каждые …" — the period, from 5 seconds to 10 minutes;
  • "Держится …" — how long the layer is visible inside that period.

That is how you build "the notification pops up once a minute" or "the link banner shows for 10 seconds every three minutes" — any promo that should not hang around all the time. Such a layer gets a "6 с каждые 30 с" caption in the list, otherwise it would look like it had vanished from the frame.

The schedule costs nothing

Between appearances the server simply does not draw that layer — no re-composition, no extra load. Even landing objects are not re-baked: the ready-made picture is what gets hidden.

The bottom live layer cannot be hidden

It is the frame's background: hiding it means showing the viewer black. The panel says so plainly. Lift the layer above the live source instead.

Your source is visible BEFORE you go live

The browser camera shows up in the big frame the moment it is switched on — long before anything is sent anywhere. The frame carries a yellow "локально" (local) chip: only the model sees this, nothing has reached the box yet. Going live is still the cockpit's job.

Once the box starts receiving, the local frame steps aside and the real incoming picture plays — otherwise the screen would show two frames a second apart.

When there is no picture at all, the hint follows the scene: a camera in the scene says "switch the camera on in its layer settings", RTMP says "start the broadcast in your app", an empty scene says "add a live source".

The saved camera may not exist on this machine — the webcam got unplugged, or she sat down at a different laptop. We then take whatever device is available, erase the dead choice and say so in an amber line. Next to it there is "забыть устройство" (forget device) for going back to "let the browser decide".

Delete the camera layer and the camera goes off. The laptop light dies with the layer; no separate button for it. On air it works differently: while the edit is unapplied the live inset keeps running (a stray click must not cut the broadcast), and the camera is released on "Применить". Switching scene tabs (a platform, the vertical frame) never touches the camera.

The preview window: under a second of delay

The frame in the middle of the studio plays over WebRTC, the same way a video call works: a fraction of a second of delay, so you fix the light and see it immediately.

If the network cannot make a direct connection (corporate and some mobile networks), the window falls back on its own and says so with a "запасной путь" chip. Delay there is a few seconds — the price of the detour, not a fault.

Viewer delay is a different story

This window shows what leaves OUR box. From there the stream goes to the platforms, and each adds its own delay — usually 5–30 seconds on cam sites and Twitch, and that part is not ours to control.

The cockpit under the frame says it plainly: "до площадки <1 с · зритель +5–30 с". The first number is ours, measured on the box; the second is the platform's own buffer.

Six platforms cost the same as one. The frame is composed once and fanned out as a byte copy — measured on six targets, the delay was the same as on one.

What "Apply" does

The frame is composed once and fanned out to every platform on that layout. So five platforms cost no more than one — but re-composing the frame is visible to the viewer as a brief stutter.

That is why edits are not saved automatically: build the whole scene, then press Apply once. Until you do, the stream keeps running on the previous scene, and the text next to the button says so plainly.

If there is no signal at the moment you save, the panel says "Will apply once the signal arrives". The scene is already stored — it ships with the next publication.

The "Re-composing" / "No re-encode" chip

At the top of the panel, an honest answer to "will this hurt my picture?":

  • No re-encode (green) — the scene changes nothing, the stream is copied byte for byte;
  • Re-composing (amber) — we decode and encode the frame on the server. That is how the inset, the crop and the vertical frame work; there is no other way to build them.

What the scene cannot do yet

  • web widgets by URL (tip alerts, goal counters, tickers) — that is the next step;
  • audio from the inset or from a video layer — audio always comes from the source that is on air;
  • the constructor's own animations: a landing button's "pulse" does not travel to the air — layer motion is set in the "Оформление · Движение" strip, and that set is its own;
  • long videos: a layer takes the first 12 seconds and loops them.

Captions and chat widgets still live in their own editor — overlays. They are placed on top of the composed frame, so the scene does not break them.

On this page