[FFmpeg-user] Trouble selecting a pixel format/colorspace while trying to encode a video using ffmpeg and HW accelerated vaapi or qsv interfaces
Chen, Wenbin
wenbin.chen at intel.com
Fri Dec 9 08:15:50 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:
In case of RGB input, VPL/MSDK uses 420 chroma format as default for the purpose of backward compatibility.
I will send patch to enable 444 encoding for RGB input, then you can get the same output as libx265 SW.
Thanks
Wenbin
> >
> > > 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.
> > _______________________________________________
> > 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