Why does QSV hardware encoding result in 3X bigger files?

First off, I want to give massive kudos to everyone who made Shotcut what it is. I’ve tried most of the popular open source and free closed source (aka bait ware) video editors and Shotcut is my favorite so far. But I do have a significant question.

As others have reported in various threads my testing shows enabling QSV hardware encoding (h264_qsv) results in only about a 30% faster encode but the resulting file is typically at least three times bigger than using CPU encoding with libx264. This is using the identical default settings for both (quality = 59%) with the latest version of Shotcut on Windows.

Is this because Quick Sync Video is producing a significantly higher quality result? Or is QSV just vastly inferior at encoding? Or are radically different settings needed for h264_qsv to get a similar file size to libx264? Or is this some software issue in the FFMpeg library or Shotcut? To my eyes with a few tests the QSV quality is similar to the CPU encoded file which is three times smaller.

As it stands now this seems to make QSV support relatively useless in Shotcut as few want files three times bigger than they need to be for only a small improvement in performance. Is that a fair assessment? Does this also happen with nVidia hardware acceleration (h264_nvenc)?

My suspicion is QSV was an Intel feature designed to help their really low power processors such as you might find in a netbook, NAS, etc, deal with media encoding/decoding/transcoding as the CPU would otherwise fall on its face and fail. If QSV lets you watch a 1080 video on your fanless netbook that’s great. But using it on a powerful i5 or i7 perhaps makes much less sense?

That said, many other video editors make very good use of GPU hardware to dramatically increase their performance. But it’s unclear if the right GPU is very practical with Shotcut?

Every implementation of a codec has a different interpretation of quality % and Shotcut does not try to conform all of them.

They also have different abilities to comply with bitrate requests and will vary although that might give closer results. Yes QSV and NVENC are inferior to software encoders x264 and x265. They offer a compromise and you need to reduce the quality % if you want a smaller size.

@shotcut Thanks for the reply. I’ll stick with libx264 pure software encoding for now. It still is worth noting commercial products, and even hardware acceleration with kdenlive (which I believe also uses ffmpeg), can offer much faster performance than Shotcut. For occasional casual use it’s not a big deal. But, if you’re rendering a lot of video, it’s a significant issue. Somehow other editors are getting small file sizes, high quality, and fast exports simultaneously when leveraging higher-end nVidia GPUs.

Care to post your statistics & machine specs?

Kdenlive uses the same engine (MLT - the one I made) and libraries as Shotcut. It is only faster based on how you are using it. Then, you write about NVIDIA in a post about Intel QSV. You sound like you are just trolling now. Nothing is holding you back from getting a smaller file size if you know what to do.