I have been looking for a test of the encoding quality of Kaby Lake's Quick Sync hardware for a while, yet as anyone that has tried to find any definitive tests will attest to, there doesn't seem to be any such test...until now. there's an old saying that if you want a job done right you are going to have to do it yourself, that's what I did. A few words are in order before I get to the tests, I used to have a Haswell based Xeon with 16Gb of ram and near Thanksgiving of last year, the price of the AMD Ryzen 1600 dropped to $170 so I picked up a bundle from Microcenter with a motherboard, the 2 for $200. I also added 8Gb of DDR4 for a total of $300.
Despite the fact that in many canned, well threaded benchmarks the 1600 is faster than the Xeon by a good amount, I have considered it a total waste of money, I have used the term "snake oil" and "fool's gold" to describe AMD's Ryzen offerings.
So when I saw that Microcenter had an i3 7100 and a good Gigabyte motherboard on sale for the bundle price of $122 with a $10 mail in rebate, I decided to pick one up.
I'm not going to lie to you guys, getting Intel's Quick Sync working on Linux was a major PITA; I spent nearly 4 days, installed and wiped away numerous distros, custom compiled dozens of FFMPEG versions, custom compiled and installed numerous Intel driver versions and I was just about to give up and return the bundle and get a refund when I stumbled upon a couple of guides that by themselves would result in errors but combining portions of each set of instructions, I was able to get hardware h264, hevc, 10 bit hevc AND vp9 encoding via ffmpeg+vaapi using Ubuntu Gnome 16.04 LTS with the vanilla Mate desktop installed.
I intend to post a ton of encoding samples. so keep watch and if anyone is interested I will post an easy to follow guide on how to get the same thing working on your system, based on everything I have learned getting this thing to work. I will also be giving some additional details about performance, but first I want to post a bunch of vaapi samples, so you guys can decide for yourselves if Intel's hardware VP9 encoder is something you want to look into.
The source samples are from here:
You will need to register a throw away account, but they have very fast servers, easily maxing out my 200 mb/s connection. You will find 2 sets of videos for each type of video, 1 is a 5 minute AVC 4k 60fps file and the other is a 45 second 13 Gb 4k 60fps ProRes file, it is the latter of each that I used for source. Just a heads up, for some reason the MOV file that is listed under the 15 heading is the same as the 16 one, the mp4's are different however <-- this will make sense if/when you check out the files.
As for how I tested, I decided to do what I am calling a "Netflix" test, basically I looked to see what various streaming services use as the target bit rate for their offerings, my understanding is that Netflix uses 15mb/s for its 4k streams, the following command lines for each file (obviously the source and target names changes with each one), this is a work in progress, it's the options I have settled upon now, I may post new samples with updated options.
time ffmpeg -vaapi_device /dev/dri/renderD128 -i 16.mov -vf 'format=nv12,hwupload' -c:v hevc_vaapi -g 150 -bf 4 -global_quality 1 -maxrate 15M -an 16_hevc.mp4
time ffmpeg -vaapi_device /dev/dri/renderD128 -i 16.mov -vf 'format=nv12,hwupload' -c:v h264_vaapi -g 150 -bf 4 -compression_level 1 -coder cabac -b:v 15M -an 16_h264.mp4
time ffmpeg -vaapi_device /dev/dri/renderD128 -i 16.mov -vf 'format=nv12,hwupload' -c:v vp9_vaapi -g 150 -bf 4 -compression_level 1 -bsf:v vp9_raw_reorder,vp9_superframe -b:v 15M -an 16_vp9.webm
Note: I am having uploading any files at the moment, I am getting a request timeout message, as soon as I can I will start uploading samples.
+ Reply to Thread
Results 1 to 2 of 2