Closed wintervaler closed 3 years ago
@wintervaler This is a great question! Thanks for asking.
I typically get 125-175 fps transcoding full-size Blu-ray rips over a slow network connection to 10-bit HEVC using the Nvidia GPU on my GeForce GTX 1080 Ti card. My old Intel Core i7-6700K CPU can't do HEVC but it can get over 300 fps transcoding some Blu-ray rips to H.264. Although typically that number is more like 250 fps.
Is that the kind of information you were looking for?
I have been trying some transcodes from full-size Blu-ray rips on my MacBook Pro (Core i7 9750H w/ Intel 630 GPU) on Boot Camp and getting 80-100 FPS with 10-Bit HEVC... Transcoding 4k UHD Rips to 10-Bit HEVC is like 19 FPS...
@jaromirrivera Wow! That's better HEVC performance than I would have thought you could get with that setup. And, BTW, transcoding UHD content is problematic anyway due to color issues.
@wintervaler I have an i9 9900k paired with a 1660ti. When I do 10-bit HEVC encodes, I get around 130fps. When I do h.264, I hit in the 160-180fps range, depending on input. I use the nvenc modules for both.
These are really helpful and interesting. Thanks for the responses guys! Seems like those Nvidia cards really crank...
These are really helpful and interesting. Thanks for the responses guys! Seems like those Nvidia cards really crank...
We discovered early on that a good GPU is the key for a transcoding box. It makes WAY more impact than the CPU.
I run a GTX1060 now but with my previous GTX950 I was getting ~50-150fps depending on input and output. Might be worth looking up something in the 9xx series on eBay, they’re pretty cheap.
Ryzen 7 1700X + Nvidia GTX 1660, 125-130 fps for 10-bit HEVC. I've not extensively tested h.264 with this.
FWIW, I got around 100fps using x264 software encoding with that CPU
Typically, we're seeing that the older Pascal NVEnc chips (e.g. 1060/1070/1080, Quadro P1000 etc.) give around the 150-175fps for --hevc --nvenc
whereas newer Turning NVEnc chips are slower showing around 130-135fps (even thought they are 'faster' in other areas like h/w accelerated b-frame and fast profile streaming which aren't part of the solution here).
The interesting part is, as far as we can tell through lots of testing, there's little or no difference from the cheapest Pascal card compared to the most expensive. Ditto for Turing. So a $200 1650 Super (Turing) will give almost the same transcoding performance as a $1500 2080 Super.
Any of the Pascal or Turing cards listed here will give performance figures above ... the matrix below is helpful (but avoid the old Volta-based GTX1650)
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
@rhapsodians Yeah, the performance curve is weird. But beneficial for us hobby transcoders with those prices. :)
Along the lines of performance discussion, I was wondering what hardware other-transcode
would perform the best on; has anyone tried running this with an iOS version of ffmpeg
driving VideoToolbox?
@willie Not that I know of. And since other-transcode
is a command line tool, I suspect it would be problematic.
@donmelton I didn't think about the difference between the ffmpeg
tool vs the library. I should find a Mac with a T2 chip in it to see how it performs as a metric.
A comment on @wintervaler's original question. By default other-transcode
uses the CPU to decode the input file before passing that information to the GPU (in your case an integrated GPU) to encode. It is possible on low powered CPUs such as yours, that the bottleneck on performance is the decode rather than the encode. To test this theory you can try running a test with --decode all
in your command. This should force other-transcode
to use your iGPU to decode as well as encode.
The reason that this is not the default setting is that if you have a high performance CPU you can decode faster on the CPU than on the GPU, so enabling this setting could slow your encode. But for you it could speed it up.
@martinpickett That is really useful, thank you. Interestingly, that didn't help my HEVC transcoding speed at all - still hovering a little under 50 fps. But comparing two h.264 encodes - one with --decode all
and one without - --decode all
ended up more than doubling my output speed, to around 115-125 fps. The test without hardware decoding hovered around 50 fps.
Complicating this is the fact that I must fall back to VAAPI for h.264 transcodes (I'm a Linux user, at least on the transcoding box) while QSV works just fine for HEVC, as mysteriously outlined in a previous other-transcode
issue post. So I'll also test VAAPI HEVC encodes and see if there's any diff between those two with hardware decoding and report back.
Well - I'm on coronavirus-inspired rabbithole and I wasn't sure where else to ask this.
Put this down in the “I’m just curious” column. Have you guys done any comparison in terms of average speed with
other-transcode
across different Intel CPUs?I’m running my transcodes on an 8th-gen Intel Celeron with a correspondingly low passmark score, and I’m usually averaging somewhere south of ~45 FPS / 1.5-1.9x speed on my Blu-rays (using HEVC - the odd part is it’s not that much different for h.264 - though h.264 is limited to VAAPI as I’ve described in another issue issue post). This is, to be honest, not bad for me considering I bought the Celeron box for $100 and I had no beefy transcoding power before (an hour for Blu-ray conversions beats 3 hours, for sure!)
That said - I assume some are getting way speedier results when transcoding their Blu-rays (I saw some on Twitter saying FPS was in the hundreds? I think I can only crack 100 if it’s a DVD rip that I’m crunching, but never for HD content). I’d love to see how my results compare to a beefier i5 or even an i3, as I could theoretically upgrade the CPU in my transcoding box to a different 8th-gen processor and of course the restless part of my brain is thinking about whether that’s worth it…
I realize there’s variation depending on the movie, but - are there any existing comparisons or anecdotal evidence any of the team would be able to share? I’d be interested in starting to put together a results table on what different processors are capable of, even if it’s not standardized around one specific job/movie title - just general output results on an average transcode job.