Video Sequencer Rendering speed

I wonder what is the Video Sequencer Rendering speed (fps).
Maybe I am doing something wrong? are there any recommended Memory Cache preferences? Should I use Disk Caching? Should I change the tile size in Cycles? Should I choose Fixed number of CPU cores? Or should I use Eevees? Or Workbench?
I have pretty beefy laptop Dell XPS 15, with nVidia 1650
64 GB RAM 2666 MHz DDR4
NVMe PCI 3x4 SSD, 2 TB Sabrent Rocket (advertised as 3500/3000 MB/s, I measured sequential Write/Read as 1400/1380 MB/s)
i7 9750H, 6 core 12 threads, 4.5 GHz
I undervolted the CPU to -115.2mV on CPU Core and CPU Cache -115.2mV, -24mV on GPU, AC CPU power set to 44 Watts on short and long load.
I ran Phoronix benchmarks on pts/cpu and it ran on all cores. all threads 100% for 3.5 hours, without a single throttle.
I ran the Phoronix cpu benchmark both on scaling-governor set to: powersave and performance, both had zero throttling, so I believe my undervolting is set to perfect values.
now
when I test render C4K 2200 frames (24 fps = 92 seconds of footage with no effects, just plain clip) on Blender,
it takes 14 minutes to complete 2200 frames of plain C4K clip export. that makes it 840 seconds to render 2200 frames, 2.6 fps rendering speed.
when I watch the top software while rendering, it uses only 260% out of available 1200% CPU power, which is effectively only using 16-21% of available CPU power.
RAM is not a bottleneck either, I have only few GB of RAM being used, < 5% in use.
NVMe SSD sequential write 1400 MB/s ( 1 frame of C4K resolution is only 8MB, so at 2.6 fps, we are writing only < 24 MB/s to SSD ). so I don’t think SSD is a bottleneck either.
and I experimented with Memory Cache from 0 to 1 GB, 2 GB and 4 GB. it makes no difference in rendering speeed. I also added Disk Caching, and it made no difference in rendering speed.
CPUs are not throttled, I am also looking at the temperatures monitor while rendering, and I get 80 C - 95C max (mostly 85 C), and watching System Monitor graphs of CPU threads in use, I can see CPUs are not throttled and not even at 25% of the available power.
I know it’s a lengthy explanation, but it might help others. I can’t find the bottleneck, as all my laptop resources are not fully utilised. Yet Blender can only do 2.6 fps in C4K export from the plain C4K clip, no transitions, no overlaying text, no effects.
My question is: what am I doing wrong? I can’t believe Blender can only run that slow.
Where is the bottleneck?

PS
I installed DaVinci Resolve because I want to see how fast it can render C4K video. But DaVinci resolve menus and toolbars are so tiny on the 4K laptop screen, that it is unusable. I already posted on BlackMagic forum what I think about DaVinci not supporting 4K monitors in 2020. this is ridiculous to be frank.

Your kind advice on how to speed up Blender on my pretty beefy machine, will be greatly appreciated.

1 Like

(OT) maybe this helps: https://forum.blackmagicdesign.com/viewtopic.php?f=21&t=84614&p=469009&hilit=hidpi#wrapper

2 Likes

OMG! I am so excited to try out DaVinci resolve rendering of C4K. Rushing through the first ever C4K project to see how it goes.

When I saw the DaVinci splash screen displaying as 30% of my 4K screen, and then I saw the menus and toolbars, without any blur, I literally jumped on my chair.

In case someone else needs the details on how to do it, let me repeat the exact steps…

Edit the .desktop file for your DaVinci installation:

sudo vi /usr/share/applications/davinci-resolve.desktop

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Exec=env QT_DEVICE_PIXEL_RATIO=2 QT_AUTO_SCREEN_SCALE_FACTOR=true /opt/resolve/bin/resolve
Icon=/opt/resolve/graphics/DV_Resolve.png
Name=DaVinci Resolve
Terminal=false
MimeType=application/x-resolveproj;
Type=Application
StartupNotify=true
Categories=AudioVideo

PS
I dropped my C4K .mov from Olympus OMD EM1.2 on the DaVinci Resolve | Master / Media area, and looks like DaVinci doesn’t think it is a video clip.
Am I too old and grumpy and asking for too much, or are video editors actually supposed to work with video clips? :dizzy_face:

This is a forum for Blender development. For help using Blender see:

The rendering of video is very slow in Blender. It’s an unprioritized “known issue”.

There has been talk about doing a proper profiling to locate what is causing the slowdown. A rumor has it that color management is one of the elements to blame, but so far no Blender dev has prioritized doing the profiling.

Nvidia supports hardware accelerated encoding and decoding(faster playback) and in ffmpeg this can be enabled. Blender is using ffmpeg as a lib. As far as I know, no Blender dev has prioritized investigating og adding these speed enhancements, which is explained how-to here: https://devblogs.nvidia.com/nvidia-ffmpeg-transcoding-guide/#disqus_thread

So currently the only way to get faster renders of video from Blender is by running an instance of Blender on each core and render a fragment on all of them and then when finished concatenate everything. This add-on does this through the render panel: https://github.com/elmopl/ktba/blob/master/scripts/addons/parallel_render.py
Tutorial(images are the old ui): https://github.com/elmopl/ktba/wiki/Addons
(Getting speedups by using external “multi-threading”, suggests that some of the internal functions of the Blender render code aren’t multi-threaded)

AVI JPEG is the fastest export option, but no audio is included(ffmpeg seems very slow when starting up - which is one of the reasons for faster export with AVI JPEG).
An audio mixdown can be rendered through the Render menu, and then afterwards muxed manually with the video by using ffmpeg.

Too bad things are like this, but I hope the Blender devs at some point will give the video rendering of Blender a much need overhaul and speedup.

3 Likes

I appreciate your thorough reply. I’m a great fan of Blender, and I guess I will have to wait for the speedy rendering times.

I have offered to look multiple times, given there was a typical VSE workload i could look at. @iss wanted to look at some things on his own first, which given he is the lead dev is more than fair.

3 Likes

The slow handling of video isn’t unique for the VSE, that is a problem in all areas dealing with video in Blender. Ex. the MovieClip editor and the Node editor(both seems to have even slower playback than the vse), and rendering eevee as ffmpeg-video is slower than rendering as image sequence. And considering the fast preview of eevee, is rendering to disk really as fast as it can be?

It depends, mainly on nature of source video. To give any advice, I would need to have sample of your source footage and know more about your workflow. Cache or proxies or anything will not speed up rendering. Those are tools to aid preview. As @jesterKing said, this is not really place for such discussions though.

This statement is not true. It has priority, but lower than preview speed during editing. Usually you edit for hours or perhaps days, and make multiple corrections. And you render ideally once. There are still some changes I want to do to preview performance.

I would like to make final export as fast as possible, but unfortunately I can focus only on so many things at once.

1 Like

AFAICT the biggest performance hit is that rendering is single-threaded — my editing machine has eight cores, so this reduces the performance to 1/8th of what’s possible. Unfortunately I’ve worked with multithreaded code enough to know that parallelising code which wasn’t designed for it is not fun.

For reference, if you’re on Linux are another Unixalike, you can use this command to do a multithreaded render from the command line:

seq 1 590830 | parallel --resume --joblog joblog -n 100 --eta --bar 'blender -b video.blend --render-frame `echo {} | tr " " ","`'

The numbers at the beginning are the start and end frames. This will start up as many render instances as you have CPUs, and farm out blocks of 100 frames to each one. It supports resuming, so you can ^C it and then rerun the command and it’ll continue from where it left off; the state is stored in the joblog file. (If you change any of the parameters you’ll need to delete this file and start again. If you don’t delete it, it’ll get very confused.)