GDQuest / blender-sequencer-multithreaded-render

Multithreaded renders for the Blender video sequence editor, from the command line
GNU General Public License v3.0
25 stars 9 forks source link
blender blender-python blender-scripts blender3d sequencer video-editing vse

Blender Power Sequencer Render - BPSRender

This is a standalone python package as well as a command-line program you can use to speed up rendering VSE projects by spawning Blender processes in background in parallel.

It is included with the Blender Power Sequencer add-on.

Install

To install BPSRender as a standalone command line utility, use PiPy: pip install [--user] bpsrender.

You must have $HOME/.local/bin included in your $PATH environment variable on GNU/Linux if you're going to install the utility locally (using --user when executing pip).

Usage

To read the help, after you installed BPSRender, type bpsrender -h in the shell:

usage: bpsrender [-h] [-o OUTPUT] [-w WORKERS] [-v] [--dry-run] [-s START]
                 [-e END] [-m] [-c] [-d] [-j]
                 blendfile

Multi-process Blender VSE rendering - will attempt to create a folder called
`render` inside of the folder containing `blendfile`. Insider `render` another
folder called `parts` will be created for storing temporary files. These files
will be joined together as the last step to produce the final render which
will be stored inside `render` and it will have the same name as `blendfile`

positional arguments:
  blendfile             Blender project file to render.

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output folder (will contain a `bpsrender` temp folder
                        forrendering parts).
  -w WORKERS, --workers WORKERS
                        Number of workers in the pool (for video rendering).
  -v, --verbose         Increase verbosity level (eg. -vvv).
  --dry-run             Run the script without actual rendering or creating
                        files and folders. For DEBUGGING purposes
  -s START, --start START
                        Start frame
  -e END, --end END     End frame
  -m, --mixdown-only    ONLY render the audio MIXDOWN
  -c, --concatenate-only
                        ONLY CONCATENATE the (already) available video chunks
  -d, --video-only      ONLY render the VIDEO (implies --concatenate-only).
  -j, --join-only       ONLY JOIN the mixdown with the video. This will
                        produce the final render

External Dependencies

BPSRender requires

to be available in the $PATH environment variable in order to work. If BPSRender catches a missing dependency it throws a an error similar to this:

BPSRender couldn't find external dependencies:
[v] blender: /home/razvan/.local/bin/blender
[X] ffmpeg: NOT FOUND
Check if you have them properly installed and available in the PATH environemnt variable.
Exiting...

Tips

Here are some tips about using BPSRender as a command line utility.

Deleting the temporary folder after a successful render

BPSRender creates a bpsrender/ folder next to the blendfile it renders. There, it stores rendered video parts, the audio soundtrack from the project, and a text file to stitch the parts together. It does not automatically delete this folder at the moment. To do so, using the GNU/Linux shell, you can use these commands:

bpsrender my_file.blend && rm -rf bpsrender

After the render finished successfully, this will delete the bpsrender folder.

Rendering multiple projects with POSIX shells

You can render many projects one after the other from the terminal using the find command:

find . -name "*.blend" -exec bpsrender {} \;

Known Issues