Skip to content

feat: 新增零依賴瀏覽器草稿影片匯出 - #81

Closed
YueyuHoshizora wants to merge 5 commits into
Hao0321:mainfrom
YueyuHoshizora:fix/browser-draft-export
Closed

YueyuHoshizora wants to merge 5 commits into
Hao0321:mainfrom
YueyuHoshizora:fix/browser-draft-export

Conversation

@YueyuHoshizora

Copy link
Copy Markdown
Contributor

What changed

Closes #63

  • 使用 Canvas、Web Audio 與 MediaRecorder 提供零依賴、即時草稿影片匯出;逐次探測編碼器,優先 H.264/AAC MP4,備援 VP9/Opus 或 VP8/Opus WebM。
  • 合成一般影片/圖片、2D 變形、音訊、字幕與翻譯字幕、PiP;明確阻擋不支援的 native/GPU/ACES 等內容,避免靜默遺漏。
  • 新增匯出進度、取消、專案變更與背景/停滯中止;保留獨立下載專案 JSON 選單。
  • 加上 DRAFT 浮水印及檔名,更新雙語文件並加入邊界與來源驗證測試。

User journey and platform

瀏覽器匯入本機素材 → 編輯時間軸 →「輸出草稿」→ 下載影片;可取消,修改專案會中止舊匯出。

草稿上限為 5 分鐘、32 個素材片段、長邊 1280、目標最高 30 fps、128 MiB 編碼緩衝。這不是硬性記憶體沙箱,也不是逐幀精準或 native 等價輸出;即時錄製通常耗時接近片長,WebM 可能缺少片長/定位中繼資料。

實測平台:macOS Chromium 150。Safari、Firefox 與 native 桌面路徑未驗證。

Validation

  • npm run typecheck:通過。
  • npm test:280 個測試檔通過、1 個略過;2174 個測試通過、4 個略過。未執行排除的整合套件。
  • npm run build:通過。
  • npx tsx scripts/architecture-check.ts:ALLOW。
  • node scripts/verify-public-source.mjs --scan:在排除本機/生成輸出的暫存來源副本通過;不是初始發布快照驗證。
  • Chromium 實際操作 production UI 匯入、輸出與下載,以 ffprobe/FFmpeg 解碼確認 H.264 1280×720 與 AAC;取消及編輯中止不產生額外下載,獨立 JSON 下載可用。
  • 實際編碼 MP4 與 VP9/Opus WebM,解碼確認裁切後紅/藍影像、時間軸空隙、黃色 PiP、雙語字幕及 DRAFT;解碼音訊頻譜確認 440/880 Hz 片段與混音。
  • 背景守衛以模擬 visibilitychange 驗證;headless 環境未呈現真實背景頁籤狀態,未聲稱已驗證真實切換背景。
  • 未編譯 Rust,未驗證 native/GPU/官方安裝包。

Security and provenance

  • 無新增依賴、上傳/外部網路存取、權限或 production process execution。
  • 匯出只接受本頁匯入的 blob 來源,不讀取持久化路徑或遠端素材 URL;輸出使用瀏覽器下載,不寫入專案檔。
  • 不使用 SharedArrayBuffer、不新增 service worker,不放寬既有安全邊界。
  • 無新增永久媒體、字型或模型;驗證使用自製 FFmpeg lavfi 合成素材,暫存素材已移除。
  • 未包含秘密或私人影像。

DCO

本次提交已使用 git commit -s,包含 Signed-off-by trailer。

Signed-off-by: Yueyu Hoshizora <yueyuhoshizora@gmail.com>
Signed-off-by: Hao0321 <126182090+Hao0321@users.noreply.github.com>
Signed-off-by: Hao0321 <126182090+Hao0321@users.noreply.github.com>
Signed-off-by: Hao0321 <126182090+Hao0321@users.noreply.github.com>
Signed-off-by: Hao0321 <126182090+Hao0321@users.noreply.github.com>

Hao0321 commented Oct 6, 2026

Copy link
Copy Markdown
Owner

感謝你的貢獻和投入!Editkin 已確定以本機桌面版為主,不再發展網頁版,GitHub Pages 部署也會移除(見 #87)。這個 PR 是網頁版專用的功能,所以先關閉。如果之後方向改變,可以再重新開啟。


Generated by Claude Code

@Hao0321 Hao0321 closed this Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Browser build: draft-quality video export

2 participants