Batch rendering thousands of videos

   1520   3   0
User Avatar
Member
3 posts
Joined: 3月 2021
Offline
Hello,

I am looking for some guidance in putting together a system that renders 4000+ videos (of 72 frames each, total 3-5 sec video) based on various variables provided via a CSV file on a Houdini scene (composed of 3d objects and lighting). Currently each frame takes about 30 sec to render and I plan to run ffmpeg to stitch them into a video once the frames are rendered.

What is the cost effective and yet optimal (in terms of overall render time) way to render these?

So far I calculated on a single GPU instance (based on Nvidia Cuda on Azure) where I run a powershell script that goes through 4000+ line items in the CSV to render each video. At this rate it takes 100 days to render them all which is too slow for me.

Are there any cost and time effective strategies for doing these?

Thank you!
User Avatar
Member
732 posts
Joined: 12月 2006
Offline
So you've got some kind of shell script that does one video at a time? Seems like you could be doing a lot more, depending on your number of cores... have you looked at PDG to do marshal the rendering and do the ffmpegs after each render is done? This will ensure that you use all of your cores and don't have any CPU idle time.
Sean Lewkiw
CG Supervisor
Machine FX - Cinesite MTL
User Avatar
Member
146 posts
Joined: 9月 2011
Offline
Intriguing problem It's hard to give anything but very general advice without knowing more specifics.

30 secs a frame is fairly heavy; if practical, Redshift (or similar) may help knock that down significantly. You mention GPU but not which renderer you're using - if it's Mantra, the GPU isn't helping.

Then it's about batching stuff. 4000 separate jobs is a lot of winding up and winding down of Houdini instances, so if there's a way to consolidate batches of videos together that'd help. Can you set up your scene so, say, 50 films are treated together? Every 75 frames, reset the camera position, set up the next objects. Best to allow a frame or two of "reset" time between consecutive shots to allow motion blurs to reset as well. But that way you have 80 renders instead of 4000. Chunking them into output videos is then just an ffmpeg / shell script task.

Just thoughts, but do colour in some more detail if you want better quality suggestions
User Avatar
Member
3 posts
Joined: 3月 2021
Offline
Thanks for suggestions. Yeah less concerned about stitching into a video with ffmpeg.

I am using Redshift for rendering. 30 secs is coming from using Redshift currently.

I like the suggestion of consolidating batches. What kind of typical savings can I expect with this approach? Since I am new to Houdini, want to see if it's worth taking this route or look into something else.
  • Quick Links