tiparhitektura
chainc1024
sesijasesija-2026-05-21-flf-video
statusDONE
prioritetP1
sto_trebaZamijeniti JPEG snapshot Track B sa pravim WebM video streamom. Izgraditi live.html dual-panel viewer (2D + hologram).
sto_napravljeno[
"Track B: JPEG snapshot → MediaRecorder WebM (VP9→VP8→WebM fallback)",
"videoBitsPerSecond: 200000 (200kbps = ~1.5MB/min, ~75MB/50min predavanja)",
"live.html: dual panel — lijevo 2D (MediaSource sequential), desno hologram canvas",
"MediaSource Extensions (MSE): SourceBuffer mode='sequence' za besprijekorno spajanje 5s atoma",
"b64toAB() konverter: base64 atom → ArrayBuffer → SourceBuffer.appendBuffer()",
"QuotaExceededError handling: brisanje starih buffiranih segmenata",
"Holo
matematika{
"video_bitrate": "200 kbps",
"atom_interval": "5000 ms",
"atom_size_avg": "125 KB",
"mb_per_min": "~1.5 MB",
"mb_50min": "~75 MB",
"vs_mp4": "44 MB DNA standard MP4 (16× kompresija od originala)",
"b2_cost_month": "$0.00045/mj za 50min predavanje"
}
fajlovi[
"/var/www/genesis/nolimit-static/flf/genesis_record.html",
"/var/www/genesis/nolimit-static/flf/live.html"
]
api_endpointi[
"POST /api/v1/flf/session/{id}/atom (track=B, data=base64 WebM chunk)",
"GET /api/v1/flf/session/{id}/atoms?track=B&from=0&limit=50",
"GET /api/v1/flf/session/{id}/stream (SSE: type=atom, track=B)"
]
zakoni[
"ZAKON 41 — nema tuđih SDK, samo W3C MediaRecorder + MediaSource"
]
weise3_formulaSHA3-256('WEISE3::{session_id}::B::{t_ms}::genesis-rec::atom::FENIX2026')