AcademySoftwareFoundation / OpenCue

A render management system you can deploy for visual effects and animation productions.
https://www.opencue.io
Apache License 2.0
834 stars 203 forks source link

Blender command outdated #1264

Open nyqvistatwork opened 1 year ago

nyqvistatwork commented 1 year ago

Describe the bug I have a blender file with 10 frames. Specifying frame 5-7 in CueSubmit and MPEG as Output Format generates a mp4 file with no animation. The file created also has the name "0001-0010.mp4" which is incorrect. The reason why this happens is because the three jobs created is running this cmd:

blender -b -noaudio <file> -o c:\out\ -F MPEG -f 5 blender -b -noaudio <file> -o c:\out\ -F MPEG -f 6 blender -b -noaudio <file> -o c:\out\ -F MPEG -f 7

To render an animation of frame 5-7 with Blender the correct cmd would be:

blender -b <file> -o c:\out\ -F MPEG -s 5 -e 7 -a (no -F MPEG needed)

To Reproduce Steps to reproduce the behavior:

  1. Create a blender file with an animation of 10 frames
  2. Open CueSubmit
  3. Select the blender file and specify a range of frames
  4. Set output
  5. Check the generated video file

Expected behavior Specifying a set of frames as MPEG in CueSubmit should generate a playable animation.

Version Number 5.12.2

Additional context Window 11 environment. All OpenCue components where installed from published release on the local computer. No Docker.

nyqvistatwork commented 1 year ago

I understand this might be tricky to implement since the render animation command (-a) and rendering of frames is in the same command.

nyqvistatwork commented 1 year ago

One part of this issue is the Blender command but I'm also not sure if what im experiencing here is a design choice so I would like to know if my expectation of OpenCue to output an animation from all the rendered frames and layers is within the scope of the applications functionality.

bcipriano commented 1 year ago

Thanks for the report.

This seems to be related to how CueSubmit builds Blender commands: https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/cuesubmit/Submission.py

It only has a concept of single frames, it doesn't aggregate multiple frames into a single command. We'd have to look into this to see about adjusting the CueSubmit code to handle this case correctly.

As a workaround, you could try modifying your local CueSubmit to build the command as desired.

In general, this is kind of outside the standard OpenCue use case. Typically we see users render each frame as an individual image, and if a movie output is desired, use another layer that runs after all the frames are done to stitch everything together, using something like ffmpeg for example. Not saying we won't support a movie output, just a warning that it's nonstandard.