lisamelton / other_video_transcoding

Other tools to transcode videos.
MIT License
549 stars 25 forks source link

GPU vs software 10-bit HEVC encodes? #31

Closed Thor263 closed 4 years ago

Thor263 commented 4 years ago

Since I've recently started playing with other-transcode, I've been curious about something. I have a 2018 Mac mini and have been testing software 10-bit HEVC encodes due to the limitations of VideoToolbox and 8-bit input. With my Blu-ray sources I tend to get around 15 FPS, which usually means encoding time is close to double the real running time of a movie. I know I could utilize Boot Camp to take advantage of the Mac mini's Intel 630 (fairly impressive results from one the responses in Issue #29) and I do have other hardware in which I could use a Windows and an Nvidia card. My question is if there is a noticeable difference in quality between a 10-bit HEVC software encode vs a GPU encode? I'd be willing to invest some time or money if there is.

skj-dev commented 4 years ago

I think the general consensus is Nvidia driven 10-bit HEVC is the "gold standard" when it comes to hardware accelerated transcoding. While software may get a little bit better quality, it's really hard to justify losing an order of magnitude of FPS performance for a small gain. I recently retranscoded my BluRay rips, switching them to 10-bit HEVC via Nvidia transcoding, and am very happy with the results. They look a little better than the previous H.264 encodings, and take up a little less space.

;tldr Since you have an Nvidia card (assuming it's Pascal or better), I think the general advice will be to use that for all your 10-bit HEVC encodes. 😄

khaosx commented 4 years ago

@ttyS0 is not exaggerating when he says order of magnitude. We've seen several examples of the quality improvements in 10-bit HEVC in our test suite where scenes we've written off as "as good as it gets" aren't even noticeable. If you have the resources to go to a Windows/nVidia solution for your transcoding, you're going to be impressed by both speed and quality.

lisamelton commented 4 years ago

@Thor263 I would agree with the assessments by @ttyS0 and @khaosx (Thanks, guys!) and advise you also to do whatever you can to leverage that Nvidia card. Trust me, it's not worth your time to wait around for software-based encoders.

Thor263 commented 4 years ago

Thanks for the responses @ttyS0, @khaosx and @donmelton...a good perspective. I was a little ambiguous on my part as to whether I had an Nvidia card or not...I currently don't, but I'm going to be picking one up!

lisamelton commented 4 years ago

@Thor263 Let us know how that goes then!

I'll close this now but feel free to comment here or elsewhere.

mo-han commented 2 years ago

it's not worth your time to wait around for software-based encoders.

why? when at a same bitrate, x265 output quailty beats any popular hardware hevc encoders, such as qsv, nvenc, etc.

hardware encoders are way faster than cpu, yes, but they tradeoff quality/size ratio for speed. so they are popular in the field of livestreaming, as the creators only need to up-stream their frames to the service platform, with fast speed ,low load, and enough good quality, the bitrate is not very important, since nowadays network are enough fast and cheap. the livestreaming platform will re-encode their uploaded data anyway, with much more powerful computing clusters, to generate the down-stream for the audiance, and it's generated with slower encoder to achieve lower bitrate to save the bandwidth cost. similar situation for some other content providing users, although they don't upload live video streaming, they upload video files, and don't care much about the quality/size ratio -- quality is important, but the size could be oversized, it's fine since the platforms like youtube will re-encode the uploaded videos with much powerful and relatively slower encoders to achieve high quality/size ratio copies in different resolution, to save their bandwidth cost as well.

but when it coms to home/personal collections, the story is different. there is no big company using their powerful computing clusters to re-encode our video files, we do that work by ourselves. we care about the final quality/size ratio, very much. the speed is very import as well, but if high speed is bound to low quality/size ratio, then i'd rather take more time to use x265 to achieve both good quality and small size, spending more time. since these beloved collections will be there for a long time with me, and/or my family & friends, a slow but one-time encoding job is worthy. on the other hand, if the collection is not that favorite, and might be deleted soon afterwards, i'll use hardware encoders to treat them, since they are, you know, not worthy.