A workflow for creating Side-by-Side (SBS) video passes with ReShade.
- ReShade installed in your game.
- FFmpeg installed on your system. The script will guide you if it's missing, but the easiest way is to install it via winget:
winget install "FFmpeg (Essentials Build)"
- Download the files from this repository.
- Copy the
reshade-shadersfolder into your game's root directory where the game's.exefile is located. This will place the.fxfiles in[Game Directory]/reshade-shaders/Shaders/SBS-WFX/. - Start your game and open the ReShade overlay (usually the
Homekey). - Set the Shader Order:
- Drag
START_WorldCaptureto the very top of your active shader list. - Drag
END_SideBySideOutputto the very bottom of the list. - Place any shaders you want to extract (e.g.,
DisplayDepth.fx) in between.
- Drag
- You should now see a side-by-side view in your game. You are ready to record!
The VideoSplitter.bat script has two modes:
-
Watcher Mode (Recommended):
- Configure the script by editing the variables in the
CONFIGURATIONsection. - Simply double-click the
.batfile to run it. - It will continuously watch the folder for new videos and process them automatically. This is great for batch processing.
- Configure the script by editing the variables in the
-
Drag-and-Drop Mode:
- Drag a single video file directly onto the
VideoSplitter.baticon. - The script will process just that one file.
- Drag a single video file directly onto the
The END_SideBySideOutput shader has a few options in the ReShade UI:
- World on Right: Check this box if you want to swap the positions of the world pass and the effect pass. This setting must match the
WORLD_ON_RIGHTvariable in the batch script! - Display Mode: Changes how the two passes are compared (e.g., split screen, centered overlay).
- Invert Depth: A utility to flip the colors of the effect pass, which can be useful for depth maps.
All configuration is done by editing the VideoSplitter.bat file in a text editor. The settings are clearly laid out in the CONFIGURATION section at the top of the file.
VIDEO_SOURCE_DIR: The folder the script will monitor for new video files when in Watcher Mode.OUTPUT_SUBFOLDER_NAME: The name of the subfolder that will be created inside the source directory to store the processed video passes (e.g.,MyVideos/Passes/).PROCESSED_ORIGINALS_SUBFOLDER: The name of the subfolder where original video files will be moved after successful processing.
WORLD_ON_RIGHT: This is the most important setting. It must match the "World on Right" checkbox in the ReShade preset.true: The world/beauty pass is on the right side of the recorded video.false: The world/beauty pass is on the left side.
KEEP_ORIGINAL_CODEC:true: The script will not re-encode the video. The output files will have the same codec and container as the original. This is faster but may result in larger files.false: The script will convert the videos to high-quality editing formats (ProRes for both the world and depth passes).
REMOVE_AUDIO:true: Audio will be stripped from all output files.false: Audio from the original recording will be kept in the main world pass file.
OUTPUT_WORLD_SUFFIX: The text added to the end of the world pass filename (e.g.,myvideo_world.mov).OUTPUT_DEPTH_SUFFIX: The text added to the end of the depth pass filename (e.g.,myvideo_depth.mov).OUTPUT_EXTENSION: The file extension used whenKEEP_ORIGINAL_CODECisfalse(default is.mov).VIDEO_EXTENSIONS: A space-separated list of file extensions that the script should look for in Watcher Mode (e.g.,.mp4 .mov .mkv).MOVE_ORIGINAL_ON_SUCCESS:true: The original video file will be moved to thePROCESSED_ORIGINALS_SUBFOLDERafter it has been successfully split.false: The original video file will be left in the source directory.
CHECK_INTERVAL_SECONDS: How many seconds the script waits between scanning theVIDEO_SOURCE_DIRfor new files.
- Shaders not appearing: Ensure they are in the correct
reshade-shaders/Shadersdirectory and that you have restarted your game. - Batch script errors: Make sure FFmpeg is installed and accessible in your system's PATH. The script has a built-in check that will alert you if it can't find it.
- Incorrect output: Double-check that the
World on Rightsetting in theEND_SideBySideOutputshader matches theWORLD_ON_RIGHTvariable inVideoSplitter.bat.
Feel free to open an issue to report bugs or suggest features.