4
$\begingroup$

I have an animation of which I want to render specific frame ranges, such as frames 100 through 340 and frames 765 through 1092.

I saw on another Blender StackExchange question that you can render specific individual frames with the command line, but I need to render frame ranges.

Is there any way to do this?

$\endgroup$
  • $\begingroup$ So you also want to do this in batch mode? (from the command line) $\endgroup$ – someonewithpc Feb 16 '16 at 22:55
  • $\begingroup$ Yes, if that's the name for this. $\endgroup$ – RobotUnderscore Feb 16 '16 at 22:56
  • $\begingroup$ Which OS are you on? $\endgroup$ – someonewithpc Feb 16 '16 at 22:58
  • $\begingroup$ I'm on Windows 10. $\endgroup$ – RobotUnderscore Feb 16 '16 at 22:59
  • $\begingroup$ You could attempt to do something like what is suggested in this answer. Just replace 'ECHO %i' with the command to render single images. It's not ideal, but it should work. If at any point you have to stop or Blender just crashes, change the start value accordingly to resume. $\endgroup$ – someonewithpc Feb 16 '16 at 23:03
4
$\begingroup$

Command line render options

Remder options displayed by running blender --help in the system console

Render Options:
-b or --background 
    Run in background (often used for UI-less rendering).

-a or --render-anim 
    Render frames from start to end (inclusive).

-S or --scene <name>
    Set the active scene <name> for rendering.

-f or --render-frame <frame>
    Render frame <frame> and save it.

    * +<frame> start frame relative, -<frame> end frame relative.
    * A comma separated list of frames can also be used (no spaces).
    * A range of frames can be expressed using '..' separator between the first and last frames (inclusive).


-s or --frame-start <frame>
    Set start to frame <frame>, supports +/- for relative frames too.

-e or --frame-end <frame>
    Set end to frame <frame>, supports +/- for relative frames too.

-j or --frame-jump <frames>
    Set number of frames to step forward after each rendered frame.

-o or --render-output <path>
    Set the render path and file name.
    Use '//' at the start of the path to render relative to the blend-file.

    The '#' characters are replaced by the frame number, and used to define zero padding.

    * 'ani_##_test.png' becomes 'ani_01_test.png'
    * 'test-######.png' becomes 'test-000001.png'

    When the filename does not contain '#', The suffix '####' is added to the filename.

    The frame number will be added at the end of the filename, eg:
    # blender -b foobar.blend -o //render_ -F PNG -x 1 -a
    '//render_' becomes '//render_####', writing frames as '//render_0001.png'

-E or --engine <engine>
    Specify the render engine.
    Use -E help to list available engines.

-t or --threads <threads>
    Use amount of <threads> for rendering and other operations
    [1-1024], 0 for systems processor count.

The following command renders (render animation) frames 1 to 4, then 10 to 11 of file scripttest.blend

blender -b  some.blend -s 1 -e 4 -a -s 10 -e 11 -a

To render every nth frame set the jump value. Following command renders every second frame of first hundred, every third frame of second hundred frams

blender -b some.blend -s 1 -e 100 -j 2 -a -s 101 -e 200 -j 3 -a
$\endgroup$
2
$\begingroup$

Blender has many command line options, the two you are looking for are --frame-start and --frame-end (short versions are -s and -e).

blender -b myanimation.blend -s 100 -e 250

You can always see blenders cli options with blender --help

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.