It means that you only need new header files where all new structs and functions are redefined and then you can implement them to ffmpeg and recompile it, there are not new .h files yet published.
But from my tests i can’t imagine that there will be any significant quality improvment possible with new functions, i think they will be for special cases only, you can use new driver as it is with old ffmpeg and it will works like charm.
I did all my tests with ffmpeg 4.1 but there is no difference when you use ffmpeg 3.2 or any other tool.
No, i didn’t see any improvment at all for GTX cards, we did alotof tests and actualy we sell all of our Quadro P5000 GPUs.
Another news:
I found that with SDK 9.0 and drivers function -b_ref_mode middle is actualy on by default for HEVC, and new drivers supports also mode each, mode middle brings 0.2 PSNR, which is main reason why 418.30 are better than 415.27 when B-frames are used.
It looks that 64x64 matrixes are still not supported yet, but actualy we don’t wan’t to use them, because they could degrade quality in many cases.
It is very interesting that main performance impact of NVENC is when using 8x8 CU, or 16x16 CU, speed difference of NVENC is: 8x8 - 150 fps (slow/hw preset), 16x16 - 300 fps (default preset), 32x32 - 600 fps (fast preset) for 1080p content, so generaly i think this version of NVENC is not yet fine tuned and could increase performance in future for slow/hq/default to almost 600 fps (we hope!!!), that could eliminate need of second NVENC engine, just to mention Quadro P5000 with dual NVENC has total speed of 700 fps (350 per ENGINE at default preset).
Tips:
For realtime encoding 4kp60 content at best possible quality you could try this setting for ffmpeg (custom build)
-preset slow
-bf 4
-b_ref_mode middle
-rc_lookahead 32
-gop 600
-r 60
-min_cu_size 32x32
This will give you performance of 95 fps for 4k content with quality very near to Default preset which has performance of 69 fps and is not stable for long time run in realtime. Also when you use only 32x32 matrixes decoding is much simpler.
So Windows driver 418.81 was released yesterday, so a later version than the Linux beta with the SDK 9 improvements…but nothing in the release notes about SDK 9 or NVENC Turing support.
We are with ffmpeg going to encode thousands of MXF video files around 1 PB to H264 or H265 to save storage space. What is the best hardware when going for that RTX 2080 Ti? How important are the other HW like CPU & RAM?
By reading the thread I understand that version of the Nvidia driver is important and it gets faster with each release. Right?
In SDK9, HEVC can use “B-FRAMES AS REFERENCE”.
HEVC can use NV_ENC_BFRAME_REF_MODE_MIDDLE and NV_ENC_BFRAME_REF_MODE_EACH.
(H.264 can use NV_ENC_BFRAME_REF_MODE_MIDDLE only.)
This function maybe improves Turing’s HEVC encoding quality.
So using latest Zeranoe Windows ffmpeg build I see the following:
b_ref_mode each not supported for HEVC
b_ref_mode middle produces tons of warnings in the output about invalid dts and pts. I’ve tried with a few different sources
Also on my own ffmpeg-based code I am finding that avcodec_receive_packet is returning an empty/invalid packet, even though the function is returning a value of zero which means it should be ok.
Is anybody else seeing issues with Windows ffmpeg with b_ref_mode middle under SDK9 and latest Windows driver?
My opinion: TeslaT4 is unusable for VDI due to NVENC problem. Turing is unbalanced chip for VDI - NVidia add RT cores, boosted CUDA cores and memory but dropped one NVENC. There is comparison VDI usage with NVENC assisted stream encoding (H.264, Low latency High Performance single pass, reference NVENC speeds are taken from NVidia Video Codec SDK 9.0 (NVENC_Application_Note.pdf), GPU clocks from wikipedia):
Almost inexplicable.
Somehow it feels as if the T4 is either a down-grade for NVENC with high density workloads OR NVIDIA needs to work on their device drivers.
So after reading this, do I use my Quadro RTX 4000 or my Quadro P5000 in my streaming media server? I own both cards and only stream H.264 out. It seems the P5000 might be my better choice due to its dual NVENC chips? Please correct me if I’m wrong.
So this is the part I don’t understand. As far as I know I don’t have control over these metrics. Maybe I do with the very simple “quality setting” of Plex Media Server? I always choose the highest quality setting which says “Make My CPU Hurt”.
But I’ve been having issues in general with hardware transcoding that I don’t really know what to do at this point. Hardware transcoding stalls or doesn’t work at all and I’ve had to fall back on software transcoding.