1
$\begingroup$

I have set up a lengthy animation in the NetRender render farm. After launching the network job, in the meanwhile, on the Client I worked on other stuff. After a week of netrender work, the job finally finished and I wanted to read in the results to get the movie.

I opened the initial blender file, clicked on the "Get Animation" button, but instead of just fetching the results it queued another copy of the job.

On the Master node I get a temporary folder with thousands of big xsr files, that in theory should contain all the rendered data. The question is: how to convert those files to png?

The usual tools such as convert doesn't work, they produce a black image.

What works is opening a single file in the UV/Image Editor in Blender. But that is only one image at a time. I have thousands images to work and I would prefer a way that is automatic.

$\endgroup$
3
$\begingroup$

Usually with exr files one wishes to use extra data stored in them (various render passes, depth buffer information, etc.) to apply the finishing touches to the output after the render is complete. Even if this is not what you have in mind, the same process should serve to simply convert the exr files into pngs.

  1. Import the sequence into the compositor (you can do this in the existing file or a new file):

    1. Switch to the compositor (⎈ Ctrl← Left arrow) and enable Use Nodes if it's not already enabled.
    2. Remove the Render Layers node and add an image node instead ⇧ ShiftA> Input > Image.
    3. Click open and navigate to the image sequence directory
    4. Select all the images (A) and confirm.
    5. The Source of the image node should be automatically set to Image Sequence and the frame range set. If you enable Backdrop in the header you'll be able to see the current frame of the image sequence (it will update as you scroll through the frames, albeit not very quickly).
  2. (if you wish) set up composite nodes to apply post-processing effects and generally take advantage of any extra multilayer information present in the exr files. Connect the result to the Composite output node. The File Output node is especially useful if you want to save multiple images per frame (e.g. to store different passes in separate pngs).

  3. Render again, with the desired final output format selected (.png in this case).

    1. To get Blender to render straight from the image sequence and not from the current scene, make sure the compositor doesn't contain any Render Layers nodes and that Compositing is enabled in Properties > Render > Post Processing (it is by default).
    2. Set the output path, format, etc. in Properties > Render > Output.

    3. ⎈ CtrlF12 :)

$\endgroup$
2
$\begingroup$

I hit this exact problem, so I wrote a little utility to handle the workflow.

This utility will download the ZIP of multi-channel EXRs from the render master, convert them to PNGs, and then convert them to lossless H.264 MP4.

https://github.com/stu-smith/blender-exr-to-mp4

$\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.