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 (on macOS and Linux) 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 Bun and Deno runtimes are supported as well
The native bindings are available for macOS (ARM and x64), Linux (x64, glibc 2.39 or later) and Windows (x64, Windows 10 or Windows Server 2016). Windows ARM64, Alpine Linux (musl) and Linux ARM64 are not supported. They render with the platform’s GPU context (Metal on macOS, EGL on Linux, Direct3D 12 on Windows) and, in the default automatic device mode (device: 'auto'), fall back to CPU rendering for graphics when no compatible GPU is available.
On Windows, the GPU must run Direct3D 12 at feature level 11_0. A software adapter, such as the Microsoft Basic Render Driver of a server without a GPU, does not count, so 'auto' renders on the CPU there and 'gpu' gives an error. On Windows 10, 11 and Windows Server 2025 with Desktop Experience, video import and export use Media Foundation (H.264 import and export, AAC and MP3 import), with no install. Windows N editions need the Media Feature Pack for it. Server Core and Nano Server have no Media Foundation, and IMG.LY tests it on Windows Server 2025 only. Where it is missing, install the GStreamer MSVC x86_64 runtime (1.24 or later) for video. Without either, the package renders images and reports every codec as unsupported. H.265 import needs the HEVC Video Extensions from the Microsoft Store, or the GStreamer runtime and a GPU with HEVC decode. An H.265 video with transparency keeps it only through the GStreamer runtime and a GPU with HEVC decode.
Recommended Hardware#
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.