diff --git a/public/img/sim/action1.mp4 b/public/img/sim/action1.mp4 new file mode 100644 index 0000000..263f8f5 Binary files /dev/null and b/public/img/sim/action1.mp4 differ diff --git a/public/img/sim/action2.mp4 b/public/img/sim/action2.mp4 new file mode 100644 index 0000000..e18c251 Binary files /dev/null and b/public/img/sim/action2.mp4 differ diff --git a/public/img/sim/image-20260103135227003.png b/public/img/sim/image-20260103135227003.png new file mode 100644 index 0000000..27f8069 Binary files /dev/null and b/public/img/sim/image-20260103135227003.png differ diff --git a/public/img/sim/image-20260103135535936.png b/public/img/sim/image-20260103135535936.png new file mode 100644 index 0000000..c3119c5 Binary files /dev/null and b/public/img/sim/image-20260103135535936.png differ diff --git a/public/img/sim/image-20260103135553368.png b/public/img/sim/image-20260103135553368.png new file mode 100644 index 0000000..3548b8e Binary files /dev/null and b/public/img/sim/image-20260103135553368.png differ diff --git a/public/img/sim/image-20260103143108173.png b/public/img/sim/image-20260103143108173.png new file mode 100644 index 0000000..4244b72 Binary files /dev/null and b/public/img/sim/image-20260103143108173.png differ diff --git a/public/img/sim/image-20260103143506983.png b/public/img/sim/image-20260103143506983.png new file mode 100644 index 0000000..75b5a89 Binary files /dev/null and b/public/img/sim/image-20260103143506983.png differ diff --git a/public/img/sim/image-20260103143618886.png b/public/img/sim/image-20260103143618886.png new file mode 100644 index 0000000..42e4eba Binary files /dev/null and b/public/img/sim/image-20260103143618886.png differ diff --git a/public/img/sim/image-20260103144629767.png b/public/img/sim/image-20260103144629767.png new file mode 100644 index 0000000..1643558 Binary files /dev/null and b/public/img/sim/image-20260103144629767.png differ diff --git a/public/img/sim/image-20260103144757557.png b/public/img/sim/image-20260103144757557.png new file mode 100644 index 0000000..ce9b940 Binary files /dev/null and b/public/img/sim/image-20260103144757557.png differ diff --git a/public/img/sim/image-20260103151610221.png b/public/img/sim/image-20260103151610221.png new file mode 100644 index 0000000..749fd5f Binary files /dev/null and b/public/img/sim/image-20260103151610221.png differ diff --git a/public/img/sim/image-20260103220522907.png b/public/img/sim/image-20260103220522907.png new file mode 100644 index 0000000..56df33e Binary files /dev/null and b/public/img/sim/image-20260103220522907.png differ diff --git a/public/img/sim/image-20260103220724061.png b/public/img/sim/image-20260103220724061.png new file mode 100644 index 0000000..cc92339 Binary files /dev/null and b/public/img/sim/image-20260103220724061.png differ diff --git a/public/img/sim/image-20260103221515111.png b/public/img/sim/image-20260103221515111.png new file mode 100644 index 0000000..beed0ce Binary files /dev/null and b/public/img/sim/image-20260103221515111.png differ diff --git a/public/img/sim/image-20260103225328920.png b/public/img/sim/image-20260103225328920.png new file mode 100644 index 0000000..b548c2b Binary files /dev/null and b/public/img/sim/image-20260103225328920.png differ diff --git a/public/img/sim/image-20260103230746221.png b/public/img/sim/image-20260103230746221.png new file mode 100644 index 0000000..1eabef3 Binary files /dev/null and b/public/img/sim/image-20260103230746221.png differ diff --git a/public/img/sim/rag1.png b/public/img/sim/rag1.png new file mode 100644 index 0000000..870b020 Binary files /dev/null and b/public/img/sim/rag1.png differ diff --git a/public/img/sim/rag2.png b/public/img/sim/rag2.png new file mode 100644 index 0000000..e617e7e Binary files /dev/null and b/public/img/sim/rag2.png differ diff --git a/public/img/sim/test_img.png b/public/img/sim/test_img.png new file mode 100644 index 0000000..21534d1 Binary files /dev/null and b/public/img/sim/test_img.png differ diff --git a/public/img/sim/test_img2.png b/public/img/sim/test_img2.png new file mode 100644 index 0000000..a310161 Binary files /dev/null and b/public/img/sim/test_img2.png differ diff --git a/public/img/sim/toolbar.png b/public/img/sim/toolbar.png new file mode 100644 index 0000000..983275f Binary files /dev/null and b/public/img/sim/toolbar.png differ diff --git a/scripts/convert-gif.sh b/scripts/convert-gif.sh index c39f597..db0e6e8 100755 --- a/scripts/convert-gif.sh +++ b/scripts/convert-gif.sh @@ -1,19 +1,40 @@ #!/bin/bash -set -e -echo "Converting GIFs to WebM..." -find public/img -name '*.gif' -print0 | while IFS= read -r -d '' gif; do - webm="${gif%.gif}.webm" - echo " $gif -> $webm" - ffmpeg -y -i "$gif" -c:v libvpx-vp9 -crf 30 -b:v 0 "$webm" 2>/dev/null -done +MAX_DURATION=10 + +echo "Converting GIFs to MP4..." +while IFS= read -r -d '' gif; do + mp4="${gif%.gif}.mp4" + + duration=$(ffprobe -v error -select_streams v:0 -show_entries format=duration -of csv=p=0 "$gif" 2>/dev/null || echo "0") + + if (( $(echo "$duration > $MAX_DURATION" | bc -l 2>/dev/null || echo 0) )); then + speed=$(echo "scale=2; $duration / $MAX_DURATION" | bc -l) + vf="setpts=PTS/${speed},scale='min(1280,iw)':-2,scale=trunc(iw/2)*2:trunc(ih/2)*2" + echo " $gif -> $mp4 (${duration}s -> ${MAX_DURATION}s, ${speed}x)" + else + vf="scale='min(1280,iw)':-2,scale=trunc(iw/2)*2:trunc(ih/2)*2" + echo " $gif -> $mp4" + fi + + if ffmpeg -nostdin -y -i "$gif" \ + -movflags faststart \ + -pix_fmt yuv420p \ + -vf "$vf" \ + -c:v libx264 \ + -crf 23 \ + -preset ultrafast \ + "$mp4"; then + rm "$gif" + echo " Done: $mp4" + else + echo " FAILED: $gif (keeping original)" + fi +done < <(find public/img -name '*.gif' -print0) echo "Updating markdown files..." find src/content -name '*.md' -exec perl -i -pe ' - s/!\[([^\]]*)\]\(([^)]*?)\.gif\)/