From 0de9c41c7d6d3d403330d696b6ab208d18f5b0f3 Mon Sep 17 00:00:00 2001 From: Irene Date: Wed, 9 Sep 2026 17:27:28 +0900 Subject: [PATCH 1/3] docs: add .gitignore for binary assets and output files --- .gitignore | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8169366 --- /dev/null +++ b/.gitignore @@ -0,0 +1,52 @@ +# --- Binary input assets (per README guideline) --- +# Audio +*.mp3 +*.wav +*.flac +*.aac +*.ogg +*.wma +*.m4a + +# Images +*.png +*.jpg +*.jpeg +*.gif +*.webp +*.svg +*.bmp +*.ico + +# Fonts +*.ttf +*.otf +*.woff +*.woff2 + +# Material video clips +*.mp4 +*.mov +*.avi +*.mkv +*.webm + +# --- Video output --- +*.mp4 +*.mov +*.avi +*.mkv +*.webm + +# --- Remotion / Node.js --- +node_modules/ +out/ +dist/ +remotion-studio/ + +# --- OS / IDE --- +.DS_Store +Thumbs.db +*.swp +*.swo +*~ From 74b70967a1b1c5d4bf236c633a1390766e266dbe Mon Sep 17 00:00:00 2001 From: Irene Date: Wed, 9 Sep 2026 17:35:35 +0900 Subject: [PATCH 2/3] feat: add Remotion project scaffolding and subtitle tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remotion project: - package.json with Remotion 4.0.522, React 19, Tailwind v4 - tsconfig.json (strict, ES2018, Bundler module resolution) - remotion.config.ts (rspack, jpeg image format) - ESLint flat config, Prettier config - Root component and MyComposition placeholder (1280x720, 30fps, 60 frames) Subtitle tools: - src/lrc2srt.ts — LRC to SRT converter (minimal, no dependencies) - ffmpeg.sh — helper for baking ASS subtitles or static-image+audio bypass --- .gitignore | 26 +++---------- .prettierrc | 5 +++ eslint.config.mjs | 3 ++ ffmpeg.sh | 60 +++++++++++++++++++++++++++++ package.json | 32 +++++++++++++++ remotion.config.ts | 14 +++++++ src/Composition.tsx | 25 ++++++++++++ src/Root.tsx | 10 +++++ src/index.css | 1 + src/index.ts | 4 ++ src/lrc2srt.ts | 94 +++++++++++++++++++++++++++++++++++++++++++++ tsconfig.json | 16 ++++++++ 12 files changed, 270 insertions(+), 20 deletions(-) create mode 100644 .prettierrc create mode 100644 eslint.config.mjs create mode 100644 ffmpeg.sh create mode 100644 package.json create mode 100644 remotion.config.ts create mode 100644 src/Composition.tsx create mode 100644 src/Root.tsx create mode 100644 src/index.css create mode 100644 src/index.ts create mode 100644 src/lrc2srt.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 8169366..5584a41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# --- Binary input assets (per README guideline) --- +# Binary input assets (per README guideline) # Audio *.mp3 *.wav @@ -31,22 +31,8 @@ *.mkv *.webm -# --- Video output --- -*.mp4 -*.mov -*.avi -*.mkv -*.webm - -# --- Remotion / Node.js --- -node_modules/ -out/ -dist/ -remotion-studio/ - -# --- OS / IDE --- -.DS_Store -Thumbs.db -*.swp -*.swo -*~ +# Video output (Remotion out/ + any rendered videos) +node_modules +dist +out +.env diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..37d5071 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "useTabs": false, + "bracketSpacing": true, + "tabWidth": 2 +} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..13b44a0 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,3 @@ +import { config } from "@remotion/eslint-config-flat"; + +export default config; diff --git a/ffmpeg.sh b/ffmpeg.sh new file mode 100644 index 0000000..9bbd8d9 --- /dev/null +++ b/ffmpeg.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +# ffmpeg helper — bake ASS subtitles into video, or bypass with static image + audio +# +# Usage: +# ffmpeg.sh bake