플랫폼 지원
This content is for v0.4. Switch to the latest version for up-to-date documentation.
이 페이지는 alpha2 0.4가 동작하는 곳과 각 환경에서 필요한 것을 정리합니다. 모든 타깃이 같은 렌더링 코드를 실행하므로, 프로젝트는 어디서든 같게 렌더링됩니다.
플랫폼
섹션 제목: “플랫폼”| 플랫폼 | GPU | 하드웨어 디코딩·인코딩 | 아카이브 |
|---|---|---|---|
| 브라우저 | WebGPU. WebGPU가 없으면 캔버스에 그릴 때 WebGL2 | 애플리케이션이 담당(WebCodecs) | 없음 |
| Linux x64, arm64 | Vulkan | Vulkan Video | linux-x64, linux-arm64 |
| macOS(Apple silicon) | Metal | VideoToolbox | macos-arm64 |
| Windows x64 | Direct3D 12 | D3D12VA | win-x64(bundled만) |
엔진에는 쓸 만한 GPU가 없는 머신을 위한 CPU 렌더러도 어디에나 있습니다. GPU와 같은 렌더 그래프를 그리며, 그 결과는 어느 머신에서든, 스레드 수와 관계없이 같은 바이트입니다. 내장 이펙트와 트랜지션을 모두 그리며, 런타임 WGSL 이펙트만 GPU가 필요합니다. 네이티브에서는 --renderer auto(기본값)가 하드웨어 GPU가 없을 때 CPU 렌더러를 씁니다. 브라우저에서는 WebEffectRegistry.createCpu(canvas)로 만들 수 있고, 렌더 워커의 "auto" 렌더러는 WebGPU도 WebGL2도 없을 때 CPU 렌더러로 대체합니다.
네이티브 auto는 소프트웨어 GPU 어댑터(lavapipe, llvmpipe, WARP, SwiftShader)로는 렌더링하지 않습니다. 같은 그림을 CPU 렌더러보다 몇 배나 느리게 그리기 때문입니다.
네이티브 아카이브
섹션 제목: “네이티브 아카이브”릴리스마다 타깃과 종류별 아카이브 alpha2-<version>-<target>-<kind>.tar.gz(Windows는 .zip)가 있으며, alpha2-host와 alpha2가 들어 있습니다. 모든 아카이브의 SHA-256은 checksums.sha256에 있습니다.
bundled: 프로그램이 불러오는 LGPL FFmpeg 8 공유 라이브러리를 함께 담습니다. 모든 타깃에 있습니다.thin: FFmpeg를 담지 않고 시스템에 설치된 FFmpeg 8을 불러옵니다. Linux는 시스템 로더의 검색 경로에서, macOS는/opt/homebrew/lib,/usr/local/lib,/opt/local/lib에서 찾습니다. Linux와 macOS에만 있습니다.- 그 밖의 플랫폼: 시스템 FFmpeg 8을 대상으로
cargo install alpha2-host로 직접 빌드하고,ALPHA2_HOST_PATH로 클라이언트에 알려 주십시오.
alpha2 Python 패키지는 Linux x86_64·aarch64, macOS arm64, Windows x64에서 같은 버전의 플랫폼 wheel로 호스트를 함께 설치합니다. wheel의 glibc 기준보다 오래된 Linux에는 설치할 수 없습니다.
디코딩
섹션 제목: “디코딩”alpha2-host는 세 방식 중 하나로 비디오를 디코딩합니다. software, auto(디바이스와 스트림이 허용하면 GPU, 아니면 CPU), hardware-required입니다.
| 플랫폼 | 기본값 | 하드웨어 디코더 |
|---|---|---|
| Linux | auto |
Vulkan Video |
| macOS | software |
--video-decode auto일 때 VideoToolbox |
| Windows | software |
--video-decode auto일 때 D3D12VA |
인코딩
섹션 제목: “인코딩”네이티브 export는 디바이스와 코덱이 허용하는 곳이면 GPU로 인코딩합니다. 아카이브의 FFmpeg 런타임은 libvpx-vp9(VP9), libsvtav1(AV1), mpeg4(MPEG-4 Part 2), aac, libopus(Opus)로 CPU 인코딩도 하므로, GPU 인코더가 없는 호스트도 VP9나 AV1은 쓸 수 있습니다.
런타임은 LGPL이라 소프트웨어 H.264 인코더가 없습니다. H.264와 HEVC는 다음이 담당합니다.
| 플랫폼 | 인코더 |
|---|---|
| Linux | Vulkan Video(h264_vulkan, GPU 상주 경로 전용). 인코더가 있는 NVIDIA GPU에서 드라이버 530.41.03 이상이면 NVENC(h264_nvenc, hevc_nvenc, av1_nvenc) |
| macOS | VideoToolbox |
| Windows | Media Foundation의 h264_mf(ALPHA2_VIDEO_ENCODER_HYBRID=hardware가 아니면 소프트웨어 변환), GPU 상주 경로의 D3D12 Video, 드라이버 531.61 이상의 NVENC |
| 모든 플랫폼 | 설치되어 있으면 Cisco의 OpenH264 |
NVENC는 그 머신에서 시험 프레임을 인코딩해 본 뒤에만 제공됩니다. 그래서 인코더가 없는 NVIDIA GPU(A100, H100)나 드라이버의 video capability가 없는 컨테이너에서는 export가 도중에 실패하는 대신 분명하게 거부됩니다.
H.264 인코더가 없는 머신(CPU 전용 서버, 서버리스, arm64 서버, NVIDIA 데이터센터 GPU)에서는 OpenH264를 설치하십시오. npx @alpha2-sh/node install --openh264 또는 python -m alpha2 install --openh264입니다. Cisco의 특허 라이선스가 요구하는 대로 Cisco에서 바이너리를 직접 내려받으며, alpha2는 이것을 배포하지 않습니다. capabilities 요청은 encode.h264.status(available, gpu-only, unavailable)를 이유, 해결책과 함께 알려 줍니다.
Windows N과 Windows Server
섹션 제목: “Windows N과 Windows Server”Media Feature Pack이 없는 Windows N·KN 에디션과 Media Foundation이 없는 Windows Server에는 기본 소프트웨어 H.264 인코더가 없습니다. OpenH264를 설치하거나(install --openh264), D3D12나 NVENC 인코더가 있는 GPU로 export하십시오.
브라우저
섹션 제목: “브라우저”| 최소 버전 | |
|---|---|
| Chrome | 96 |
| Firefox | 89 |
| Safari | 16.4 |
.wasm파일은application/wasm으로 제공하십시오. 그렇지 않으면 로더가 더 느린 컴파일 방식으로 대체하고 경고합니다.- 오디오 프리뷰에는 교차 출처 격리(cross-origin isolated) 페이지가 필요합니다.
Cross-Origin-Opener-Policy: same-origin과Cross-Origin-Embedder-Policy: require-corp입니다. 편집과 비디오 프리뷰에는 필요 없습니다. - export는 브라우저의 WebCodecs 인코더로 인코딩하므로, 어떤 코덱으로 export할 수 있는지는 브라우저에 달렸습니다. export 전에
alpha2/mediabunny의canEncodeVideoTrack(편집기에서는bridge.videoEncoders())으로 확인하십시오. - WebGPU도 WebGL2도 없으면(가속 꺼짐, 차단된 GPU) CPU 렌더러가 캔버스의 2D 컨텍스트에 프리뷰를 그립니다.
지금 이 브라우저:
언어와 프레임워크
섹션 제목: “언어와 프레임워크”| 패키지 | 필요 조건 |
|---|---|
@alpha2-sh/node |
Node.js 20 이상. Electron 메인 프로세스에서도 동작합니다. |
alpha2(Python) |
Python 3.11 이상 |
@alpha2-sh/react |
React 18 이상 |
@alpha2-sh/editor/react |
React 19.3 이상의 19 버전 |
alpha2(Rust 크레이트) |
Rust 1.88 이상 |
alpha2(npm) |
위의 브라우저. alpha2/mediabunny를 쓰는 TypeScript 프로젝트는 문제 해결을 참고하십시오. |
함께 보기
섹션 제목: “함께 보기”- CLI 레퍼런스:
--renderer,--video-decode, 환경 변수. - 서버에서 렌더링하기: 컨테이너와 CPU 렌더링.
- 문제 해결
