The Metro Card — 15s
Kobe Tribute Card — ~29s

Purple & gold. One card. One city. One memory.

Your real Kobe tribute Metro card is the star — composited pixel-exact over five smooth AI-built LA scenes, led by real metro-line money shots, narrated by Honey. A tribute spot: 8 · 24 · Mamba Mentality forever.

One file — the full ~29-second tribute ad (TikTok-ready)

Renders in real time (~29s): 1080×1920 vertical — the elevated metro line, the platform hero, the night ride, golden hour on the rail, the arena glow, and the canvas-drawn 8—24 endcard. Your real card photo in every scene. Honey voiceover baked in.

Voiceover script (Honey)

"Most tap cards just open the gate. This one opens a memory. Kobe Bryant. Eight. Twenty-four. The heart of a city, pressed into purple and gold. From the platform to the arena, one card rides with the greatest. Limited to five thousand. Mamba Mentality... forever."

Guaranteed TikTok-ready MP4 (one command)

No-fibs: the in-browser render can't be guaranteed TikTok-valid — TikTok is picky about the exact MP4 container, and some browsers only record WebM. The bulletproof path is this free ffmpeg command run locally with the assets above (save the card photo as card.jpg). Honest trade-off: it overlays your real card photo centered in every scene, with the voiceover baked in and the last frame held as the outro — but without the captions, the card motion, and the 8—24 endcard, which only exist in the browser render. No ffmpeg? Use CapCut: drop in the five scenes, overlay the card photo, add the voiceover and captions by hand.

ffmpeg -i scene-1.mp4 -i scene-2.mp4 -i scene-3.mp4 -i scene-4.mp4 -i scene-5.mp4 -i card.jpg -i voiceover.mp3 \
  -filter_complex "[0:v]trim=0:5.2,setpts=PTS-STARTPTS,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,format=yuv420p[v0];[1:v]trim=0:5.2,setpts=PTS-STARTPTS,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,format=yuv420p[v1];[2:v]trim=0:5.2,setpts=PTS-STARTPTS,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,format=yuv420p[v2];[3:v]trim=0:5.2,setpts=PTS-STARTPTS,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,format=yuv420p[v3];[4:v]trim=0:5.2,setpts=PTS-STARTPTS,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,format=yuv420p,tpad=stop_mode=clone:stop_duration=2.6[v4];[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0[base];[5:v]scale=-2:1150[card];[base][card]overlay=(W-w)/2:(H-h)/2:enable='gte(t,0.4)'[v]" \
  -map "[v]" -map 6:a -c:v libx264 -preset medium -crf 20 -pix_fmt yuv420p -c:a aac -b:a 128k -shortest -movflags +faststart kobe-card-ad-tiktok.mp4

No-fibs — what this ad is

The only real object in this ad is the card — your actual photo of your Kobe tribute Metro card, composited pixel-exact (cover-cropped into a gold frame, never stretched, never AI-recreated) over every scene. The five background clips are AI-generated (silent, photorealism prompts) — an elevated metro line, a platform, a train interior, a golden-hour rail line, and an arena — there is no real train, station, or arena, and no people in them. There is no synthetic footage of Kobe Bryant anywhere in this ad — by deliberate choice, we don't generate real people. The voiceover is Honey TTS. This is a fan tribute ad for a personal collectible — it is not affiliated with, endorsed by, or produced for LA Metro, the Lakers, the NBA, or Kobe Bryant's estate, and it does not offer the card for sale. The endcard (8 — 24, the mamba line, the limited-edition stamp) is canvas-drawn signage, not an image. A "~29 second" ad is 5 scenes × 5.2s + a 2.6s endcard = 28.6s, give or take player frame timing. Smoothness note: the scene clips are AI-generated at their native frame rate and trimmed without speed changes; if a clip still reads choppy on your device, the honest fix is re-generating that scene — nothing in the render pipeline drops frames on purpose. The render runs entirely in your browser (canvas + MediaRecorder): MP4 (H.264/AAC) when your browser supports recording MP4 (recent Chrome / Safari desktop do); otherwise WebM, and the badge says so. The voiceover only bakes in when the audio host allows cross-origin capture; if it can't, the file renders silent and the badge says so. If the in-browser MP4 is rejected by TikTok, the ffmpeg recipe above produces a guaranteed TikTok-valid 1080×1920 H.264/AAC faststart MP4.