Streaming & recording scene composition
Build scenes, sources, audio and outputs for a stream or recording.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- OBS Studio · Streamlabs · vMix
- Class GUI-need label
HY· Hybrid
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R06.12.01.01-T01 Build Starting Soon, Live and BRB scenes to a layout spec
Original instruction
In OBS Studio create scene collection 'Weekly Stream' at 1920x1080 with scenes Starting Soon (image bg/starting.png + countdown text), Live (Display Capture full frame, webcam 'Cam' 480x270 at bottom-right with 24 px margin, overlay/frame.png on top) and BRB (bg/brb.png + muted mic). Set the default transition to Fade 300 ms.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropgeom· Precise geometryclick· Point & click- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Parse basic/scenes/Weekly_Stream.json: 3 scenes with listed sources and z-order; Cam bounds 480x270 at (1416,786)±2 px; frame.png topmost; BRB mic muted; transition Fade 300 ms. Comparison with control pair T17 output.
Proposed partial credit
25% scenes and sources; 35% Cam geometry; 20% z-order and mute; 20% transition
R06.12.01.01-T02 Configure multitrack 1080p60 recording and remux to MP4
Original instruction
In OBS Studio (Advanced output mode) set recording to MKV, 1920x1080 at 60 fps, hardware or x264 encoder at 12 Mbps CBR, keyframe 2 s, with audio tracks 1 = mix, 2 = Mic only, 3 = Desktop only. Record 10 s of scene Live, then remux it to recordings/test_rec.mp4.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
ffprobe test_rec.mp4: 1920x1080, 60 fps, video bitrate 12 Mbps ±10%, GOP 120, 3 audio streams. Track 2 correlates with mic test tone only, track 3 with desktop tone only. profile basic.ini fields match.
Proposed partial credit
25% video settings; 35% three tracks routed correctly; 20% recording exists; 20% remuxed MP4
R06.12.01.01-T03 Build a broadcast mic filter chain to loudness spec
Original instruction
In OBS Studio, on audio source 'Mic' (fed by a looping test voice file through a virtual device), add filters in order: Noise Suppression (RNNoise), Compressor (4:1, threshold -18 dB, attack 6 ms, release 60 ms), Gain, Limiter (-1 dB). Tune Gain so a 30 s recording of Mic alone integrates to -16 LUFS ±1. Save recordings/mic_check.wav.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
AP· API-sufficient- Interaction primitives
click· Point & clickav· Audio/video over time- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Scene JSON filter list order and params exact. mic_check.wav: integrated loudness -16±1 LUFS, true peak ≤ -1 dBTP, noise floor in silent gaps ≤ -60 dBFS (noise suppression active).
Proposed partial credit
30% filter order; 20% compressor params; 35% loudness target; 15% peak and noise floor
R06.12.01.01-T04 Key out a green screen webcam cleanly
Original instruction
In OBS Studio the source 'GreenCam' plays fixtures/greenscreen_take.mp4 (person on uneven green). Add Crop/Pad and Chroma Key filters and tune similarity, smoothness and spill reduction so the person is cleanly keyed over bg/office.png, with no green halo and hair kept. Record 10 s to recordings/key_test.mkv.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentclick· Point & clickdrag· Drag & drop- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Compare recording with GT alpha mattes for sampled frames: foreground IoU ≥0.95; residual green pixels (hue band) in composited background ≤0.3%; spill: mean g-(r+b)/2 in edge band ≤ threshold. Filter params exist in scene JSON. obs-websocket is disabled, no Lua/Python scripts may be loaded (Tools > Scripts list checked), and scene JSON writes by other processes are caught by a file-write audit.
Proposed partial credit
45% key IoU; 25% no residual green; 20% spill suppressed; 10% recording
R06.12.01.01-T05 Stream to a local RTMP test server with platform-compliant settings
Original instruction
In OBS Studio configure a Custom stream server rtmp://127.0.0.1/live with key test_key, 1920x1080 at 30 fps, CBR 6000 kbps, keyframe interval 2 s, AAC 160 kbps 48 kHz. Go live with scene Live for 60 s, then stop.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
AP· API-sufficient- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Local nginx-rtmp records the ingest: ffprobe shows 1920x1080, 30 fps, video bitrate 6000 kbps ±10%, keyframe spacing 2.0 s, AAC 160 kbps 48 kHz; stream duration 60±5 s; service.json has the server and key.
Proposed partial credit
20% server config; 40% encoder settings verified at ingest; 25% audio; 15% duration
R06.12.01.01-T06 Reuse an overlay via nested scenes and add scene hotkeys
Original instruction
In OBS Studio create scene 'Overlay' (alerts area, ticker text, logo) and nest it as a source in scenes Gameplay, Just Chatting and Desktop at identical position. Bind hotkeys Ctrl+Alt+1/2/3 to switch to those scenes and Ctrl+Alt+M to toggle Mic mute.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropkey· Shortcutsclick· Point & click- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Scene JSON: Overlay referenced as scene source in 3 scenes with identical transform; hotkey bindings in the collection/profile match. Synthetic key events via OS automation switch program scene (obs-websocket read-only observer).
Proposed partial credit
40% nested overlay in 3 scenes; 20% identical transforms; 40% hotkeys work
R06.12.01.01-T07 Duck music under the mic with a sidechain compressor
Original instruction
In OBS Studio add a Compressor filter on source 'Music' with sidechain source 'Mic' so music drops about 12 dB while the host speaks and recovers within 500 ms after. Record 40 s of the provided test feed (voice with pauses) on a single mix track to recordings/duck_test.wav.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickav· Audio/video over time- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Separate stems are known: estimate music gain per 50 ms window by projecting the mix onto the music reference. During speech gain reduction 12±3 dB; within 500 ms of speech end recovers to ≥-2 dB; no ducking during silence.
Proposed partial credit
25% sidechain configured; 40% ducking depth; 25% recovery time; 10% recording
R06.12.01.01-T08 Enable a 30-second replay buffer with a save hotkey
Original instruction
In OBS Studio enable Replay Buffer with maximum time 30 s and memory 512 MB, set file name format Replay %CCYY-%MM-%DD %hh-%mm-%ss in recordings/replays/, bind Save Replay to F9, start the buffer, wait 40 s and save one replay.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickkey· Shortcuts- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Profile basic.ini replay settings exact; hotkey binding present. One file in recordings/replays/ matching the name pattern with duration 30±1 s.
Proposed partial credit
40% replay settings; 20% hotkey; 40% replay file correct
R06.12.01.01-T09 Set up alerts and chat widgets in Streamlabs Desktop
Original instruction
In Streamlabs Desktop (sandbox account) add scene 'Stream' with game capture, an Alert Box widget positioned top-centre (800x300) with follower alerts using sound alerts/ding.mp3 at 40% volume and 5 s duration, and a Chat Box widget 400x700 at the right edge with font size 18. Trigger a test follower alert.
- Platforms
mac· macOSwin· Windows- Applications
- Streamlabs Desktop
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropclick· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Scene collection JSON: widget sources with transforms ±2 px. Streamlabs sandbox widget settings via test API: follower alert sound, volume 40, duration 5. Test alert event logged; frame capture shows alert rendered in top-centre box.
Proposed partial credit
30% widget placement; 40% alert settings; 15% chat box style; 15% test alert renders
R06.12.01.01-T10 Build a vMix preset with four NDI cameras, a title and multiview
Original instruction
In vMix add four NDI inputs (test sources CAM1–CAM4), a GT Title using template LowerThird.gtzip with Name 'Dr. Sample' and Role 'Guest', set multiview to show CAM1–4 and the title, and set CAM1 as Program and CAM2 as Preview. Save the preset as presets/panel.vmix.
- Platforms
win· Windows- Applications
- vMix
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G3· GUI-only- Interaction primitives
click· Point & clicktype· Text & formsdrag· Drag & drop- Work product
WP08· App/system state- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Parse panel.vmix XML: 4 NDI inputs with source names, title input with field values exact, multiview overlay assignments, active=CAM1 and preview=CAM2. vMix HTTP API XML state equals preset after reload.
Proposed partial credit
35% NDI inputs; 25% title fields; 20% multiview; 20% program/preview
R06.12.01.01-T11 Add a vertical 9:16 canvas for simultaneous short-form output
Original instruction
In OBS Studio with the Aitum Vertical plugin installed, configure a 1080x1920 vertical canvas with scene 'V-Live': webcam top half (1080x810 crop of Cam), gameplay crop bottom half, captions text bottom. Set vertical recording to recordings/vertical/ and record 15 s alongside the normal 1920x1080 recording.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio · Aitum Vertical
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropgeom· Precise geometryvis· Visual judgment- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Two recordings with overlapping timestamps: 1920x1080 and 1080x1920. Vertical frames: webcam region top 810 px matches Cam crop (SSIM ≥0.9 vs reference frame), gameplay crop bottom region matches; plugin config JSON has V-Live scene. obs-websocket is disabled, no Lua/Python scripts may be loaded (Tools > Scripts list checked), and config writes by other processes are caught by a file-write audit.
Proposed partial credit
25% vertical canvas config; 40% layout correct in frames; 20% both recordings; 15% captions source
R06.12.01.01-T12 Add a local HTML overlay as a browser source
Original instruction
In OBS Studio add a Browser source 'Ticker' to scene Live using local file overlay/ticker.html at 1920x80, positioned at the bottom edge, with custom CSS 'body{background:rgba(0,0,0,0)}' and 'Shutdown source when not visible' enabled. Refresh cache once.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & formsdrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Scene JSON: browser_source with is_local_file true, path, width 1920, height 80, css string, shutdown true; transform y=1000±1. Program screenshot via websocket shows ticker text at bottom with transparent background.
Proposed partial credit
40% source settings; 30% position; 30% renders transparent
R06.12.01.01-T13 Record a tutorial that captures only one app window
Original instruction
In OBS Studio create scene 'Tutorial' that captures only the Calculator window (window capture, cursor on) scaled to fit 1280x720 canvas, with a mic source. Record 20 s while performing 12 × 34 = in Calculator. No other window, notification or desktop may appear in the recording. Save recordings/calc_tutorial.mp4.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio · Calculator
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G3· GUI-only- Interaction primitives
click· Point & clickvis· Visual judgmentmulti· Cross-app- Work product
WP05· Time-based media- Conditions
multiapp· Multi-appinterrupt· Interruptions- Proposed difficulty
- 3 / 5
Proposed verifier
Recording 1280x720, 18–25 s; OCR shows '408' in Calculator display by the end; per-frame check: no wallpaper template or test notification (fired mid-task) pixels visible; scene JSON uses window capture, not display capture. obs-websocket is disabled, no Lua/Python scripts may be loaded, the agent has no terminal or ffmpeg, and scene JSON writes by other processes are caught by an audit log.
Proposed partial credit
30% window-only capture; 25% canvas and duration; 25% action recorded; 20% no leak of notification
R06.12.01.01-T14 Measure and correct webcam audio-video offset
Original instruction
In OBS Studio the webcam 'Cam' (test feed: clapper video) arrives later than the 'Mic' audio. Record a clap test, measure the offset, set Sync Offset on Mic (or a Render Delay on Cam) to fix it, and record recordings/sync_after.mkv showing ≤10 ms residual offset.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
av· Audio/video over timevis· Visual judgmentclick· Point & click- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Hidden injected delay is 120 ms. sync_after.mkv: detect clapper close frame (visual) vs audio transient onset over 5 claps; mean |offset| ≤10 ms. Scene JSON sync offset or render delay within 120±15 ms.
Proposed partial credit
20% before-test recorded; 40% correct offset set; 40% residual ≤10 ms
R06.12.01.01-T15 Migrate a Streamlabs scene collection into OBS and fix broken sources
Original instruction
Import fixtures/streamlabs_collection.overlay into OBS Studio as collection 'Migrated'. Several sources reference missing file paths and Streamlabs-only widgets. Relink media to the files in assets/, replace widgets with Browser sources to the provided URLs in widget_urls.txt, and make all 5 scenes render without missing-source warnings.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio · Streamlabs Desktop
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP08· App/system state- Conditions
multiapp· Multi-apphidden· Hidden/stale state- Proposed difficulty
- 4 / 5
Proposed verifier
Collection JSON: 5 scenes; every file source path exists; widget sources replaced by browser sources with listed URLs; transforms preserved within 2 px of original; OBS log on load shows no 'missing files'.
Proposed partial credit
20% import; 35% media relinked; 25% widgets replaced; 20% transforms preserved
R06.12.01.01-T16 Configure a stinger transition with a track matte
Original instruction
In OBS Studio enable Studio Mode and add a Stinger transition using transitions/swipe.webm with track matte transitions/swipe_matte.webm (stacked layout), transition point 600 ms, audio monitoring off. Make it the transition for Live→BRB only; keep Fade elsewhere. Record a cut Live→BRB to recordings/stinger.mkv.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickav· Audio/video over timevis· Visual judgment- Work product
WP05· Time-based media- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Collection JSON: stinger transition with matte settings and point 600 ms; scene-specific transition override BRB←Live. Recording: swipe frames present; scene content switches at 600±33 ms from transition start; Fade used in a second test switch.
Proposed partial credit
30% stinger config; 20% track matte; 25% override only for BRB; 25% timing in recording
R06.12.01.01-T17 Create the Weekly Stream scenes via obs-websocket (control pair of T01)
Original instruction
Control pair of T01. With OBS running headless-accessible and obs-websocket v5 enabled (password in .env), write build_scenes.py that creates the same three scenes, sources, Cam transform and Fade 300 ms transition without touching the OBS window.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- OBS Studio · obs-websocket
- Interfaces
api· API/SDK- GUI need · task setting
AP· API-sufficient- GUI need · ordinary access
AP· API-sufficient- Interaction primitives
code· Code & commands- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Same checks as T01 on the resulting collection JSON; websocket server log shows requests from the script; no UI interaction events recorded.
Proposed partial credit
50% scenes/sources; 30% transforms; 20% transition
R06.12.01.01-T18 Stream to two destinations and record program plus ISO in vMix
Original instruction
In vMix configure streaming to two local RTMP endpoints (rtmp://127.0.0.1/a and /b) at 1080p30 6 Mbps, and MP4 recording of Program plus MultiCorder ISO recordings of CAM1 and CAM2 to D:\rec\. Run for 45 s with two cuts between CAM1 and CAM2 at about 15 s and 30 s.
- Platforms
win· Windows- Applications
- vMix
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsav· Audio/video over time- Work product
WP05· Time-based media- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Both RTMP ingests recorded with matching params; Program MP4 shows cuts near 15 s and 30 s (±2 s) via shot-boundary detection; two ISO files with continuous single-camera content and duration ≥40 s.
Proposed partial credit
30% dual streaming; 25% program recording with cuts; 30% ISO files; 15% settings
R06.12.01.01-T19 Build a complete stream setup from a producer's brief
Original instruction
From brief_stream.pdf in OBS Studio: 6 scenes and 14 sources with layout coordinates, mic and music filter chains, sidechain ducking, scene hotkeys, stream to local RTMP at the brief's encoder settings, recording track 2 = VOD mix without music, and a Starting Soon countdown that switches to Live at 0. Save collection 'Show_v1'.
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropgeom· Precise geometryclick· Point & clickav· Audio/video over time- Work product
WP08· App/system state- Conditions
long· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Collection JSON vs brief: scenes/sources/transforms (±2 px), filters and params, hotkeys. 2-minute dry run: RTMP ingest params; recording track 2 contains no music (correlation ≤0.05) while track 1 does; countdown triggers switch to Live.
Proposed partial credit
30% scenes/layout; 20% audio chains; 20% outputs; 30% VOD track and countdown automation
R06.12.01.01-T20 Auto-switch to a privacy scene when sensitive windows appear
Original instruction
In OBS Studio with Advanced Scene Switcher, add macros: switch to scene 'Privacy' when the focused window title contains 'Password' or 'Bank', return to the previous scene 2 s after it loses focus, and mute Mic while in Privacy. Test by opening the provided fixtures/fake_password_manager app (synthetic data).
- Platforms
mac· macOSwin· Windows- Applications
- OBS Studio · Advanced Scene Switcher
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-appinterrupt· Interruptions- Proposed difficulty
- 5 / 5
Proposed verifier
Harness focuses test windows in a scripted sequence and records program scene via websocket: Privacy within 500 ms of focus on matching titles, not for others; returns to previous scene 2±0.5 s after; Mic muted only in Privacy. Macro config exported in plugin settings.
Proposed partial credit
35% switch on match; 15% no false trigger; 25% return to previous; 25% mic mute
Mapped research references
Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.