Optimal video encoder for sending on discord
So I was measuring the quality and encode time of SVT-AV1 for future use with discord so for the sake of time and quality here is a table!
The target bitrate for the following video was 1077kb/s
Format (Preset) | SSIM | VMAF | Enc time in seconds | AVG bitrate | Score |
---|---|---|---|---|---|
AV1 default (10) | 0.9196 | 58.1309 | 48.147 | 1078bk/s | 1.138 |
AV1 (9) | 0.9225 | 59.8840 | 61.081 | 1078kb/s | 0.923 |
AV1 (8) | 0.9263 | 61.4803 | 82.480 | 1077kb/s | 0.703 |
AV1 (7) | 0.9300 | 63.7214 | 119.151 | 1077kb/s | 0.504 |
X264 default (Medium) | 0.8446 | 19.7845 | 38.068 | 1098kb/s | 0.494 |
X264 (Slow) | 0.8525 | 22.4379 | 45.265 | 1097kb/s | 0.469 |
X264 (Slower) | 0.8559 | 22.6277 | 117.921 | 1097kb/s | 0.182 |
HEVC default (Medium) | 0.9062 | 49.4559 | 86.874 | 1103kb/s | 0.526 |
HEVC (slow) | 0.9081 | 53.3164 | 192.364 | 1105kb/s | 0.255 |
HEVC (slower) | 0.9189 | 57.2618 | 656.738 | 1103kb/s | 0.08 |
(((SSIM + VMAF) / 2) / AVGBitrate / EncTime) * 1000which is a measurement is more or less amount of quality for a specific file size and time.
Higher is better.
The score doesn't directly reflect the quality of the video, VMAF is what you want for that, it reflects how much you would want to use it in a pinch for sending size constrained videos.
Like even though AV1(7) for the best VMAF score it took double the time as AV1(10) so you'd want to use it less.
HEVC support wont be added in discord because of licensing but I measured just because I was curious.
I made this basic "Scoring" system for choosing what settings to use when encoding videos to send on discord.
These tests where run using my AMD 5600x, there would be different speeds and time for different processors with different thread counts.
The only setting I changed for any of these encoders was the target bitrate, every other option is FFMPEG's default values.