Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Hi Matuszewski, First of all I really like your the upscaler that you have built. Very useful - more than it lets on. Ability to either automate or pick stages is a god send capability. Sometimes i have noticed that during merge, the video output is incomplete (i.e. finished video is less than the actual duration). At that time, i run the merge again to create a new video from the interpolated-upscaled images without restarting from begining. 

I have also used Waifu2x Extension from AArong - but your quality output is somehow better? Videos with burned in subtitles does not glitch in the upscaled output. His does for some reason. Also your interpolation is somehow much smoother too?

However, i have a feedback. Your upscaler is stuck to H.264 - not even H.265 or AV1. Yes, H.264 is most stable but since we can use merge option for failed encodes, we do not have to worry. Please add AV1 as an option in the output. Don't bother with any of the hardware encoders they are hot garbage anyways.

I need your help - I have tried to change the 'GUI.pyw' to include AV1 encoding: 

-vsync cfr -c:v libsvtav1 -qp 42 -preset 7 -svtav1-params tune=0:enable-tf=0:enable-overlays=1:enable-qm=1 -pix_fmt yuv420p10le

Instead of the H.264 output video line in merge section.

I confess i am very poor at coding because i tried to save the GUI.pyw file after editing but the output is still H.264? I checked all instances of ffmpeg and try to specify the above line but its not taking at all.

As a disclaimer, i would like to state that the above experiment was only for my own personal home use and no other purpose since i wanted AV1 level compression to work with your excellent upscaler.

Kindly let me know.

Hey, honestly I abandoned the project but I'm at home for two days, I'll see if I can do something.AV1 has a royalty-free licensing model so i think i could add it.

Thank you so much for doing this! Your project will continue to be useful for many years to come.

Hello, I was just playing around with adding AV1 to the program, and I have some bad news. After changing the encoder from x264 to AV1, the video rendering takes several minutes instead of just a few seconds. I tried to figure it out for an hour, but I couldn't make it work. I know AV1 itself is slow in rendering, but this difference is quite big. However, if you'd like to give it a try, all you need to do is change "libx264" to "libaom-av1" in lines 246 and 622 of the GUI.pyw file. Keep in mind that you can't launch the program through GUI.exe then and you'll have to run it directly from GUI.pyw using Python.

Thanks for trying. It is a real shame about aom-av1. Though have you tried libsvtav1 instead? The svt-av1 is much faster encoding than libaom-av1.

I read about SVT-AV1, and apparently, it's faster, but the quality is terrible. However, I checked available codecs in FFmpeg once again, and indeed, there are more to choose from (previously, I didn't expand the terminal window :P). I tried other encoders, and they are much faster (around few seconds). The whole idea of the program is "do it automatically," so I need to figure it out how to detect the most optimal encoder when the program starts. An update is coming soon.

Update added. Several changes + a new upscaling method for general use. It seems to me that it's not so much that you don't understand programming, but rather that my code was quite messy, which is why it took so long.

Hi Matuszewski, my apologies for not getting back to you. After you mentioned about AV1 being too slow, I had completely lost hope.

But you came through - I am grateful to you. And I am loving the new GUI options including Nvidia, AMD, Intel. I have Nvidia 40 series GPU coincidentally and its working great.  Although I have noticed that the Interpolation is no longer working. When using NVenc AV1 it goes up to 'upscaled_foldername' stage -> finishes upscalling and then creates "Interpolated_upscaled_foldername" but then simply stops. I will check with other sample videos to reproduce the issue and report back.

I have one final request and I hope you please consider - Kindly include the option for selecting between 8bit and 10bit encoding. 

I am a big Anime fan and I would like to encode my videos in 10bit especially to avoid any color banding issues seen in 8bit encoding.

This is the CLI syntax I have been using on my end.

-vsync cfr -c:v libsvtav1 -qp 35 -temporal_aq 1 -rc-lookahead 24 -preset 6 -svtav1-params tune=0:enable-tf=0:enable-overlays=1:enable-qm=1 -pix_fmt yuv420p10le

Here the ffmpeg pix_fmt I have set it to 'yuv420p10le'. [Alternatively (not 100% sure) as per NVenc guide we can use 'p010le']

NVEnc AV1 also supports 2 pass encoding. As an example, here is a command line from fastflix.

"C:\apps\Program Files\FastFlix\NVEncC_7.33_x64\NVEncC64.exe" --avsw --device 0 -i "D:\Video Upscale Process\Dual parallel trouble adventure\TEST\upscaled_Dual Test.mkv" --video-metadata clear --metadata clear --chapter-copy -c av1 --cqp 30 --bref-mode disabled --preset quality --tier high --lookahead 24 --aq-temporal --aq-strength 0 --level auto --chromaloc auto --colorrange auto --colormatrix bt470bg --transfer auto --colorprim auto --output-depth 10 --multipass 2pass-full --mv-precision Auto --avsync forcecfr  --audio-copy 1 --audio-metadata 1?language=jpn --audio-disposition 1?default   -m default_mode:infer_no_subs -o "D:\Video Upscale Process\Spirited\Encoding\Encoded\upscaled_Dual Test-fastflix-a280.mkv"

This is my humble request to make it perfect - to either provide as an option to choose between 8bit and 10bit or just change the switch in the command itself and make it default 10bit encoding.

(1 edit)

Update: I checked and NVenc AV1 encoding works fine but if Interpolate option is chosen it does not work. It stops as 'Done' at that stage without interpolation.

No file is generated.