How can I reduce my render times with Blender's VSE?

Mods, feel free to move the thread in case I’m posting in the wrong place.

Right now, I’m using Blender to edit videos, because of the combination of it having a liberal licence and with it having a large number of features relative to similar software with similar licencing.

As I mentioned, for a video I’ll be making, I want to be able to add text, images and audio over some other footage. However, based on a previous project, rendering took around 5 hours, and that video was only around 5 minutes long; granted, I did render the film at 1080p at 60 frames per second. My system seemed to render around 1-2 frames for every second. I can speed up rendering with Cycles Render, but because I won’t be using any 3D effects, using that will mean that the text overlays won’t render and I’m left with a black image.

I think that my computer’s specifications, especially my CPU, might be bottlenecking my current workflow:

       CPU: Intel i3-6100

GPU: Gigabyte GTX 1050Ti Windforce OC

RAM: HyperX Fury 8 GB DDR4 RAM @ 2133MHz

HDD: 1 TB WD Black 3.5" HDD (dual-booting Windows 10 and Linux)

However, I found out that CPU usage was only at around 75% for all four of its threads, so the CPU bottleneck may be part of the problem. I can probably render my film to a reduced resolution and frame rate as a temporary workaround, but since one of my next videos will be around 10 minutes long and may contain more visually complex effects (namely blurring and adding images as well as text over video), rendering time will still be relatively lengthy. Alternatively, I can find alternative software, but I’m unwilling to spend a lot of money for them, especially since I’ll only create videos occasionally, the owners of the software may drop support, and it may not be available for Linux in the case Windows 10 experiences some bugs, such as when I switched graphics output.

I’ve provided a blend file for a completed project (attachments didn’t seem to work for me) and I’ve since uploaded it to here: https://vid.me/NA4c

That looks to be a pretty bargain PC. Might want to check RAM use as well to see if you’re paging to disc.

Are you working with the movie in a container, or converting to frames first? And are you doing the entire project in one single run, or breaking it up into logical edits first before re-encoding everything back into the container?

What’s your target stream? YouTube or other online streaming to mobile devices? 4K TV? HD TV? The former is much more forgiving of lower resolution and frame rate.

I think the problem you’rerunning into here is that Blender VSE doesn’t have very good text tools. So you’re 3D rendering what is basically some simple, non-animated text frame by frame.

So far as I can make out there are three ways you can speed up render times here:

  1. replace each text scene with the VSE text-strip effect… (Everything will render faster, but you’re limited to the one fixed-width font, plus it will take a while to correct everything)

  2. Render a single image of each of the text scenes, replace each text-scene in the VSE with the image (time-consuming, but will get the best result)

  3. On the toolbar of the VSE strip editor there’s two icons: a camera and a clapperboard. These allow you to OpenGL render the contents of the timeline, which means you get exactly what you see in the preview window. I think for your project this will be fine. Of the right hand panel of the VSE preview window you’ll see a tab called “Scene Preview/Render” - Myself, I’d set the drop-down menu to “Material”. I think this will be the quickest way to improve render time.

As far as I know, I think I’m encoding it straight to .mkv through H264. I’ve found out online that rendering each frame as PNG may speed it up and will be helpful in case of reliability issues, but I found that out after I rendered the video. Basically, I’ve done the entire project in one run, since I’m not very confident with working with individual frames first. I’m quite new to this, so admittedly, I was a bit confused by your response.

I right now upload to vid.me, but I might move to YT later (used my phone number enough to be unable to create any more Google accounts). vid.me has a file and length limit of around 1 gigabyte and 30 minutes, unless I get verified (don’t intend to do that soon though). vid.me doesn’t do 4K and I’m fine with that. Ideally, I’d like to upload videos at 1080p at 60 fps, but I may have to take it down at 720p at 30 fps, if, for instance, I were to use videos from OBS streams.

I believe that RAM usage is at around half a gigabyte when I render this.

I’m not sure if I fully understand the second solution, since I tried rendering the text scenes as PNG images, but they don’t seem to show up in the destination directory I assign them when I try to add them to the VSE. Plus, if I use Cycles Render on my text scenes, nothing still shows up.

I think I got the image issue sorted out. I had to use Render Animation instead and reduce the number of frames to 1. I’ve also noticed that if I render the text scenes with Blender Render, I notice some jagged edges around the text; this can be solved by me using the Cycles Render instead and with me using a light, but I can’t get the text to be completely white, nor can I add reflections to the text with Cycles Rendering when adding a VSE scene.

I’ve also noticed that I only get 40% CPU usage when rendering, and that my graphics card pretty much remains idle. I tried adjusting tile sizes and thread counts, but this doesn’t change anything. If I decide to upgrade to another CPU, will IPC change? I’ve noticed that other people are experiencing the same issues with low CPU usage.

The VSE is single threaded so it wont max out the CPU. Sorry.