aza547 / wow-recorder

A desktop screen recorder application that records and saves videos of in-game World of Warcraft encounters, and provides a graphical user interface to view the replays. It is free, open source and contains no adverts.
http://www.warcraftrecorder.com
Other
150 stars 29 forks source link

Request: Quality based rate control option #474

Closed vaisest closed 7 months ago

vaisest commented 8 months ago

Is your feature request related to a problem? Please describe. My files are using what I feel is an unnecessary amount of space on my disk.

Describe the solution you'd like I would like for the scene bitrate setting to also support an alternate constant quality parameter. For example it's usually recommended to use the constant quantization parameter (CQP) for NVENC in OBS instead of using VBR/CBR when recording files. As far as I know this option usually helps minimize the file size when you're only trying to prevent very bad quality in badly compressible scenes. I believe ffmpeg also supports this with the -cq n option. x264 also has a similar option called "CRF" in OBS.

Also while unrelated, I feel like adding AV1 as an option could be a good idea. This generation's GPUs all already have support for encoding it.

aza547 commented 7 months ago

Have been thinking about this a bit. It does make more sense than having to select a bitrate which isn't easy to get right. AV1 is harder and needs an OBS upgrade which isn't reading in the upstream library yet. See https://github.com/aza547/wow-recorder/pull/469.

aza547 commented 7 months ago

I'm checking this in, feel free to check it out and let me know if you have any feedback. I'll sit on it for testing for a bit before I release as a fairly big change.

Some headlines:

vaisest commented 7 months ago

Thanks a lot for the change. Those seem like sensible presets. I was curious of how they match up with VBR and tested a 60 second 1440p Fyrakk lossless vod vs NVENC H264 encodes with VMAF (4K model). Here's a plot:

Figure_1

Seems like a slight improvement to worst case moments even though this clip has few camera movements. The matching numbers should probably be mentioned in the UI? They didn't seem to be