LiveScreen is a 100% client-side Video-to-iOS-Live-Photo and Dynamic Lock Screen Wallpaper workbench powered by WebCodecs hardware H.264 encoding, Canvas 2D, and a zero-dependency binary muxer that uploads 0 bytes to any server.
LiveScreen implements Apple ImageIO and AVFoundation binary pairing rules by writing Big-Endian TIFF and Apple iOS MakerNote 0x0011 (ContentIdentifier) into the cover .JPG while muxing com.apple.quicktime.content.identifier and a 9-byte mebx still-image-time timed metadata track into the companion .MOV across 4 languages.
01 · JPEG APP1 EXIF & Apple MakerNote (0x0011) Binary Injector
Module 01 · MakerApple 0x0011
LiveScreen rebuilds the JPEG 0xFFE1 APP1 segment in browser RAM, stripping camera GPS tags and writing a Big-Endian MM TIFF header plus the 14-byte Apple iOS\0\0\1MM MakerNote header with Tag 0x0011 at relative offset 0x20 (0 bytes uploaded).
APP1 Header = FF E1 <Len> "Exif\0\0" + Big-Endian TIFF ("MM", 0x002A)
MakerNote (0x927C) = "Apple iOS\0\x00\x01MM" + Tag 0x0011 (ASCII, len=37, offset=32) → UUID
02 · QuickTime .MOV Top-Level mdta & Associated mebx Timed Metadata Track
Module 02 · QuickTime mdta & mebx
LiveScreen muxes a compliant ftyp qt QuickTime container embedding com.apple.quicktime.content.identifier inside moov/meta and linking a tref/cdsc metadata track (mebx still-image-time, 9 bytes payload) positioned via edts/elst.
Top Metadata = moov → meta → hdlr("mdta") + keys("com.apple.quicktime.content.identifier")
Timed Track (mebx) = trak → tref/cdsc(track=1) + edts/elst(T_cover) + mdat[00 00 00 09 00 00 00 01 00]
03 · WebCodecs H.264 (AVC Level 5.1) Hardware Encoder & Photo-JPEG Fallback
Module 03 · WebCodecs H.264 60fps
LiveScreen probes browser VideoEncoder hardware support from avc1.640033 down to avc1.420028 to transcode MP4 clips into up to 1320×2868 @ 60 fps Super Retina output with forced IDR keyframes (0 bytes uploaded).
AVC Profile Probe = VideoEncoder.isConfigSupported(["avc1.640033", "avc1.4d0033", "avc1.420028"])
Keyframe Placement = forceKeyFrame(i === 0 || i === coverFrameIdx || i % fps === 0)
04 · Landscape-to-Portrait Ambient Blur Backdrop & Lock Screen Clock Vignette
Module 04 · Landscape Blur & Clock Guard
LiveScreen converts 16:9 anime or movie MP4 clips into 9:19.5 iPhone wallpapers using Ambient Blur Fill, True Black OLED Letterbox, or Full-Bleed Pan Crop, saving user presets in localStorage with 0 bytes uploaded.
Aspect Presets = {1320×2868, 1206×2622, 1179×2556, 1290×2796, 1080×1920, 1668×2388}
Clock Vignette α = LinearGradient(y: 0 → 0.42·H, alpha: 0.85·dimRatio → 0)
05 · Zero-Reencode ISO-BMFF Atom Re-Linker & PKZIP (.livp) Archiver
Module 05 · Lossless Re-Linker & .livp
LiveScreen includes a binary ISO-BMFF / QuickTime parser and IEEE 802.3 CRC-32 PKZIP packager that losslessly updates stco/co64 chunk offsets to repair broken Live Photos and packages IMG_XXXX.livp archives in under 2 ms.
Chunk Offset Shift = stco[k] ← stco[k] + (NewMediaOffset - OldMediaOffset)
Archive Container = PKZIP Store (0x04034B50, method=0, CRC-32) → IMG_XXXX.JPG + IMG_XXXX.MOV
06 · Direct iOS Web Share Import & Strict 0-Byte Upload CSP Sandbox
Module 06 · Zero-Upload & iOS Share
LiveScreen enforces default-src 'none' with exact SHA-256 script hashes so 100% of video decoding and binary muxing stays in local RAM (0 bytes uploaded), while navigator.share imports paired .JPG + .MOV files straight into iPhone Photos.
Server Upload = 0 bytes (100% Client-Side Blob, ArrayBuffer & WebCodecs)
iOS Direct Import = navigator.share({ files: [File(IMG.JPG), File(IMG.MOV)] })