Speeding Up Rendering Time

Rendering takes about 4 times longer than the length of my videos, and I'm hoping that you guys can help me to identify the bottleneck (if there is one). Here is my hardware:

  • 16 GB DDR3 RAM
  • AMD FX-8320 8-core processer
  • Nvidia GTX 660 3GB GPU
  • 2 TB HDD
  • ASUS M5A97 LE 2.0 Motherboard (AMD 3+ chipset)

Is there anything that I can do to get near real-time rendering from this computer? A single item that is the bottleneck & should be replaced? Or do I need to basically start over? My input files for editing are ProRes with AAC audio and I'm outputting to "Youtube MP4".

Thanks.

 

Comments

  • @HealthWyze Expecting anything close to real-time rendering is unrealistic.  Keep in mind that while you're editing, all that HitFilm is doing (assuming you're doing a cuts-only edit with no effects, titles, etc.) is decoding and displaying frames.  When you export, you're removing the displaying portion (which is a negligible time hit AFAIK), but adding the step of compression into a new format and codec, so it's going to take a bit more time.  I'm not a hardware guru, so I can't speak to whether or not your system could be improved to decrease the export time in general, but even if better hardware could help, I don't believe that you're going to see your exports come close to real-time.  Then again, I'm happy to be proven wrong.

  • Thanks. Maybe I do have unrealistic expectations. I'm largely editing 15-minute videos, and rendering takes between 1 hour, and 1 hour 20 minutes (depending on the complexity of the project). Would you say this is normal?

  • Doesn't seem unreasonable.

  • @HealthWyze Was my earlier assumption correct, that you're only doing a cuts-only edit on a single track in the main Editor timeline?  Are you adding any titles/effects via composite shots?

  • Triem23Triem23 Moderator

    There really aren't any magic Hitfilm settings to improve rendering performance other than turning down color depth settings, which can impact quality.

    Transcoding source footage would help someone using mp4, but you're using ProRes, so you started with a fast codec. 

    Otherwise, most of your options are hardware based. Render order in Hitfilm is CPU reads file from drive. CPU decompresses file, pass to GPU for render, pass back to CPU for file encode and write to drive. This multiple handoff in Hitfilm does have its own little bottleneck, and testing by some of our most technical users suggests Hitfilm's render code isn't as fast as some others. That said, the Hitfilm devs have been optimizing and improving the code. Some recent user tests showed marked increase in render speed using a test project from Hitfilms 4 to v8.0 (current is v8.1).

    You're using a hard drive, so that's a bottleneck. SSD would be faster. 

    Ideally a render machine would have multiple hard drives: one for OS, one for Programs and cache files, at least one for source files, and one for final renders. Having OS, Hitfilm, source and render all on a single drive is certainly a bottleneck.

    External hard drives tend to have speed issues. You'd ne needing external SSD and that can get expensive 

    Same applies to CPU and GPU. Obviously upgrading to current generation stuff would help, but, again, that gets expensive. Relative benefits depend more on what's being edited. Mostly cutting footage without complex effects, CPU upgrade - speeding up file encode/decode - might have the most benefit. For complex VFX/animation then upgrading the GPU is advantageous. 

    Even with current generation hardware and multiple SSDs it would be unlikely you'd see real-time exports. 1.5 to 2.0 is probably the best one would see.

    So, 4x project length to render doesn't sound unusual. Hope this is informative. :) 

  • @jsbarrett No, I have about six tracks, with mostly overlapping videos and images, alongside a generated fire and color corrections. 

    @Triem23 Thanks. That was quite informative. I think I'll make a few tweaks to my system, including getting an SSD. I've been thinking about it for a while. I do appreciate getting a realistic idea of what I can expect in the best case scenario. I would have hated to invest 3K in a machine only to get slightly better results. I think the CPU is the bottleneck in my machine (near 100% usage during renders), but upgrading it can't really be done without also changing the motherboard, because of the socket.

  • Triem23Triem23 Moderator

    Having your CPU near 100% does indicate that is working hard on encode/decode, so, yes, an upgrade there would probably help. But, that's money, like you said.

    Fortunately, you seem to have a desktop, so you can upgrade in pieces if you want. Laptops basically require replacement. :) 

  • @HealthWyze Ah. In that case, the 4x export time definitely makes sense.  If you had a simpler setup, I might've thought that 4x was a bit long, but with multiple overlapping elements and effects in a 15-minute video, that's about right.  All that custom stuff is what makes the export time increase.  My latest project was mostly straight cuts-only video (ProRes), but there were several custom transitions, and some overlaid comps of various types.  The final length was 8:37, and the export took 25 minutes (about 3x).

  • In my own experience using an SSD wasn't faster than using an HDD drive, unless it's perhaps the boot drive (which I've not yet tried).

    My drives were HDD1(boot: SATA2) HDD2 (Projects: SATA3) SSD (Export: SATA3) RAM (Projects/Export and ridiculously fast)

    I've tried rendering from HDD1 to HDD2, HDD1 to SSD1, HDD2 to RAM, RAM to SSD, RAM to RAM and there is no noticeable difference in any of them. Now, if rendering to/from a RAM drive to from a SATA 3 drive or even from RAM to RAM makes no difference, then the bottleneck is either the CPU, the Boot/Installation drive, the GPU, or something else.

    I upgraded the CPU and everything goes generally faster, but there is still no difference in whichever source or destination drives I use. So, I added a PCIE Express SATA3 card and replaced the SATA2 boot and installation drive with a SATA 3 drive, which now reads and writes (theoretically) 3 times faster than it did before (CrystalDiskMark). Any increase in Hitfilm's speed? None whatsoever.

    I found some cache files are being read and written to the boot/installation drive by the QT interface a lot. They might be a bottleneck, which is why my next test would be to have an SSD boot drive. Needs proper profiling software to draw a proper conclusion though - about that or anything else.

    I could also upgrade the GPU if I was convinced it would make a difference, but I'm not. Tests on another PC with a variety of video cards with wildly different specs made no difference at all.

    Has anyone just upgraded their GPU and noticed any difference in general, not super-complicated multi-layer, performance?

    Did just changing to an SSD boot drive help?

  • @Palacono My SSD arrives on Thursday. It'll be my boot drive. I'll let you know.

  • Stargazer54Stargazer54 Moderator

    Definitely recommend the SSD for your OS (boot drive).  And also  recommend two additional drives for rendering/editing.  The idea is to have one as a "source" drive (where your footage lives) and the other as a "destination" drive where you write your output to.  That way you aren't using the same drive as source and destination.  Two drives eliminates the I/O overhead from using only one drive.

  • @Stargazer54 that's what I've tried. No difference whatsoever. I wonder if there is some sort of synchronization timer it's waiting for in the QT codebase, so no matter what power you have available, it ticks along at its own rate.

  • @Palacono SSD as the boot drive made no difference in the render speed.

  • @HealthWyze Rats. :(

    Where are your video files going to/from? Have you tried something like CrystalDiskMark to see what speeds you're theoretically capable of getting from your drive(s)?

    Any other differences? Faster responses scrubbing on the timeline, faster tracking, quicker to start up in the morning, open existing projects? Anything?

  • I've tried both rendering to (and from) the Sandisk Ultra SSD, as well as rendering to a HDD (from the SSD). Render times are roughly the same in both scenarios. I do have faster scrubbing on the timeline, significantly faster boot time, and Hitfilm overall runs a little faster. Windows runs a lot faster. So, it's not all for nothing. I just wish it would have sped up my renders. I think my CPU must be the bottleneck in that regard though.

  • Triem23Triem23 Moderator

    You're probably right about the CPU being a bottleneck. 100% CPU use does imply so. 

    Although you did say you have six tracks do deal with with crossfades and generated fire... Those actually are pretty resource intensive. Still sounds like CPU. 

  • On that board (max CPU power 140w) you could upgrade from the FX-8320 to an FX-8370 for a 3.5Ghz to 4Ghz speed bump quite cheaply, plus there is some overclock room after that as CPU is drawing 125w. Some available with the Wraith cooler on ebay. Won't cost too much; especially if you then sell on your 8320. 

    Might not be very noticeable, and is only putting off the inevitable full upgrade; but could just tip the balance onto moving the bottleneck elsewhere, and every little helps while you plan your next purchase.

  • edited June 13

    I noticed something. I made a mistake when I said that it was using nearly 100% of my CPU. That was when I was using Pinnacle (another video editor). I switched to Hitfilm for more features, and according to Windows, Hitfilm is only using 25% of the capability of each thread during render. Now I have no idea what the bottleneck is, or if Hitfilm is simply just not exploiting the resources properly.

    @Palacono @Triem23 Do you guys experience more than 25% CPU usage during render?

  • Triem23Triem23 Moderator

    Render order in Hitfilm is CPU reads file from drive. CPU decompresses file, pass to GPU for render, pass back to CPU for file encode and write to drive. This multiple handoff in Hitfilm does have its own little bottleneck.

    So, next question is what's your GPU utilization and what kinds of effects and transitions you've got going on. 

  • Okay, so this 9-minute clip took 1 hour 40 minute to render. Sorry for the ridiculously depressing subject matter. One track has a chromakey composite. It has been color corrected. Another composite is made of the background image with the bonfire effect. A couple of photos are shown at different points in the video, with cross dissolve transitions.

    https://www.youtube.com/watch?v=FEwS9PT3olk

    I seem to have lost the GPU utilization area in Windows 10, though last time I looked a few days ago, it wasn't peaking.

  • Triem23Triem23 Moderator

    Ok. What GPU do you have? 

    Some of what you're doing is actually fairly intensive. Crossfades are somewhat slow in Hitfilm (especially on a single drive system where both tracks have to be read to composite), and generated fire is pretty intensive as well.

    Have you proxied your Composite Shots? If not, Hitfilm has to calculate the frame of the Comp then pass that to the Editor Timeline. If you're having multiple Edit tracks those then have to be calculated and rendered. Proxying those Comps pre-renders them so the Editor Timeline treats them as video clips. That can certainly speed your render. 

  • Nvidia GTX 660 3GB GPU

    I haven't really been using proxies at all because they seem to take forever to generate. I'll play around with that. Thanks.

  • Triem23Triem23 Moderator

    Proxies take tine (they're full quality renders, after all. But, for sake of argument, if you're done messing with the comp with the fire and you're just adjusting your edit timeline, taking the time to proxy will speed up the Editor Timeline AND the final render.

    I had a (very complex) shot that was taking 12 hours to render 30 seconds. I finally proxied some of my Composites. Took 3 hours, but those were the background layers that were locked. And the final render took 3 hours... Ok, 3 hours to proxy and 3 hours to render is long, but still shorter than 12. As I did further refinement on the foreground elements, the BG proxies stayed done and, as I locked more elements I proxied those as well, which meant my final-final render was mostly proxied elements (with just some Lasers and lighting as the last procedural elements. That final-final render took 30 min.

    So, lesson: proxys take time, yes, but can save more time than they take later on. 

    Second lesson: Nine hours to render an hour-40 isn't excessive for a project involving greenscreen comps and generated fire with crossfades, etc. If you watch tutorials from people running top-end rigs with things like Nvidia 1080s they still have lag, too. Tobais at Surfaced Studio works in Ae on a dual-Xeon, dual Nvidia 1080 machine and he's not getting real time render performance either! 

     

  • @HealthWyse No, I never get anything like 100% from Hitfilm. In fact I rarely render directly from it anymore. I use the integration to render Hitfilm files from within Vegas, which is slower than rendering directly from Hitfilm, as it only has a few 'handler' daemons running to deal with the handover; but that fits better with the way I'm editing and also means no double rendering and loss of quality.

    I just exported a short video from Vegas and the 2m 38s clip was being predicted to take 4m 53s as the render progressed. I specifically set Vegas to use CPU only. All went well until near the end of the video where I have a 2 second clip which is an overlay of a car number plate that has been blurred out.  This is a duplicate of the existing clip with just the number plate tracked, masked and blurred in Hitfilm and on a track above the original in Vegas and just the sort of thing Hitfilm does so well when integrated. 

    Until then the CPU usage was at 95% on 6 cores/12 threads. When it hit that point it dropped to 24% with only 4 cores/8 threads running at about 40% capacity and the others idle. After that section it went back up to 95% on all 6 cores/ 12 threads. The upshot was that 2 second overlay added 23 seconds, to finally complete at  5m 16s. 

    Hitfilm is a tool that does some things well and others...not. It's a tradeoff for when/where you use what it does best and what something else does better; but ultimately: the render engine is one of the slowest I've personally had access to. Might be something slower out there, but I wouldn't want to go looking for it.

    The issue is: for plain old 'normal' editing, people vote with their wallets if the rendering and transitions and general scrubbing are slow, so those things get addressed pretty smartish if the companies want to avoid losing market share. People have holiday videos they want to edit to show their friends etc. and they don't want excuses. Hitfilm Express is FREE, so there isn't much upside in spending time on optimising areas that aren't part of it's USP, or rather the USP of Hitfilm Pro, which makes the money.

    Similarly, that USP isn't about fast rendering if you're using multiple layers, particles, masking , flares etc. where anything would slow down to some extent. So does FXHome spend a lot of time getting a 3 hour render down to 2 hours, or add some more interesting bells and whistles and then set a fairly high minimum spec for the computer you'll need?  The latter makes more commercial sense - if you're thinking narrowly - but then when you've got the best and most whizzy machine and Hitfilm seems to use less than half of it: people think they've wasted their money on hardware that's not getting used. Which, when other programs show they can use that hardware, and do things more quickly:  they have.

  • Hitfilm has come a long way in a short time. It's certainly ready for the prime time at this point. The only part where it lags is in render time. No pun intended.

    I see what you mean about the monetary incentive of effects versus speed. In truth, I would be more than willing to pay for pro or a "speed up" add-on if it were available. I understand why they wouldn't do that, however. It is incredibly frustrating to know that you have good hardware that is not being used (25% CPU usage, 12% GPU usage). It requires thinking in the long term, but if they did, then they would realize that they have to speed up render times to make the big money. The most money comes from people who are making videos regularly and render time is a high priority for them.

    It just doesn't really seem to make a lot of sense, so I have to wonder if they've left a part of their rendering code in 32 bits or if there is some kind of OpenGL/OpenCL problem.

Sign in to comment

Leave a Comment