Standalone server - Docker
How to get images?
Image registry
Images are available in ghcr.io/software-mansion/smelter registry.
Available image tags:
v{VERSION}e.g.v0.4.0- Base versionv{VERSION}-web-renderere.g.v0.4.0- Base version with web rendering enabled. Includes Chromium Embedded Framework.
Build your own image
If you need to customize something or just want to build the images yourself you can find Dockerfiles in:
build_tools/docker/slim.Dockerfile- Base versionbuild_tools/docker/full.Dockerfile- Smelter version with web rendering enabled. Includes Chromium Embedded Framework.
To build it, run:
docker build -f build_tools/docker/slim.Dockerfile -t smelter .Enabling hardware acceleration
By default, if you run
docker run -p 8081:8081 ghcr.io/software-mansion/smelterit will launch the server in the CPU only mode. Encoding and decoding will be purely CPU based, and rendering will be emulated using LLVMpipe.
To leverage the power of your GPU you need to pass it to the docker container:
AMD GPU - Linux
Add --device /dev/dri to your docker run command to pass GPU access to the container.
docker run --device /dev/dri -p 8081:8081 ghcr.io/software-mansion/smelterNvidia GPU - Linux
Add --gpus all --runtime=nvidia to your docker run command to pass GPU access to the container.
docker run --gpus all --runtime=nvidia -p 8081:8081 ghcr.io/software-mansion/smelterHardware requirements
Smelter can fully work on the machine with CPU only, but to leverage GPU acceleration your hardware and drivers needs to meet some requirements.
WebGPU features
To support GPU-based rendering your hardware and drivers needs to support specific features.
Required features:
TEXTURE_BINDING_ARRAYPUSH_CONSTANTS
Enabled by default, but it can be disabled:
SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXINGUNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING
Those options are enabled by default, but can be disabled using
SMELTER_REQUIRED_WGPU_FEATURES environment variable.
Hardware decoding
To leverage hardware decoding, your GPU and drivers need to support following Vulkan extension;
VK_KHR_video_queueVK_KHR_video_decode_queueVK_KHR_video_decode_h264