[FFmpeg-user] Trouble selecting a pixel format/colorspace while trying to encode a video using ffmpeg and HW accelerated vaapi or qsv interfaces

caetano at vision.ime.usp.br caetano at vision.ime.usp.br
Thu Dec 8 22:28:36 EET 2022


Output of 'ffmpeg -h filter=vpp_qsv' is bellow

====
Filter vpp_qsv
  Quick Sync Video VPP.
    Inputs:
       #0: default (video)
    Outputs:
       #0: default (video)
vpp_qsv AVOptions:
   deinterlace       <int>        ..FV....... deinterlace mode: 0=off, 1=bob, 2=advanced (from 0 to 2) (default 0)
     bob             1            ..FV....... Bob deinterlace mode.
     advanced        2            ..FV....... Advanced deinterlace mode. 
   denoise           <int>        ..FV....... denoise level [0, 100] (from 0 to 100) (default 0)
   detail            <int>        ..FV....... enhancement level [0, 100] (from 0 to 100) (default 0)
   framerate         <rational>   ..FV....... output framerate (from 0 to DBL_MAX) (default 0/1)
   procamp           <int>        ..FV....... Enable ProcAmp (from 0 to 1) (default 0)
   hue               <float>      ..FV....... ProcAmp hue (from -180 to 180) (default 0)
   saturation        <float>      ..FV....... ProcAmp saturation (from 0 to 10) (default 1)
   contrast          <float>      ..FV....... ProcAmp contrast (from 0 to 10) (default 1)
   brightness        <float>      ..FV....... ProcAmp brightness (from -100 to 100) (default 0)
   transpose         <int>        ..FV....... set transpose direction (from -1 to 6) (default -1)
     cclock_hflip    0            ..FV....... rotate counter-clockwise with horizontal flip
     clock           1            ..FV....... rotate clockwise
     cclock          2            ..FV....... rotate counter-clockwise
     clock_hflip     3            ..FV....... rotate clockwise with horizontal flip
     reversal        4            ..FV....... rotate by half-turn
     hflip           5            ..FV....... flip horizontally
     vflip           6            ..FV....... flip vertically
   cw                <string>     ..FV....... set the width crop area expression (default "iw")
   ch                <string>     ..FV....... set the height crop area expression (default "ih")
   cx                <string>     ..FV....... set the x crop area expression (default "(in_w-out_w)/2")
   cy                <string>     ..FV....... set the y crop area expression (default "(in_h-out_h)/2")
   w                 <string>     ..FV....... Output video width (default "cw")
   width             <string>     ..FV....... Output video width (default "cw")
   h                 <string>     ..FV....... Output video height (default "w*ch/cw")
   height            <string>     ..FV....... Output video height (default "w*ch/cw")
   format            <string>     ..FV....... Output pixel format (default "same")
   async_depth       <int>        ..FV....... Internal parallelization depth, the higher the value the higher the latency. (from 0 to INT_MAX) (default 0)
   scale_mode        <int>        ..FV....... scale mode: 0=auto, 1=low power, 2=high quality (from 0 to 2) (default 0)
====

I tried the following command with vpp_qsv filter but pixel format/colorspace of the output is the same:

====
ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -v verbose -f x11grab -draw_mouse 0 -framerate 20 -probesize 42M -video_size 1920x1200 -thread_queue_size 1000 -vcodec rawvideo -i ":0.0" -an -vf 'hwupload=extra_hw_frames=64,vpp_qsv=format=bgra' -c:v hevc_qsv -preset veryslow -global_quality 17 -look_ahead 1 -y /tmp/output.mkv
====

The ffprobe result for the above command is:

====
Input #0, matroska,webm, from '/tmp/output.mkv':
  Metadata:
    ENCODER         : Lavf59.27.100
  Duration: 00:00:04.85, start: 0.000000, bitrate: 50 kb/s
  Stream #0:0: Video: hevc (Main), yuvj420p(pc, gbr/unknown/unknown, progressive), 1920x1200 [SAR 1:1 DAR 8:5], 20 fps, 20 tbr, 1k tbn
    Metadata:
      ENCODER         : Lavc59.37.100 hevc_qsv
      DURATION        : 00:00:04.850000000
====

On Thu, 8 Dec 2022 at 17:06, Dennis Mungai <dmngaie at gmail.com> wrote:

> Hey there,
>
> I'd recommend using the vpp_qsv filter instead.
>
> Please provide the output of:
>
> ffmpeg -h filter=vpp_qsv
>
> And I'll generate a command line you can use to test and report back.


More information about the ffmpeg-user mailing list