How to improve time of video compression?

Hi,

I have problem with video compression time. When I render short 15-sec animation in Eevee, it takes 15 minutes to render and compress video. It is annoying when I must pause work and wait. Animation is really simple and runs almost in real time in 3D viewport.

I use newest Blender 2.80.
Container is Matroska.
Codec is H264.
Output quality is low.
Encoding speed is set to Realtime.
Average use of i5 4460 (4 cores) is 30%.
Other codecs and containers take similar amount of time.

Why people can stream videogames in real time and simple animation in Eevee requires 15 minutes to render 15s animation? Maybe is there option to add external codec, increase CPU usage or something?

Can You help me?

Render to an image sequence and then convert to movie as a separate step, either in Blender or using an external tool. This may point out that it’s the Eevee final render that’s running slower and not the video codec.

When you do real-time playback all that data is simply thrown away. Writing it to disk and setting up to render the next frame with final render output channels etc. takes more time.

1 Like

It probably isn’t related to codec or compression.

How many seconds does Eevee render one frame in avarage? Now multiply that number with frame count. You’ll probably get something close to 15 minutes.

To my experience Eevee render speed mainly depends on these factors:

  1. Your GPU power
  2. Output Resolution
    image
  3. Render Samples
    image
  4. Complexity of the Scene (Amount of objects and vertex count etc.)
  5. Cube and Cascade Size
    image

If you want to test your animation quickly, you can try this “Viewport Render Animation”:
image

This will render out the “Viewport Shading” you’re displaying. (You can try in lookdev mode with Scene World which makes it quite closer to your actual renders without lighting)
image


Eevee only uses your GPU to render (for now). So, you can actually open new Blend file and continue your work (or do other CPU related stuff).

Take a look at this post (and read whole topic if you wish):

1 Like

Quick & dirty: In case you are on Windows and just want to get a video file from a viewport render as quickly as possible, you can use the Built-In (I mean in Windows) video capture option.

Just go fullscreen in Blender and press windows+G while focus is on Blender. It should ask you if it’s a game (Win 10). Say yes and press record button. Once finished, you will find result file in user/videos folder.

This will only produce acceptable results in case viewport performance of your scene is (close to) real time.

@Zoot @filibis

You have right, this is not a problem with codec. Te final quality of image is better than in 3dviewport and it takes much longer time to render every frame. Especially samples have big impact. I rendered animation with Workbench engine and it was several times faster. Also render from menu View > Viewport Render Animation was faster than Ctrl+F12.

Thanks a lot. It seems that I was a problem :crazy_face:

2 Likes

@AeroLynx
I am still on Windows 7 and must using external software to capture video from screen but your solution maybe helpful in some cases. Thanks.

I’m always rendering to “file per frame” formats during the render process. Preparing a release video file is done separately, and yes, this can sometimes take a very long time. But this is often the case with all kinds of video sources, not just CG. It seems to have a lot to do with the visual complexity of the (two-dimensional …) scene and the amount of change that happens from one frame to the next. I just start it crunching and go off to do something else for a while.

Final renders I make as PNG files. But for preview I prefer video formats.