Search Docs
Loading...
Skip to content

System Compatibility

The native Node.js bindings (@cesdk/node-native) run the CE.SDK engine as a native C++ addon. Unlike the WebAssembly-based @cesdk/node package, they render on a real GPU context and can encode video, so they support video export and deliver native performance for headless server-side workflows.

Hardware Limitations#

Each machine has a limited number of high performance hardware decoders and encoders. If the maximum number is reached it falls back to (slow) software de- and encoding. You may therefore encounter slower export performance when exporting in parallel with other software that utilizes encoders and decoders. This is a limitation of the hardware and operating system and cannot be solved in software.

Version#

  • Node.js 22 or later

The native bindings are available for macOS (ARM and x64) and Linux (x64). They render with the platform’s GPU context (Metal on macOS, EGL on Linux) and, in the default automatic device mode, fall back to CPU rendering for graphics when no compatible GPU is available.

We recommend at least 4GB of memory, or 8GB or more for 4K content. Export time scales with CPU and GPU capabilities, so a dedicated GPU improves export performance on Linux.

Video#

Video export is supported and runs entirely in-process, producing .mp4 output directly without the separate CE.SDK Renderer. MP4 is the only supported export container, and audio is encoded as AAC.

H.264/AVC is the exportable video codec and the most reliable choice for broad compatibility. On macOS, video is encoded in hardware through Apple VideoToolbox, which requires a GPU render context. On Linux, H.264 is encoded in software and may require additional codec libraries to be available in your environment. For resolution, duration, codec and hardware details, see the video limitations guide.

Export Limitations#

The export size is limited by the hardware capabilities of the machine, e.g., due to the maximum texture size that can be allocated. The maximum possible export size can be queried via API, see export guide.