Full length RickRoll using 85 costumes that plays for 3 minutes 32 seconds with PTE subtitles. It should play on most phones from the last 5 years but may mess up if phone locks during playback. Requires 2GB of RAM but plays to 90% on device i tested with 1.5GB RAM Tap CC to toggle subtitles PC version: https://scratch.mit.edu/projects/941195677 30/12/2023: Updated to use avif as suggest by @elgooGmirror
Recorded at 10 frames a second (FPS) using 2120 avif frames with resolution 480x360 embedded in svg scaled to 50%. This is 15Mb of costumes with 3Mb audio. Memory is the FMV bottleneck. There isn't a way to play 3 minutes of video on phone without reducing resolution, as webgl textures size in memory are linked to resolution. Even bad apple would stop 40%, at full resolution on a 2gb device. This version uses 85 costumes containing 25 frames each. Each frame is an avif 480x360 scaled to 50% in svg and then resized 200% in scratch. Similar method as previous rickroll video https://scratch.mit.edu/projects/941195677 but uses 5x5 grid of avif scaled to 50% It uses ffmpeg and ImageMagick to generate the costumes. Instead of png, avif is then embedded in the SVG costumes for a 50% saving in file size. Previous version would stop at 30% on phones due to their limited memory. Good discussion about this from a 2015 rickroll project that uses 500Mb of images and needs 32Gb Ram! https://scratch.mit.edu/discuss/topic/522770 Workflow below just needs couple of free tools ffmpeg and ImageMagick: 1. Images generated from mp4 using ffmpeg eg: ffmpeg -i 480.mp4 -r 10 %d.png 2. Generated montage: magick montage %d.png[1-25] -background none -geometry +0+0 -tile 5x5 .\montage\1.png 3. Convert to avif: magick convert 1.png .\avif\1.avif 4. Embedded avif in svg with powershell using script below Get-ChildItem .\*.avif | ForEach-Object {'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200" height="900" viewBox="0 0 1200 900" ><g transform="scale(0.5)"><image xlink:href="data:image/png;base64,'+[convert]::ToBase64String((Get-Content -path ($_.Name) -Encoding byte)) +'" /></g></svg>' | out-file -encoding ASCII (".\svg\{0}.svg" -f $_.BaseName)} Commands used in Google Sheets file https://t.ly/mrydI Music Credits: Rick Astley - Never Gonna Give You Up (1987) Written by Mike Stock, Matt Aitken and Pete Waterman. PTE is a customized PTE Thx for suggesting to use avif rather webp as it is higher quality and better compression than webp.