Download Game! Currently 54 players and visitors. Last logged in:ArasakaMahjongZenickRauskis

Blitzer's Blog >> 72212

Back to blogs index
Posted: 09 Sep 2026 07:52 [ permalink ]
# OBS_RENDER_PIPELINE {obs-pipe-0001}

> description: Deterministinen ja eristetty automaatioputki OBS Studiolle.
YhdistC$C$ jonotuksen, orkestroinnin, optimoidun renderC6innin ja ohuen
esityskerroksen (Thin Client).

## TASK_QUEUE_ENGINE {obs-pipe-0002}

> description: Tietokantapohjainen (esim. SQLite) jono, joka hallitsee
tehtC$vien tilaa ja suojelee jC$rjestelmC$C$ ylikuormittumiselta tai
spammilta.
> type: logic/queue
> status: designed
> tags: [idempotent, rate-limiting, determinism]
> rules:
> * Jokaisella tehtC$vC$llC$ on yksilC6llinen `name_id`. Jonoon lisC$ys on
idempotentti (UPSERT): jos tehtC$vC$ on odottamassa, se korvataan/pC$ivitetC$C$
n; jos se on ajossa, sitC$ ei lisC$tC$ uudelleen.
> * Jonolla on konfiguroitava maksimipituus. Rajan ylittyessC$ uudet
tehtC$vC$t hylC$tC$C$n (esim. HTTP 429), jotta tekoC$lyt/botit eivC$t tuki
jC$rjestelmC$C$.
> * Takaa yhdenaikaisuuden (concurrency = 1). Vain yhtC$ tehtC$vC$C$
kC$sitellC$C$n kerrallaan LXC-hostin resurssien suojelemiseksi.
> 
> 

## ORCHESTRATOR_WORKER {obs-pipe-0003}

> description: "PC$C$-C$ly" (Python-taustapalvelu), joka hakee tehtC$viC$
jonosta ja ohjaa koko lC$hetyksen/tallennuksen kC$sikirjoitusta.
> type: logic/orchestrator
> status: designed
> tags: [brain, controller, pre-flight-check]
> rules:
> * Suorittaa Sanity Checkin ennen ajoa: Tarkistaa LXC-hostin muistin
(vC$hintC$C$n 4GB vapaana), load averagen ja siivoaa edellisten ajojen
mahdolliset jC$mC$t (`/tmp/` data-hakemistot).
> * Toimii kapellimestarina: PC$C$ttC$C$ koska nauhoitus alkaa, mitC$ skenejC$
nC$ytetC$C$n ja koska ajo on valmis.
> * Kommunikoi THIN_CLIENT_RENDERERin kanssa ohjeistaen sitC$ (esim.
WebSocketin yli), mitC$ ruudulle tulisi piirtC$C$.
> 
> 

## OBS_API_PROXY {obs-pipe-0004}

> description: FastAPI-pohjainen mikropalvelu (Wrapper), joka istuu
turvakerroksena Ohjaajan (Worker) ja OBS Studion oman WebSocketin vC$lissC$.
> type: api/proxy
> status: prototyped
> tags: [fastapi, security, tailscale]
> rules:
> * SC$ilC6C6 OBS:n autentikointitiedot (salasanat). Ei koskaan paljasta
niitC$ selaimen `run.html`-koodille tai ulkopuolisille boteille.
> * Kuuntelee vain turvallisessa lokaalissa ympC$ristC6ssC$ tai
Tailscale-verkossa (Mesh IP).
> * Altistaa vain tarkasti rajatun joukon komentoja (esim. `POST
/api/v1/recording/start`), jotka kC$C$nnetC$C$n `obsws-python`-kutsuksi.
> 
> 

## OBS_RENDER_NODE {obs-pipe-0005}

> description: XFCE4 Debian 12 LXC-kontissa (esim. hauki-obs-2) pyC6rivC$ OBS
Studio -instanssi. Toimii "tyhmC$nC$" renderC6intikoneena.
> type: infrastructure/renderer
> status: prototyped
> tags: [lxc, x264, xfce4, headless]
> rules:
> * Ei sisC$llC$ omaa pC$C$ttelylogiikkaa. Vastaanottaa komennot suoraan API:n
kautta.
> * Pakkaus on optimoitu staattiselle/koodaus-sisC$llC6lle (Software x264, CRF
20, `tune=stillimage`, Keyframe = 10s), mikC$ minimoi CPU- ja levytilakuorman.
> * Voidaan tulevaisuudessa siirtC$C$ arkkitehtuuria rikkomatta toiselle
koneelle, jossa on fyysinen GPU-lC$pivienti raskaampaa laskentaa varten.
> 
> 

## THIN_CLIENT_RENDERER {obs-pipe-0006}

> description: OBS:n sisC$C$nrakennetussa selainlC$hteessC$ (Browser Source)
pyC6rivC$ visuaalinen hiekkalaatikko (`run.html`).
> type: ui/presentation
> status: designed
> tags: [sandbox, thin-client, web-source]
> rules:
> * PidetC$C$n tC$ysin tyhmC$nC$: Ei sisC$llC$ logiikkaa OBS:n ohjaamisesta,
ei API-avaimia, eikC$ kykene vaihtamaan skenejC$.
> * Ottaa vastaan komentoja ORCHESTRATOR_WORKERilta (esim. WebSocket-viesteinC$
) ja renderC6i ne nC$yttC$viksi HTML/JS/CSS -animaatioiksi.
> * Jos esitettC$vC$ data (esim. 3D-malli tai tekoC$lygrafiikka) on liian
raskasta host-koneen CPU:lle, se striimataan toiselta Mesh-solmulta tC$hC$n
selaimeen (esim. WebRTC).
> * Koodi on tC$ysin lokaalisti kehitettC$vissC$ ja testattavissa tavallisessa
tietokoneen selaimessa ennen tuotantoon viemistC$.
> 
>