Skip to content

docs: bilingual README overhaul with competitive edge positioning - #88

Merged
appergb merged 3 commits into
mainfrom
docs/readme-bilingual-overhaul
Jun 23, 2026
Merged

appergb merged 3 commits into
mainfrom
docs/readme-bilingual-overhaul

Conversation

@appergb

@appergb appergb commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Summary

Rewrites README.md as a tri-lingual (CN / EN / JP) document with:

  • Table of Contents with clickable anchors
  • Competitive advantages table vs CapCut, DaVinci Resolve, Final Cut Pro
  • Version history (0.1.0-dev through planned 1.0.0)
  • Platform support section (macOS, Windows, Linux, Backend/Headless)
  • Rust workspace map with crate descriptions
  • Community section with Discord badges (EN + CN), stars/forks counters, WeChat placeholder
  • Mermaid architecture diagram, quick start guide
  • Focus on "why OpenTake is better" rather than "what we ported"

Also adds a minimal CONTRIBUTING.md.

Changes

  • README.md: Complete bilingual overhaul (321 lines, +158/-121)
  • CONTRIBUTING.md: New file with dev setup and contribution guidelines

Related

baiqing added 3 commits June 23, 2026 10:27
Timeline playback was a throttled GPU composite-frame sequence (~11 fps,
silent) — "帧序列的播放完全不一样" vs upstream's smooth AVPlayer playback.

Replace it, while PLAYING, with the actual <video>/<audio> elements for the
clips under the playhead (native decode → smooth motion + sound), mirroring
upstream VideoEngine's "one clock plays the composition" model:

- TimelinePlaybackLayer mounts the top visual clip's <video>/<img> + every
  non-muted audio-track <audio>; the active AUDIO element is the master clock
  (never re-seeked), the playhead is read from its currentTime; with no audio
  the visual video is master; with no media a dt fallback advances through gaps.
- Followers are nudged only past a 0.35s drift; a master-alignment guard avoids
  snapping the playhead when starting playback mid-timeline; scrub-while-playing
  is detected and pushed to the elements.
- playbackClock ownership flag makes usePlaybackTicker yield while the media
  clock runs. The GPU composite is now fetched only when PAUSED/scrubbing
  (accurate text/effects, and no per-frame ffmpeg/PNG churn while playing —
  fixes the playback jank/memory spike).

Pure model (clip-at-frame, source-time mapping, volume) unit-tested.
Code-review follow-ups on the timeline playback engine:

- Mute the visual video's own audio when an audio track plays the SAME source
  (linked-audio split). The check compared ActiveMedia objects by reference
  (`m === v`), which are freshly allocated per call and never equal, so the
  mute never fired → double audio. Compare clip ids instead.
- Cache the per-clip ref callback so a stable clip's <video>/<audio> isn't
  detached/re-attached on every rAF re-render.
- Reference-count the media-clock ownership flag so overlapping claim/release
  (StrictMode double-invoke, mount/unmount overlap) can't strand it.
…guide

- Rewrite README in tri-lingual format (CN / EN / JP) with TOC anchors
- Focus on competitive advantages vs CapCut / DaVinci / FCPX
- Add version history, platform support table, Rust workspace map
- Add community section with Discord badges (EN + CN) and stars counters
- Add Mermaid architecture diagram, quick start guide
- Add WeChat contact group placeholder (TBD)
- Create minimal CONTRIBUTING.md

Closes: Update README to bilingual format with competitive positioning
@appergb
appergb merged commit 1acd0df into main Jun 23, 2026
2 checks passed
@appergb
appergb deleted the docs/readme-bilingual-overhaul branch July 18, 2026 10:47
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.

1 participant