콘텐츠로 이동

플랫폼 지원

이 페이지는 alpha2 0.5가 동작하는 곳과 각 환경에서 필요한 것을 정리합니다. 모든 타깃이 같은 렌더링 코드를 실행하므로, 프로젝트는 어디서든 같게 렌더링됩니다.

플랫폼 GPU 하드웨어 디코딩·인코딩 아카이브
브라우저 WebGPU. WebGPU가 없으면 캔버스에 그릴 때 WebGL2 애플리케이션이 담당(WebCodecs) 없음
Linux x64, arm64(glibc 2.35 이상, musl 제외) Vulkan Vulkan Video linux-x64, linux-arm64
macOS 11 이상(Apple silicon. Rosetta의 x64는 arm64 호스트 사용) Metal VideoToolbox macos-arm64
Windows x64 Direct3D 12 D3D12VA win-x64
Windows on ARM 지원하지 않음 없음

엔진에는 쓸 만한 GPU가 없는 머신을 위한 CPU 렌더러도 어디에나 있습니다. GPU와 같은 렌더 그래프를 그리며, 그 결과는 어느 머신에서든, 스레드 수와 관계없이 같은 바이트입니다. 내장 이펙트와 트랜지션을 모두 그리며, 런타임 WGSL 이펙트만 GPU가 필요합니다. 네이티브에서는 --renderer auto(기본값)가 하드웨어 GPU가 없을 때 CPU 렌더러를 씁니다. 브라우저에서는 WebEffectRegistry.createCpu(canvas)로 만들 수 있고, "auto" 렌더러 모드가 CPU 렌더러로 대체합니다.

auto는 소프트웨어 GPU 어댑터(lavapipe, llvmpipe, WARP, SwiftShader, WebGPU 폴백 어댑터)로는 렌더링하지 않습니다. 같은 그림을 CPU 렌더러보다 몇 배나 느리게 그리기 때문입니다.

릴리스마다 타깃별 아카이브 alpha2-<version>-<target>-bundled.tar.gz(Windows는 .zip)가 있으며, alpha2-host, alpha2, 그리고 둘이 불러오는 LGPL FFmpeg 8 공유 라이브러리가 들어 있습니다. 모든 아카이브에는 빌드 출처 증명(build provenance attestation)이 있습니다(gh attestation verify <archive> --repo alpha2-sh/alpha2).

  • Linux: glibc 2.35 이상. Alpine 같은 musl 시스템은 설치 도구가 거부하며, 그런 곳에서 시작한 호스트는 HOST_LOAD_FAILED로 실패합니다.
  • macOS: 브라우저로 내려받은 아카이브는 격리(quarantine) 속성이 붙어 클라이언트가 HOST_QUARANTINED로 거부합니다. xattr -dr com.apple.quarantine <unpacked dir>를 실행하거나 curl -LO로 내려받으십시오.
  • 그 밖의 플랫폼: 시스템 FFmpeg 8(libavutil 60, libavcodec 62)을 대상으로 cargo install alpha2-host로 직접 빌드하고, ALPHA2_HOST_PATH로 클라이언트에 알려 주십시오.

alpha2 Python 패키지는 Linux(glibc 2.35 이상) x86_64·aarch64, macOS arm64, Windows x64에서 같은 버전의 플랫폼 wheel로 호스트를 함께 설치합니다.

alpha2-host는 세 방식 중 하나로 비디오를 디코딩합니다. software, auto(디바이스와 스트림이 허용하면 GPU, 아니면 CPU), hardware-required입니다.

플랫폼 기본값 하드웨어 디코더
Linux auto Vulkan Video
macOS auto VideoToolbox
Windows software(측정해 보니 GPU 디코딩이 더 빠르지 않음) --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)를 이유, 해결책과 함께 알려 줍니다.

Media Feature Pack이 없는 Windows N·KN 에디션과 Media Foundation이 없는 Windows Server에는 기본 소프트웨어 H.264 인코더가 없습니다. OpenH264를 설치하거나(install --openh264), D3D12나 NVENC 인코더가 있는 GPU로 export하십시오.

최소 버전
Chrome 96
Firefox 89
Safari 26
  • .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 22.21 이상(Node 24는 24.5 이상). Electron 메인 프로세스에서도 동작합니다.
alpha2(Python) Python 3.11.4 이상
@alpha2-sh/react React 18 이상
@alpha2-sh/editor/react React 19.3 이상의 19 버전
alpha2(Rust 크레이트) Rust 1.88 이상
alpha2(npm) 위의 브라우저. alpha2/mediabunny를 쓰는 TypeScript 프로젝트는 문제 해결을 참고하십시오.