2.8X VSE performance and BRC ( Blender Render Controller ) + file size + encode device settings

Performane and BRC

I use Blender not just for modeling but sometimes also I work with VSE. For 2.79 I used tiny thing called Blender Render Controller. It allow to fully utilize all CPU threads and speed up encoding significantly.

I skiped 2.80 because of reasons but now I want to switch to upcoming 2.81. Problem is that this BRC is not work for 2.8X Blenders and there still is no new version.

But this topic is not about BRC developers but about Blender it self.

Here some numbers.

Encoding 600 frames of video from 3840x2160 60 fps AVI to 1920x1080 60 fps H.264 MPEG-4 in High Quality and with Slowest encoding speed.

1. Just Blender 2.79 process takes 3:24 and it look like this on picture.

2. Latest for today Blender 2.81 process takes 1:35

3. Blender 2.79 process run through BRC time is 0:19


Question is - why some third party tiny software can " just do it " but Blender itself can’t do things same good enough even close?

File Size

It looks very interesting. In both Blenders I encode with same settings. But as you can see in screenshot below output file have different sizes. And this difference is not about 1 - 2 Mb.

Same 600 frame video from Blender 2.79 file 31.674 KB / from Blende 2.81 file 49.922 KB.
The only difference in settings is that 2.79 have 9 options and I used " Very slow( smallest file ) " / Blender 2.81 now hae only 3 options I used " Slowest ".

Screenshot

So question is what’s wrong with file sizes? Is 2.81 " Slowest " not equal in compression level to 2.79 Very slow?

VSE Render Device Settings

Last thing - render device settings. So in 2.79 interface organized a bit different then in new 2.8X.
For me it always looks true that if I see " render device " is CPU it just CPU for all render processes and for VSE too… So if someone have better GPU and choose GPU compute - VSE will encode through GPU ( I dont tried to use GPU ).

But now I notice that default 2.8X render engine is EEVEE and it have no render devices settings… Only if I change it to Cycles I see some CPU/GPU menu. But VSE encode video on CPU no metter is it EEVEE chosed or some Cycles but GPU compute…

So I asked my self - emmmm, but wehere is VSE encoding device ( devices? ) setting? Do we can encode on GPU? Or if someone have 2 CPU’s motherboard - choose to use one or two? Or use both CPU and GPU? In contexst of BRC - use N CPU threads, use 100% of resources, etc. settings? Where all this stuff for VSE?

I would be glad to see here any from Blender devs staff or maybe anyone other who know more than me about things I wrote. Thanks for reading.

There aren’t currently any plans for improving CPU core usage specifically ( https://developer.blender.org/T64682 ), but there have been tests in getting better performance out of the FFMpeg library used. AFAIK nothing tangible though.

FWIW the render device has always been for the actual rendering process, not the encoding.

You actually can use BRC with Blender 2.8x! It’s just that 2.79 has to be installed as well for it to work. I use an AMD 3950x and it works amazingly! I can’t believe the Blender Foundation hasn’t officially supported it or created something similar yet. :slight_smile:

I know I can. Still can, until they change some one row in code and BRC runned on latest 2.79 stop encode scenes made in 2.8X, then all of us will suck.

Newer wersion of Blender, it so good, tons of new features - no thank you, F it all, I have good old. Things should not work in this way …

What I can’t - I can’t get the point why NOT to make Blender work in this way. Why NOT add some " Render in background " ( with parameter - how many threads to eat for100% ) button to do sae as BRC Blender - split movie to chunks, run N x number of CPU threads instances to render using 99-100% of my CPU.

What the point to maintain any native encoder if it work so much slower? I just don’t use it at all, I think no one who work with encoding profesionally don’t use this native encoding, but BRC instead.
All I care when I want to encode something ishow fast I take it. No need to care about my PC usability - just use 99-100% of my threadripper instead and make things faster…

1 Like