Opened 6 months ago

Last modified 6 months ago

#9717 new defect

dxva qsv deinterlace has unexpected results

Reported by: s170361683 Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: qsv dxva deinterlace
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by s170361683)

I'm getting amazing results with FFmpeg and DXVA, except for deinterlacing.

I've plenty of interlaced 50i samples that I would like to convert to a silky smooth 50p but all I am getting is jerky 25p deinterlacing

This happens when I specify deinterlace=bob or deinterlace=advanced in vpp_qsv filter:

-vf hwmap=derive_device=qsv,vpp_qsv=async_depth=4:deinterlace=advanced

full command:

ffmpeg.exe -r 25 ^
    -init_hw_device qsv=hw,child_device_type=dxva2 ^
    -filter_hw_device hw ^
    -extra_hw_frames 32 ^
    -hwaccel dxva2 ^
    -hwaccel_output_format dxva2_vld ^
    -threads 1 ^
    -i "interlaced_input.ts" ^
    -c:v h264_qsv -q:v 25 -preset slower ^
    -vf hwmap=derive_device=qsv,vpp_qsv=async_depth=4:deinterlace=advanced ^
    -y "output.mp4"

Media Player Classic deinterlace it smoothly to 50p.

If I use yadif's bob, yadif=1, I get the desired result; a smooth 50p

-vf hwmap=derive_device=qsv,hwdownload,format=nv12,yadif=1

This is why I feel that this is actually a bug

Sample 50i file:
https://www.mediafire.com/file/tpkm4tx7wkxz6fu/interlaced_input.ts/file

FFmpeg official build 5.0:

configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband

Change History (4)

comment:1 by s170361683, 6 months ago

Description: modified (diff)

comment:2 by s170361683, 6 months ago

I also experimented with this patch, which was supposed to double the frame rate.

https://patchwork.ffmpeg.org/project/ffmpeg/patch/20210514045400.3277256-15-haihao.xiang@intel.com/

Indeed, it produced 50p, but the motion was as jerky as 25p. Not very useful.

comment:3 by s170361683, 6 months ago

Description: modified (diff)
Version: unspecifiedgit-master

comment:4 by s170361683, 6 months ago

Keywords: deinterlace added
Note: See TracTickets for help on using tickets.