xcasxcursex
New Member
As far as I gather, one of the primary intentions of the performance increases which come with the new nvenc, is to facilitate single-PC streaming setups.
Of course, downscaling games to stream is strongly recommended. This is no problem if the entire canvas is downscaled, but that prevents full-scale recordings. Practically anyone who is streaming, is also recording gameplay for later offline editing and upload (ie, they're live to twitch and also upload highlights/montages/etc to youtube)
The punchline of this is that while new nvenc has its benefits, the inability to downscale means that many users are still using old nvenc to stream, so new nvenc is not living up to its potential.
The solution to this is fairly simple - scale it on the GPU using CUDA. This is fairly straightforward using ffmpeg with scale_cuda, but interpolation algorithms are limited. Lanczos (among others) is available with NPP, but of course that's not redistributable. The good news is, OpenCL, is redistributable, and what's more, it's portable to other platforms in future. Allowing new Nvenc to have opencl_program filters inserted before the encoder also allows for other effects.
I'd be interested to hear any thoughts on implementing a hardware scaler, either through OpenCL or some other means, so that new nvenc can be more useful. It's a fairly obvious problem, so I can't help but imagine that there's already a plan to solve it....but anyway, I'd be happy to help.
Of course, downscaling games to stream is strongly recommended. This is no problem if the entire canvas is downscaled, but that prevents full-scale recordings. Practically anyone who is streaming, is also recording gameplay for later offline editing and upload (ie, they're live to twitch and also upload highlights/montages/etc to youtube)
The punchline of this is that while new nvenc has its benefits, the inability to downscale means that many users are still using old nvenc to stream, so new nvenc is not living up to its potential.
The solution to this is fairly simple - scale it on the GPU using CUDA. This is fairly straightforward using ffmpeg with scale_cuda, but interpolation algorithms are limited. Lanczos (among others) is available with NPP, but of course that's not redistributable. The good news is, OpenCL, is redistributable, and what's more, it's portable to other platforms in future. Allowing new Nvenc to have opencl_program filters inserted before the encoder also allows for other effects.
I'd be interested to hear any thoughts on implementing a hardware scaler, either through OpenCL or some other means, so that new nvenc can be more useful. It's a fairly obvious problem, so I can't help but imagine that there's already a plan to solve it....but anyway, I'd be happy to help.