Hacker News new | ask | show | jobs
by Dylan16807 454 days ago
My experience is that CRF by itself works well down to very low bitrates.
1 comments

Compared to other modes of operation, CRF doesn't work better or worse at any arbitrary bitrate. In itself it doesn't do anything fundamentally different about how changes between frames are analyzed or how the changes are encoded. It's a "constant quality" mode of operation, and it will use as much data as it deems necessary in order to meet the quality target. That is, CRF produces a varying bitrate product and you have no actual control over the final bitrate requirement.
I know it's not doing anything very different. But that's my point, that you don't need fancy tuning features.

As for final bitrate, maybe we need to talk more about use case here. Because for very small encodes (often around 250kbps), I never cared about moment to moment bitrate, just the final file size. And if that's too far off I change the factor and run it again.

For things I intend to stream I usually have a bitrate limit on top of the CRF setting, but that's the only optional flag and it doesn't kick in very often. The result is quite high quality out of 2-3Mbps AV1, without any flags that affect the details of the video encoder, so I don't see a need for knowing and understanding optimum settings. And the same setup worked with h.264 at a moderately higher bitrate.

The best thing you can do for the encoder is give it time to work.