[FFmpeg-trac] #9717(undetermined:new): dxva qsv deinterlace has unexpected results
FFmpeg
trac at avcodec.org
Wed Apr 6 17:48:59 EEST 2022
#9717: dxva qsv deinterlace has unexpected results
-------------------------------------+-------------------------------------
Reporter: s170361683 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: git-master | Resolution:
Keywords: qsv dxva | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by s170361683):
* version: unspecified => git-master
Old description:
> 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:
> {{{
> 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
> }}}
New description:
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
}}}
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9717#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list