콘텐츠로 이동

대상 환경 고르기

alpha2의 모든 패키지는 같은 렌더링 코드로 같은 프로젝트 문서를 렌더링합니다. 차이는 실행되는 위치와, 미디어를 누가 디코딩하고 인코딩하느냐에 있습니다. 이 페이지를 보고 하나를 고르세요.

패키지 실행 환경 미디어 디코딩 파일 인코딩 렌더링
alpha2 브라우저(WebAssembly) 앱(도우미: WebCodecs, mediabunny) 앱(도우미: WebCodecs, mediabunny) WebGPU, 없으면 WebGL2, 그것도 없으면 CPU 렌더러
@alpha2-sh/react 브라우저, React 18 이상 alpha2와 같음 alpha2와 같음 alpha2와 같음
@alpha2-sh/editor 브라우저. 편집 코어는 Node.js에서도 동작 브라우저 브리지가 파일을 가져옴 브라우저 브리지가 WebCodecs로 export alpha2와 같음
@alpha2-sh/node Node.js, Electron 메인 프로세스 alpha2-host(FFmpeg 8) alpha2-host(FFmpeg 8) GPU 또는 CPU 렌더러
alpha2-host 명령줄, 또는 stdio를 통한 모든 언어 FFmpeg 8 FFmpeg 8 GPU 또는 CPU 렌더러
alpha2 (Python) Python 3.11.4 이상 alpha2-host alpha2-host GPU 또는 CPU 렌더러
alpha2 (크레이트) 여러분의 Rust 프로그램 프로그램(또는 alpha2-native) 프로그램(또는 alpha2-native) wgpu: Windows는 Direct3D 12, macOS는 Metal, Linux는 Vulkan(다음으로 GL)

브라우저에서 프리뷰하거나 export하면서 모든 단계를 직접 제어하고 싶을 때 고릅니다. 이 패키지는 WebAssembly로 빌드한 엔진과 이를 구동하는 TypeScript로 이루어져 있습니다.

  • 하는 일: 프로젝트 불러오기와 검증, 특정 시각을 캔버스에 렌더링, 정확한 프레임 그리드에 맞춘 오프스크린 export(planar I420 프레임), 오디오 믹싱, 라우드니스 측정, 텍스트 레이아웃.
  • 하지 않는 일: 파일 열기. 미디어 디코딩과 프레임·오디오 업로드, export 인코딩은 앱이 합니다. alpha2/frame-supply, alpha2/media, 선택 의존성인 alpha2/mediabunny(디코더, 그리고 MP4·MOV·MKV·WebM 싱크)가 이 일의 대부분을 대신해 줍니다.

React 트리 안에 alpha2 플레이어를 보여 줄 때 고릅니다. Alpha2Canvas가 캔버스를 만들어 여러분이 만든 플레이어에 넘기고, timeTicks가 바뀔 때마다 그 시각을 보여 주며, GPU를 잃으면 새 캔버스로 복구합니다. 플레이어와 프레임은 여전히 여러분이 공급합니다.

편집 앱을 만들 때 고릅니다. 코어는 문서, 타입이 있는 커맨드, 검증, 실행 취소를 담당하며 DOM 없이 동작하므로 Node.js에서도 쓸 수 있습니다. 브라우저 브리지는 파일 가져오기, 프리뷰, 오디오를 포함한 재생, WebCodecs를 통한 MP4·MOV·MKV·WebM export를 처리합니다. @alpha2-sh/editor/react는 React 바인딩을 제공합니다(React 19.3 이상의 19.x).

서버나 Electron 메인 프로세스에서 파일을 export할 때 고릅니다. 네이티브 렌더러인 alpha2-host를 export마다 프로세스 하나씩 실행합니다. 호스트는 FFmpeg 8로 디코딩과 인코딩을 하고(기본은 H.264와 AAC를 담은 MP4이며 MOV, Matroska, WebM도 지원), 하드웨어 GPU로 렌더링하며 GPU가 없으면 CPU로 렌더링합니다. npx @alpha2-sh/node install이 플랫폼에 맞는 호스트를 받아 옵니다.

  • 하는 일: 파일 export, PNG 스틸 렌더링, 기능(capabilities) 보고, 렌더링 전 미디어 점검(conform).
  • 하지 않는 일: 인터랙티브 프리뷰. 프리뷰가 필요하면 브라우저 패키지와 함께 쓰세요.

셸 스크립트나 클라이언트가 없는 언어에서 쓸 때 고릅니다. alpha2-host export는 명령줄에서 프로젝트 하나를 export합니다. alpha2-host serve는 표준 입력으로 JSON 요청을 받고 표준 출력으로 응답합니다. 이것이 호스트 프로토콜입니다. 아카이브에는 파일을 조사(probe)하고, 트랜스코딩하고, 썸네일을 만드는 미디어 명령 alpha2도 들어 있습니다.

Python에서 프로젝트를 만들고, 검증하고, export할 때 고릅니다. 프로젝트는 평범한 dict이고, 검증은 엔진의 검증기를 프로세스 안에서 그대로 실행하며, 렌더링은 alpha2-host가 합니다. 작성 도우미, 텍스트 측정기, 그리고 의도(슬라이드쇼, 타이틀, 자막, 음악)로 기술한 영상을 프로젝트로 컴파일하는 alpha2.compose도 제공합니다.

Rust 프로그램에 엔진을 내장할 때 고릅니다. 디코딩한 프레임을 FrameProvider로 엔진에 빌려주고, 렌더링된 프레임과 YUV 4:2:0 플레인을 돌려받습니다. 크레이트는 미디어 파일을 읽거나 쓰지 않습니다. 필요하면 alpha2-native가 FFmpeg 8로 디코딩, 조사, 인코딩을 합니다. wgpu-interop 기능을 켜면 여러분의 wgpu 디바이스와 텍스처를 엔진과 공유할 수 있습니다.

SVG, 애니메이션 이미지(GIF, 애니메이션 WebP, APNG), Lottie, OpenEXR, 이미지 시퀀스는 확장 프로바이더가 읽습니다. alpha2-host는 네이티브로 읽고, 브라우저는 프로젝트가 그런 소스를 열 때만 같은 코드를 별도의 WebAssembly 모듈로 불러옵니다. 확장을 참고하세요.

플랫폼 GPU 하드웨어 디코딩·인코딩
브라우저 WebGPU. WebGPU 없이 캔버스에 그릴 때는 WebGL2 앱이 담당
Linux x64, arm64 (glibc 2.35 이상, musl 제외) Vulkan Vulkan Video
macOS (Apple silicon) Metal VideoToolbox
Windows x64 Direct3D 12 D3D12VA

Windows on ARM은 지원하지 않습니다. 최소 런타임은 Node.js 22.21 이상(Node 24에서는 24.5 이상), Python 3.11.4, Rust 1.88입니다.