C-Slice is an open source cluster media encoder, useful for video slicing to be played in immersive environments, through for instance C-Play, onto domes and powerwalls.
https://c-toolbox.github.io/C-Slice/
It is intended for producing slice dome, fisheye, spherical, planar, and SGCT-window based outputs from image sequences so the rendered result can be encoded per output window.
C-Slice starts in a master UI mode by default. When you press Start, the UI launches the same executable again in node mode with SGCT and slice-compatible command-line arguments.
If C-Slice is built with Wuffs support, C-Slice will also use Wuffs for image loading:
Wuffs is optional, but highly recommended. Without it, C-Slice falls back to the bundled SGCT image loader.
C-Slice uses editable data under data/slice:
configs/*.jsoncontains SGCT cluster/window configurations for slicing.parameters/*.jsoncontains FFmpeg encoder parameter presets.audio-channel-layouts.jsoncontains the Audio Muxer channel layout definitions.
Installed builds should keep the same structure next to the executable, for example:
bin/
C-Slice.exe
data/
slice/
configs/
parameters/
audio-channel-layouts.json
- Open C-Slice.
- Choose the left/input image sequence.
- Optionally choose a right-eye image sequence for stereo output.
- Choose an output directory and base output name.
- Choose an SGCT configuration from
data/slice/configs. - Select the SGCT window outputs to render.
- Choose mapping, encoding, and advanced options.
- Press Start.
Each enabled SGCT window is written to its own output subdirectory named after the SGCT window, for example Node1, Node2, and so on.
When you choose an input image, C-Slice scans the surrounding numbered sequence and updates the start and stop frame range. For best results, use consistently numbered files such as:
show_left_000000.png
show_left_000001.png
show_left_000002.png
The Image Threads setting controls how many image loading jobs C-Slice can run in parallel.
The SGCT configuration determines the output windows that C-Slice can render. C-Slice reads the windows entries in the selected JSON configuration and shows them as selectable outputs in the UI.
Output command-line arguments use the SGCT window name instead of a generated channel name, making it easier to match output folders to the cluster configuration.
C-Slice uses FFmpeg for encoding. The Encoding section controls codec, preset, pixel rate, constant quality, frame rate, container preference, and optional parameter JSON.
Parameter presets are stored in data/slice/parameters and can be adjusted or replaced for local production needs.
The Tools → Audio Muxer dialog can combine mono WAV channel files into one multi-channel WAV file. It supports the layouts defined in data/slice/audio-channel-layouts.json.
The layout file can be edited to rename layouts or change channel labels. Each layout has this structure:
{
"name": "Nrkp Dome",
"channels": [
"01: Front left",
"02: Front right",
"03: Front center"
]
}Unchecked Audio Muxer channels are filled with silence in the FFmpeg filter graph. The global volume and per-channel gain are multiplied before muxing.
Use Tools → Preferences to save startup defaults for configuration files, mapping, encoder settings, thread counts, output container preference, and initial file dialog locations.
- If no outputs are listed, check that the selected SGCT JSON file contains
nodeswithwindowsentries. - If muxing audio fails, make sure
ffmpegorffmpeg.exeis available next to C-Slice or on the system path. - If image sequence scanning reports missing frames, check the numbering in the input directory.
- If output folders are not created, verify write permissions for the selected output directory.