Render settings

What are the appropriate render settings for HD (1920x1050) 25 fps videos?

The default setting in Kdenlive for MP4-H264/AAC is Constrained VBR.
What are the correct settings for:
Bitrate: 0k or 6000k?
Buffer Size: 0 KiB or 9999 KiB?
Quality: 23 is probably quite good.

GOP: 15 frames or 50?

B frames: 0 frames or Auto?

And a big question: Are there serious reasons to use CBR, or is Constrained VBR still the better choice today?

This is now my setting for rendering:
Does anyone have any suggestions for improvement?

Question: Is it correct not to select anything when scanning, because it is better if Kdenlive does it itself?

grafik

Or is it better to set it to Progressive?

Maybe this can help: https://trac.ffmpeg.org/#Encoding

Also I would suggest to try AV1 codec instead of H264, it is newer, but very well supported on devices. It offers significantly better file size to quality ratio. Default preset in kdenlive is with webm container, but I changed it to mp4. Also I had some issues with opus audio encoder (silence in the video) so I changed it to aac.

Here are my settings, you can change crf option for some other quality if you prefer (higher number equals less quality and file size). and preset for a different encoding speed. Higher number lead to faster encoding, but with less quality in return

ab=128k acodec=aac channels=2 crf=34 f=mp4 g=150 preset=4 real_time=-1 svtav1-params=scd=1:enable-dg=1:pred-struct=2:lp=0:tile-columns=1:fast-decode=0:tune=0:film-grain=0:film-grain-denoise=0:enable-overlays=1:enable-variance-boost=1:variance-boost-strength=1:variance-octile=7:enable-qm=1:qm-min=0 threads=0 vbr=off vcodec=libsvtav1

CBR is used for streaming where you need predictable stream sizes, but VBR is better for a file storage, so encoder can choose what frame will use more or less bytes.

Hello @plehho

Thank you for your detailed answer. When I make my render settings using text entries, I can no longer change them, and they are too abstract for me to understand. I find Kdenlive’s graphical settings much easier to work with.
My goal is to render videos for my PeerTube channel, and it would be great if they could also be played from a USB stick on older TV sets. So I assume that H264 is more compatible after all.

I noticed that vbr=offis contradictory to other settings. It was included in default settings in preset “WebM-AV1/Opus (libre-dav1d)”

crf=34 explicitly tells the SVT-AV1 encoder to use a Variable Bitrate (VBR) mode that targets a constant quality level. The vbr=off flag is not a standard video option for libsvtav1 in FFmpeg and is likely being ignored, but it creates confusion.

I also reorganized the parameters so one that are changed the most come first

Here is the updated preset:

crf=36 preset=4 ab=128k acodec=aac channels=2 f=mp4 g=150 real_time=-1 svtav1-params=scd=1:enable-dg=1:pred-struct=2:lp=0:tile-columns=1:fast-decode=0:tune=0:film-grain=0:film-grain-denoise=0:enable-overlays=1:enable-variance-boost=1:variance-boost-strength=1:variance-octile=7:enable-qm=1:qm-min=0 threads=0 vcodec=libsvtav1

It is fast to edit: Instead of moving sliders as with “regular” presets, you just click on edit preset button and new window apears with your text parameters, you change your numbers and click OK button.

Only parameters you need to change:

  • crf - Quality. Lower number = more quality.
  • preset - Encoder speed. Higher number = faster encoding, but less quality
  • ab - Audio bitrate - use 128k for standard quality, 192k for a very high quality
  • channels - 2 for stereo audio

I will make a note of the settings. But for now, I won’t be deviating from libx264, because compatibility is very important to me so that I can show my videos everywhere possible.
Do you have any suggestions for improving the settings I showed above? Especially the question about Scannig: OFF or ON with Progressive. Does it even matter what you set there? Or is it better to leave it to Kdenlive?

Sensational: with libx264 - 30.5 MB files, with your settings and libsvtav1 with crf=20 - 13,8 MB with similar visual quality.

I would not use Constrained VBR, but VBR - Variable bit rate. And instead defining the bitrate range, use just quality settings, and that is directly changing crf parameter.

YouTube’s codec is AV1 or VP9, depending on the video and size of the channel. It should be very compatible.

Interlaced vs. progressive scanning are two different methods for displaying video frames. The key difference lies in how the video’s scan lines are drawn on a display.

Interlaced Scanning
This is a traditional method, common in older broadcast television and analog formats like 1080i. An interlaced video frame is divided into two separate fields: one containing all the odd-numbered scan lines (1, 3, 5, etc.) and the other containing all the even-numbered scan lines (2, 4, 6, etc.).

Instead of displaying the full frame at once, the display draws the odd field first, then the even field. These two fields are shown in rapid succession to create a single complete frame. For example, a 60i video actually displays 60 half-frames (or fields) per second, which the human eye perceives as a full 30 frames per second. This technique was developed to reduce bandwidth requirements and prevent screen flicker on older CRT (cathode ray tube) displays.

However, interlacing can cause a “combing” or “ghosting” artifact on fast-moving objects, where the two fields are captured at different moments in time, resulting in a jagged, blurry look.

Progressive Scanning
This is the modern standard used in most digital displays, streaming services, and video formats like 720p and 1080p. In progressive scanning, the display draws every line of the frame sequentially from top to bottom in a single pass. A 60p video displays 60 complete, full frames every second.

This method avoids the combing artifacts of interlacing and provides a sharper, more stable image, especially for content with high motion. It requires more bandwidth and processing power than interlacing, but this is no longer a significant limitation for modern technology.

Progressive scanning is now the preferred method for video production and distribution due to its superior image quality and compatibility with digital displays.

Of course, all of my videos today are progressive. The only question is: Should you leave the setting OFF in Kdenlive, so that Kdenlive will probably always make the right choice, or is it better to decide for yourself: So ON and then select Progressive.

I would not use Constrained VBR, but VBR - Variable bit rate

Sure, VBR provides better compression—but is the video just as compatible? I ask because the file size isn’t critical for my very short videos. But it would be great if I could safely play the videos anywhere with a USB stick, even on older hardware, without any nasty surprises. Do you really think that VBR is just as compatible as constrained VBR?

You probably need to switch the encoder to libopus - that’s the reference encoder, and probably the best quality one. The opus encoder implementation is from ffmpeg and seems to have been busted for some time now.

1 Like

That’s now my default setting, as I think VBR is the better rate control.


The question remains:
Is GOP: 12 frames and Fixed recommended?
And B Frames: 2 frames?
What do you think?