Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
20589 Discussions

List of arguments for QSV enabled ffmpeg filters such as vp_qsv?

BartZLederman
Novice
4,509 Views

I have a PC running Windows which is QSV capable. I've found the codec and at least one QSV filter which really speed up decoding and encoding AVC (x264) videos.

But the experience is extremely aggravating, as there is no proper list anywhere that I can find on what the filters and arguments actually are.

The closest I've come vpp_qsv is this:

https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_vpp_qsv.c

It's a start, but it has no examples of what the arguments actually do or how to use them.

The few examples I've been able to find in various places (including stackoverflow) do not work.

By experimentation, I've found that this works:

ffmpeg -hide_banner -init_hw_device qsv=qsv -hwaccel qsv -i "input.mts" -c:a aac -c:v h264_qsv -preset veryslow -vf "vpp_qsv=cw=628:cx=0:w=640:h=480" -q:v 30 "output.mp4"

I can add other things to the filter. For example:

"vpp_qsv=deinterlace=2:cw=628:cx=0:w=640:h=480"

will work. However, this will NOT work:

"vpp_qsv=cw=628:cx=0:w=640:h=480:async_depth=4"

even though there are examples posted that say it will, and the web page posted above says that async_depth is a valid parameter.

[Parsed_vpp_qsv_0 @ 0000000005bff8c0] Option 'async_depth' not found [AVFilterGraph @ 0000000007327dc0] Error initializing filter 'vpp_qsv' with args 'cw=628:cx=0:w=640:h=480:async_depth=4' Error reinitializing filters! Failed to inject frame into filter network: Option not found Error while processing the decoded data for stream #0:0

I also have been unable to find good examples of using more than one QSV enabled filter at the same time.

I'm using the newest version of ffmpeg I can find:

I:\ffmpeg -version ffmpeg version 4.4-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers built with gcc 10.2.0 (Rev6, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml 2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enab le-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --ena ble-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-lib zimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang - -enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine - -enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libv orbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100

and the output of "ffmpeg -filters" says I have the various QSV enabled filters on my system.

I have searched dozens and dozens of sites including every Intel web page and document I can find,  and ffmpeg.org, and I cannot find a clear explanation of how the various QSV enabled filters work, with examples that will actually execute on my system. QSV related documentation from Intel has a lot of code words and phrases used by sales personnel, but not much in the way of actual information on usage.

Could someone please say where the to look? Someone developed these filters, so someone somewhere must know how they work and why async_depth doesn't work.

0 Kudos
7 Replies
DeividA_Intel
Employee
4,465 Views

 Hello BartZLederman,  

  


Thank you for posting on the Intel® communities.   

  


In order to better assist you, please provide the following:  


  


1. Run the Intel® System Support Utility (Intel® SSU) to gather more details about the system.  


· Download the Intel® SSU and save the application on your computer: https://downloadcenter.intel.com/download/25293/Intel-System-Support-Utility-for-Windows- 


· Open the application, check the "Everything" checkbox, and click "Scan" to see the system and device information. The Intel® SSU defaults to the "Summary View" on the output screen following the scan. Click the menu where it says "Summary" to change to "Detailed View".  


· To save your scan, click Next and click Save.  




Regards,    


Deivid A. 

Intel Customer Support Technician 


0 Kudos
BartZLederman
Novice
4,454 Views

What in heaven's name is WRONG with you people?

 

I'm asking for documentation on a piece of your software.

 

This has ABSOLUTELY NOTHING to do with the configuration of my system, does it?

 

You obviously did not read my question, and have no intention of actually doing anything to answer it.

 

This is just another example of how Intel doesn't really care about it's customers (or victims).

In any event, I have tried running Intel software such as the "System Support Utility" in the past.  Most of the Intel software I've been told to run doesn't actually work, and when I report that I have been told that Intel doesn't actually support any of it's utilities and if they don't work it's not Intel's fault.  If you don't believe my search through this form and you will find Intel people saying this.

 

Now why don't you actually answer my question: where is the documentation for Intel's vpp_qsv filter and other QSV enabled filters: or don't you ever document your own software.

 

0 Kudos
DeividA_Intel
Employee
4,422 Views

Hello BartZLederman, 



We will try to check further on this and provide you with any details that we find. For the moment, check the following link that may contain useful information:



- https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/quicksync-video-ffmpeg-install-valid.pdf






Regards,  


Deivid A. 

Intel Customer Support Technician 


0 Kudos
BartZLederman
Novice
4,417 Views

I already have the PDF.

 

Once again, it says ABSOLUTELY NOTHING about vpp_qsv or any other filter.  If you don't believe me, look at it yourself.   It only has information about some of the codecs.  I already have a newer version of ffmpeg, it already has all of the codecs and filters built in, I am able to process videos using the QSV enhanced codecs and filters.  But there should be more: there are at least four filters which have been enhanced to use QSV to transform videos faster with the GPU instead of the CPU, and you say nothing about the argument lists or how they can be used.  I have found a very minimal list of the arguments for vpp_qsv and by experimentation I am able to use some of the features, but this is NOT how you should be treating your customers.  There should be proper documentation for these filters that is easy to find.

The PDF should also have better documentation on how the codecs are used, and the list of arguments for those as well.  There is a little bit of documentation available for them but it could be a lot better.

0 Kudos
DeividA_Intel
Employee
4,356 Views

Hello BartZLederman, 



This is the outcome of the research performed:



1. This link has an example command to run ffmpeg-qsv and it may help. https://trac.ffmpeg.org/wiki/Hardware/QuickSync (This site is not stable these days. Please try it in few minutes if the web page reports an error )

 


2. For the “async_depth” problem. FFmpeg 4.4 may not contain this feature. FFmpeg master contains this feature, but you need to manually compile source code.

 


You can run the following command to check the supported feature:


“ffmpeg --help filter=vpp_qsv” check the supported option for a specific filter. You can run this command to check whether async_depth is supported.

“ffmpeg -filters” check the supported filers

“ffmpeg -filters | grep qsv” check the supported qsv filers


 


3. To use the latest ffmpeg-qsv, you also need to apply patches in https://github.com/intel-media-ci/cartwheel-ffmpeg on ffmpeg master and compile it. These patches have not been merged into ffmpeg yet.






Regards,  


Deivid A. 

Intel Customer Support Technician 


0 Kudos
BartZLederman
Novice
4,341 Views

Thank you for this information.  While I still think the 'documentation' is somewhat lacking, it is a significant step forward, and does help. 

There is still some information that is missing (such as, 'what is ProcAmp'), and in the tests I have run so far, the "deinterlace" value does not have a default, it must be explicitly specified.  It would appear that what I consider to be proper documentation simply does not exist, and the only way to find out what all of the arguments do is by experimentation.

0 Kudos
DeividA_Intel
Employee
4,323 Views

Hello BartZLederman, 



I would like to let you know that this was the information that we were able to find and share, however, I do understand your concern and frustration.



You may find more information if our developer zone forums, which you can access using the following link:


- https://community.intel.com/t5/Software/ct-p/software-products





Regards,  


Deivid A. 

Intel Customer Support Technician 


0 Kudos
Reply