I am considering buying a Nvidia GPU for a sole purpose of hardware hevc encoding. Can somebody please recommend a model, i.e. sold on Amazon, that would nicely work, yet not ruin ones budget? I am not a gamer so there will be no other use outside video encoding/editing area.
From the software side I am specifically looking for a card that would allow the encoding using:
a) TMPGEnc Video Mastering Works 6
b) Ffmpeg/avconv under Linux
For example, I found this card on Amazon; ASUS GeForce GTX 970 for ca $230 (https://www.amazon.com/Asus-TURBO-GTX970-OC-4GD5-ASUS-Graphics-Cards/dp/B00WJOU7DA/)
Is it going to work with the said software and if yes, what sort of acceleration in encoding I may expect comparing to a purely cpu encoding based on FX-6100 at 3300?
+ Reply to Thread
Results 1 to 30 of 38
As far as I know all second gen Maxwells have the same encoding hardware, so if no gaming this will be just as good and a lot cheaper: https://www.amazon.com/EVGA-GeForce-Cooling-Graphics-02G-P4-1952-KR/dp/B01DOB6S5M
I have the 950 and a 960, both encode at the same speed with FFmpeg.
I can encode 1080p @23.976 to hevc at about 7 times realtime or 168 fps on the medium setting.
In case you didn't know hevc is very limited with the Maxwell gpu, no b frames, no SAO, and cu size 32 max.
I got mine mainly for h264 encoding, h264 is about twice as fast as hevc.
I don't know about other software, I only use FFmpeg.
Last edited by gregalan; 23rd Jul 2016 at 04:43. Reason: Spelling
The Pascal cards seem to have improved upon the encoding engine yet again. So if at all I'd buy a GTX 1060 or wait for cheaper ones like 1050 still only rumored. Or a GTX 950 like suggested by gregalan if you want to go cheap.
The thing is: these cards' encoding engines don't accelerate conventional encoders like x265, they are blackboxes doing their own thing. Though fast they do not match in encoding efficiency.
Thanks for the responses.
Gregalan, the problem is with the TMPHEnc software which I rely on pretty heavily (while FFmpeg mostly for automated encoding). For some reason they say this:
Also, now supports H.265/HEVC encoding which is supported by the GeForce GTX970 (GM204 DAI) or later GPUs.
GTX 950/960/1050/1060 are later, the 950/960 (and maybe 1050) are just slower in video games.
At least 1060 (but there is no real info about nvenc performance - i assume it is same as on 1070 and on 1080 but who knows nvidia marketing - perhaps it was crippled) , on 980 H.265 is limited to 8 bit only and speed for 60 fps is reachable only for fastest profile (high bitrate or low quality).
Btw ffmpeg support HW encoding in windows too so you are not limited to linux only - it works quite nicely on nvenc.
another info - intel qsv works but performance is worse than 980 also is less stable than nvenc.
my remarks on performance are related to UHD (3840x2160) encoding - my goal is to create working real time encoder where quality is not important (bitrate can be high) - i assume on 1920x1080 all of them will be able to deliver more than realtime performance even on high quality preset.
anyone see any non marketing data , real tests, both speed and quality ?
Apparently still no b-frames in Pascal nvenc hevc. Maybe we have to wait until volta...
I find Cinebench the most reliable benchmarking tool for encoding, but of the newly released NVidia & AMD cards, I can't locate a single benchmark using that, nor any other encode programme!
All benchmarking is focused on games, games & more games!
In the hope of a vastly decreased encode time, & to move on to H.265 encode (my current set-up gives 3 frames a second, so that's pointless), & on 10th July I ordered an 8GB Sapphire AMD RX 480 Nitro+ card from Overclockers UK. It also has 2x HDMI & a DVI port, which almost all other cards lack (they have 1x HDMI & DisplayPort only). However, the card has slipped in manufacturing, & won't be delivered for weeks yet. In the meantime the NVidia 1060 was released.
In light of the lack of encode benchmarks, I posted asking for help on Overclockers forum as to which was the best for encoding, but I only got replies from trolls or fanboys of one side or the other, and all were obsessed with an extra 1fps in Doom, for an extra 50 watts of power. The idea the GPU could be used for anything else apart from games seemed like a foreign language to them.
On the basis of what I could find, the 1060 uses about 50 watts less per hour than the 480, and its CUDA encoding appears have wider software support in encoding programmes. But the 480 works best when undervolted, (go figure, apparently it won't throttle & so will keep its boost speeds if undervolted), so reducing power consumption & it appears to function better with newer API (DX12 & Vulkan) so it appears more 'future proofed' (whatever that means). The 480 also definitely supports hardware decode & encode in both h.264 & h.265 which given the power of these new modern cards, should see a massive cut in encode times (if the hype about the cards being very fast is to be believed). However, whether any encoding programmes will support DX12/Vulkan remains to be seen (I haven't found any).
If I had to do it all again, I would have bought the 1060 as it has wider support encoding (CUDA). But, I am sticking with the 480 only because its too much hassle to wait 10 days for the refund & repurchase the 1060 & wait for that to be shipped, especially as the 1060 is already more expensive than the 480, & since the Brexit vote, the £ has no where to go but down, increasing the likely re-purchase price!
When I receive the 480 & test it, I'll post back details of time savings between my current card (AMD HD-7850) & the 480, if that would help you/anyone?
Last edited by 9th_Attempt; 25th Jul 2016 at 20:29.
Some more perhaps silly questions...
What's the quality of such Nvidia (or generally, video card) based encoders? If we compare them, for example, with Ffmpeg? Say if I use Ffmpeg with some very slow preset, can the gm204 based encoder achieve similar quality to size ratio much quicker or there are some limits where the efficiency will suffer? I guess I am asking about the quality and efficiency of the search algorithms (and flexibility to adjust this or that).
Another question: why such encoders are actually the part of the video cards? What are they used for if most of the high performance cards seems to be for the gamers?
I think I am going to wait a bit till the market calms down with the 1060 (now sold above MSRP). It looks indeed attractive.
"Stream and record your favorite games with virtually no performance impact – thanks to Polaris architecture with Ultra HD HEVC Encode and Decode. With a dedicated multimedia block 4K, H.265, 60 FPS encode and decode is now possible!"
But am skeptical since it is a $100 card. Can your 480 do 4k60 real time video encoding?
FFmpeg probably can do the same (UHD the real time encoding using an average, standard PC) with either extremely poor quality or oversized files. What I am saying, surely it can be done cheaply, but whether you like the results, is a different thing.
VCE (the actual dedicated encoding hardware) is the same across all Radeon 4xx GPUs. So yes, an RX 460 can encode 4K60 in HEVC just fine. The software isn't quite there yet. The only current known implementation is a test build of A's Video Converter, though this is a hackish job using the old deprecated Media Foundation API. AMD's released a new Media SDK, though it doesn't yet support full HEVC encoding, nor the 2-pass feature. You may want to star or watch this to know when it's added: https://github.com/GPUOpen-LibrariesAndSDKs/AMF
As for the best quality, it's a toss-up. Nvidia's new Pascal GPUs do 10-bit HEVC, though AMD's new Polaris GPUs offer 2-pass encoding. From experience encoding H264 with both in software, I'm leaning towards Polaris ultimately winning with the better HEVC quality.
That uses the AMF SDK and thus can only (at the moment) do H.264, no? I've been following the issue tracker and at the moment according to the AMD employee comments there (and on reddit), H.265 support isn't there yet.
I've never tried using ffmpeg via CLI, but I can try running some commands if you like.
ffmpeg - i may try to made such script - source will be internally generated by ffmpeg so one common for all encoders.
Thank you Roph. Since the gtx 1050 will be released soon, I was wondering if it will have the same encoding power as the 1060. You are right about the 460, it has the same encoding power as the 480. OBS supports recording using it (it supports VCE NVENC and Quicksync), but uses the new SDK like you said, so only supports h264 right now. The RX 400 series does not support 4k60 h264 encoding, it only supports 2k. It can encode hevc 4k once the SDK is updated. The AMD rep Robert who deals with this stuff said it will be "coming soon". Once availiable, the user Xaymar will add hevc encoding right away. Quicksync now is the only one that I am not sure will support real-time 4k60 hevc. Kaby Lake U series will support 2x realtime for 4k30 hevc along with 3x realtime h264 4k, so I'm hoping the Kaby Lake desktop line will support realtime 4k60 hevc recording/encoding.
Last edited by ezcapper; 30th Sep 2016 at 12:42. Reason: added the word recording/encoding at the end
Eh, streaming HEVC? That's a few years out at least. No web browser even supports HEVC yet. Only Edge, and that's just passing it off to windows 10 to handle.
It may be an issue with A's converter, I'm not sure, but encoding HEVC is also very VRAM-heavy (~1.5GB) compared to H264 (~100MB).
1. Any difference in encoding engine between 1050Ti and 1060?
2. Is there a need for extra GPU ram when doing h265 encoding? I typically encode 4k24p videos, not sure if it even matters for encoding.
3. Is the video quality improved and comparable between Pascal and conventional x265 nowadays?
Well I can't speak for Nvidia but with AMD VCE, doing HEVC is much more VRAM intensive than H264. Encoding 960x540 HEVC now on an otherwise idle desktop, 530MB VRAM consumed. I've seen it go as high as 1.5GB when encoding higher resolution HEVC.
I'd probably opt for a 1050 Ti with 4 GB RAM just to be safe when some renderer or other conversion/filtering software needs a bit more RAM. Price difference isn't that big. But 2 GB should also be OK, I guess.
Pascal GTX 1050
HEVC Target Bitrate:
AVC VBR Target Bitrate:
Just me, or are those clips not smooth? I checked both 5mbit ones. Especially noticeable in the ripples for example.
The best way I found to get good enough quality from pascal nvenc (I use ffmpeg) is to use the global_quality setting set to 30, with preset slow. It is similar to how crf works for x264. On that clip global_quality 30 yields a 27Mbps HEVC file that looks ok.
Last edited by ezcapper; 30th Dec 2016 at 22:06.