# ELEKTRING — LED motion kampanja

Tri prednja filma u svijetloj, bijelo-plavoj verziji (320 × 512 px) i jedan plavi bočni film (64 × 512 px). Sva četiri MP4 fajla su 30 FPS, tačno 15 s, H.264 Constrained Baseline / yuv420p, bez audio zapisa.

## Instalacija

Node.js 20 ili noviji i FFmpeg s libx264 encoderom.

```sh
npm install
npx playwright install chromium
# Ubuntu / Debian:
sudo apt install ffmpeg
# Na novoj Linux instalaciji, ako nedostaju browser biblioteke:
npx playwright install-deps chromium
```

## Pregled

```sh
npm run dev
```

Otvori http://127.0.0.1:4178. Odaberi reklamu, pokreni/pauziraj, ponovi, uključi/isključi loop ili pomjeri klizač. „Safe zona” prikazuje pomoćnu marginu samo u pregledniku. Platno je prikazano u tačnih 320 × 512 CSS piksela na standardnim ekranima; na ekranima užim od 354 px proporcionalno se smanjuje na 300 × 480. Raspored unutar filma nikad se ne mijenja.

„Bočna reklama” prikazuje zaseban film u tačnih 64 × 512 CSS piksela. Dugme „Pogledaj uz prednju reklamu” dodaje sinhronizovani pregled izabrane prednje reklame. Odnos širina ostaje 5:1; na manjim ekranima se cijeli uporedni pregled proporcionalno smanjuje. U MP4 se izvozi samo odabrana reklama. Direktan pregled: https://elektring.fatusa.at/?ad=side.

## Export

```sh
npm run export
# Ili pojedinačno:
npm run export:electro
npm run export:lighting
npm run export:lifts
npm run export:side
```

Skripta sama pokreće lokalni server, učita lokalne fontove/slike u Chromium, za svaki video izračuna svih 450 kadrova pri dvostrukoj rezoluciji i šalje PNG kadrove direktno u FFmpeg. Prednji filmovi se renderuju u 640 × 1024, bočni u 128 × 1024. Lanczos downscale daje finalnih 320 × 512 ili 64 × 512. Nema snimanja ekrana u realnom vremenu niti preskakanja kadrova. Frame rendering zavisi samo od ID-a reklame i tačnog vremena; nema slučajnih vrijednosti, mrežnih asseta ni CSS animacija u videu.

Rezultati:

- `output/elektroinstalacije.mp4`
- `output/rasvjeta.mp4`
- `output/dizalice-platforme.mp4`
- `output/bocna-reklama.mp4`

Skripta provjerava kodek, dimenzije, FPS, svih 450 kadrova, trajanje, odsustvo zvuka i tekstualnu safe zonu. Metapodaci su u `qa/`. Export prekida s greškom ako provjera ne prođe. Privremeni `.partial.mp4` zamjenjuje završni fajl tek poslije uspješnog enkodiranja.

Ako već imate Chromium, možete postaviti `CHROMIUM_PATH=/putanja/do/chrome` prije export/QA komande. Na ovom serveru korišten je postojeći Chromium u `/home/fatusa/.cache/ms-playwright/chromium-1228/chrome-linux64/chrome`.

## Izmjene

- `src/config.js`: svi potvrđeni kontakti, slogan, nazivi i vremena scena.
- `src/motion.js`: kompletna deterministička animacija i tipografija.
- `src/side.js`: bočni brand loop; plava podloga, logo, uspravni bijeli ELEKTRING i diskretni svjetlosni tragovi. Nema novih generisanih slika, koristi postojeći logo i Canvas grafiku.
- `src/preview.js`, `src/style.css`, `index.html`: kontrole izvan filma.
- `render.html`: samo platno za automatizovani render.
- `assets/`: logo, lokalni fontovi i ilustrativni vizuali.

Završna scena prednjih filmova počinje na 10,5 s. Kontakti su mirni i potpuno vidljivi otprilike od 11,3 do 14,6 s. Slogan je tačno **Safe. Smart. Connected.** Završetak i početak spajaju se kroz kratki bijeli prijelaz. Web i sva tri telefona imaju prioritet; email i adresa su manji. Konačnu čitljivost i jačinu bijele treba pogledati na stvarnom panelu tokom dana.

Bočni film ima neprekidnu plavu podlogu. Logo i naziv ostaju vidljivi svih 15 sekundi, a svjetlosni pokret ima identične početne i završne kadrove. Namijenjen je uz bilo koji prednji film i može se koristiti na obje bočne strane rezolucije 64 × 512, uz pravilno usmjerenje prikaza u kontroleru. Kontakti i duži slogan ostaju na širem prednjem panelu radi čitljivosti. Bočna tekstualna safe zona je 4 px vodoravno i 16 px okomito.

Fotografije rasvjete i platforme su AI ilustracije, nisu fotografije stvarnog asortimana. Dostavljeni noviji plavi `e` znak restauriran je iz korisničke fotografije; nije originalni vektorski fajl. Stariji dostavljeni crveno-plavi logo ostaje sačuvan u `assets/logo-original.png`. Detalji i promptovi: `assets/ASSETS.md`.

## QA i objava

```sh
npm run qa
npm run package
npm run build
```

QA provjerava kontrole, mobilni overflow, determinističnost i krajeve loopa te sprema vizuelne storyboarde. `package` koristi Python 3 (standardna biblioteka) za ZIP projekta i videa. `build` priprema `dist/` za statički hosting. Nakon novih exporta ponoviti package i build. Server: https://elektring.fatusa.at.

Izvorni PNG vizuali su sačuvani; pregled i render koriste optimizovane lokalne JPEG kopije. Fontovi Barlow Condensed i Manrope koriste SIL Open Font License; licence su u `assets/fonts/`.
