Processing setup ~ single or multi-threads

jwalters1054
jwalters1054 Posts: 1 Just Starting Out

I have a PC setup of; AMD Ryzen 9 3950X 16-Core Processor  - 3.50 GHz, 128G memory, 2 - AMD Radeon RX 5700 XT video cards with 8 monitors.

Software; Windows 10 with all updates and newest version of HitFilm Pro.

Here lately it's taking forever to render a 1-hour webinar with effects in HitFilm. Taking 7 hrs, 35minutes for the last 4 videos. Is it better to run HitFilm in single thread or multi-thread for processing or does anyone have any other thoughts?

Thank you in advance...

Comments

  • Triem23
    Triem23 Posts: 20,609 Ambassador
    edited February 24

    Ok, so, while Hitfilm does multithread, I believe it's basically assigning single cores to single tasks - in this case, 1 thread per video object. So, if you are only using 1 video layer at a time, you're not leveraging all your cores. But, it means adding additional video layers shouldn't start to negatively impact speed until everything is engaged. It's a bit more about trying to keep a steady speed as you add elements than dynamically "shift speed" depending on layers.

    Hitfilm only uses one GPU, so your second GPU is idle.

    Hitfilm 2021.3 did greatly raise min specs - CPU went from Intel 4th gen i3/AMD equivalent to 6th gen i5/AMD equivalent. GPU went from Nvidia 6xx to 10xx. From this we can infer HF is now using a higher base level of resources, and, yes, is "slower" than earlier versions (we see this every time specs raise, then later versions continue to optimize and speed increases). Some of this is the Timeline Cache.

    Otherwise, there are a few other variables we can look at to try to optimize your project.

    Source footage: if you haven't yet, download MediaInfo - a free analysis tool - generate a "Tree" report of your source and post that here. We're specifically looking for Variable Frame Rate (which we don't want, we want constant frame rate). The report may reveal other things. Often you can improve HF performance by transcoding source footage to optimized formats first. You can also swap out footage for a transcoded version by right clicking the footage in the Media Bin, selecting Relink and choosing the transcode. This swaps the files in the project, so should preserve your existing edit. Oh, MediaInfo has tutorials on YouTube.

    Knowing more about footage and project settings helps. If you have a frame rate mismatch (mixing 24p and 30fps footage in a 30fps Timeline, as an example), that slows things down. In this case you have to transcode the 24p to 30p footage FIRST. Hitfilm views video on the Timeline in absolute frames, so a Relink swap will mess up timing.

    Same goes for resolution. Scaling costs resources. Again, transcode. This applies to scaling down, too. If you have a full-screen 4k image, but know you'll use it a lot as a half res overlay, transcoding a lower resolution version and cutting between them uses fewer Hitfilm resources.

    Just think of transcoding as baking needed changes into a file so Hitfilm isn't always making real-timing changes. So, matching frame rates and resolution first saves time in the long run beyond what you lose in the transcode.

    What kinds of effects/layering are you using? This is a huge variable, but, as a random example, fractal Noise uses more resources/makes more slowdown than curves.

    Pre-render nested Comps.

    Don't waste pixels. What this means is, if you make a lower third and start with masking a 4k plane layer to only see a small strip, Hitfilm has to process the entire 4k layer to generate transparency. That's a waste of resources for invisible pixels. Starting with, say, a 3500x500 layer uses less than 1/4 of the resources of a 3840x2160 layer. Build generated media close to the size needed, because if you start layering things up those wasted pixels add up.

    I'm moving across the ocean and am typing this at a truck stop break, so I'll add to this later if I think of anything else but I think I hit most variables. Right now I need to drive a thousand miles.