[FFmpeg-user] Hardware acceleration for converting PNGs into VP9

Klimek, Denis DKlimek at Stadtwerke-Norderstedt.de
Thu Apr 21 15:52:52 EEST 2022


Hi,

thanks for your help - Looks like that I have to get an newer Intel CPU before thinking about improvements.
Current system does not have any Quick Sync or other graphic hardware accelerations implementations. 

I will try it on my personal PC at home in the upcoming weeks - this has a new Intel CPU built in.

Thanks! 😊

Mit freundlichem Gruß
wilhelm.tel GmbH 
 
Denis Klimek
 
Carrier Manager & Professional Network Engineer
IP-Systemtechnik
 
Tel:        +49 (0) 40 / 521 04 – 1049 -> Work From Home
Mobil:     +49 (0) 151 / 652 219 06

dklimek at stadtwerke-norderstedt.de
www.wilhelm-tel.de

______________________________________________ 



Postanschrift:
wilhelm.tel GmbH
Heidbergstraße 101-111
22846 Norderstedt

Geschäftsführer: Jens Seedorff, Theo Weirich
Vorsitzender des Aufsichtsrats: Christoph Mendel
Handelsregister: HRB 4216 NO, Amtsgericht Kiel
Umsatzsteuer ID: DE 81 299 7663



-----Ursprüngliche Nachricht-----
Von: ffmpeg-user <ffmpeg-user-bounces at ffmpeg.org> Im Auftrag von Dennis Mungai
Gesendet: Mittwoch, 20. April 2022 23:36
An: FFmpeg user questions <ffmpeg-user at ffmpeg.org>
Betreff: Re: [FFmpeg-user] Hardware acceleration for converting PNGs into VP9

On Wed, 20 Apr 2022 at 14:22, Klimek, Denis < DKlimek at stadtwerke-norderstedt.de> wrote:

> Hi there,
>
> I’ve got an question regarding conversation from multiple PNGs into a 
> VP9 movie. Currently we are doing this job with our CPU and this is 
> quite slow… about 2.5fps in average and we have multiple movies to create every hour.
> My idea was to accelerate it via an dedicated graphic card which can 
> be installed into our server to speed this things up.
>
> Which graphic card can handle this work for me and which parameters or 
> additional software pieces are required? (Vendor, Model)
>
> My current system is an Ubuntu 22.04 LTS 64bit and this is our current 
> command line which converts the PNGs to an VP9:
> ffmpeg -y -r 4.86 -pattern_type glob -i $DIR'/*.png' -c:v libvpx-vp9 
> -b:v
> 0 -crf 30 -row-mt 1 -pix_fmt yuva420p -threads 8 -slices 16 -f webm 
> $WORKINGDIR'/'$DIR'.webm.tmp'
> (Codeline is snipped from a bash script which fills the variables with 
> the necessary values)
>
> Thanks for advance for any help 😊
>
> Mit freundlichem Gruß
> wilhelm.tel GmbH
>
> Denis Klimek
> Carrier Manager & Professional Network Engineer IP-Systemtechnik
> Tel:        +49 (0) 40 / 521 04 – 1049 -> Work From Home
> Mobil:     +49 (0) 151 / 652 219 06
>
> dklimek at stadtwerke-norderstedt.de
> www.wilhelm-tel.de
>
> ______________________________________________
>
> [cid:image005.png at 01D854B9.A6B5E0D0]
>
> Postanschrift:
> wilhelm.tel GmbH
> Heidbergstraße 101-111
> 22846 Norderstedt
>
> Geschäftsführer: Jens Seedorff, Theo Weirich Vorsitzender des 
> Aufsichtsrats: Christoph Mendel
> Handelsregister: HRB 4216 NO, Amtsgericht Kiel Umsatzsteuer ID: DE 81 
> 299 7663
>
> [ig]<https://www.instagram.com/azubiteam/>[fb]<
> https://www.facebook.com/wilhelmtel.norderstedt/>
>
>
>
Hello there,

The closest you can get would be with either:

1. Intel's VP9 encoder wrappers for VAAPI and QuickSync (with IceLake IGPs and above), and this is only supported on Linux (at the moment).
The QSV encoder wrapper for VP9 isn't yet functional on Windows on any tested hardware. VAAPI is also only available on Linux.
For the VP9 QSV encoder wrapper usage, see
https://superuser.com/a/1644371/473795 for a good starting point with known limitations.
For the VP9 VAAPI encoder wrapper usage, see
https://stackoverflow.com/a/55036502/4675388 , and there are some known limitations with that encoder too.
I'll retest this and report back as soon as I have access to Intel's (release or engineering sample silicon's) Xe and Arc GPU products, in (both discrete and) integrated where available.
Expect a transition towards OneVPL (from QuickSync) for these workloads as from Intel's CometLake (10th Generation) and newer, and Intel Atom X moving forward. See https://www.intel.com/content/www/us/en/developer/articles/technical/onevpl-codecs-for-intel-hardware.html
for more details.

*Special notes:* 7th Generation KBL (Kabylake) GPUs have support for VP9 encoding wired up and available via VAAPI and *unofficially* via the media-driver package patched with the approriate hybrid encode mode enabled, see https://github.com/sreerenjb/media-driver/tree/vp9-enc-gen9-vme-pak
However, this comes with multiple caveats, as noted on these PRs and issues:
(a). https://github.com/intel/intel-vaapi-driver/pull/209
(b). https://github.com/intel/intel-vaapi-driver/issues/87
Which resulted in this decision not to wire up the functionality (by
default) in the media-driver package:
https://github.com/intel/media-driver/issues/630#issuecomment-495498209

2. On Mac OSX:

There is potential for VP9 hardware-accelerated encoding via videotoolbox in future(?) M-series chips, considering that we now have H/W accelerated decoding for the same, see
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/a41a2efc85f8c88caec10040ee437562f9d0b947
.
Wouldn't bet too much on this (for now), but its' very feasible that Apple will eventually enable this function on their chips at some point.

Warm regards,

Dennis.

Warm regards,

Dennis.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list