[FFmpeg-trac] #10730(avfilter:new): -vf vidstab creates binary transform.trf (ffmpeg 6.1)

FFmpeg trac at avcodec.org
Sat Dec 9 11:04:19 EET 2023


#10730: -vf vidstab creates binary transform.trf (ffmpeg 6.1)
-------------------------------------+-------------------------------------
             Reporter:  JouMxyzptlk  |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  avfilter
              Version:  unspecified  |               Resolution:
             Keywords:               |               Blocked By:
  vidstabdetect transform.trf        |
  binary                             |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Description changed by JouMxyzptlk:

Old description:

> ffmpeg 6.1 using -vf vidstabdetect=result=transforms.trf creates binary
> transform.trf
>
> How to reproduce (with any input video):
> {{{
> c:\prog\ffmpeg\bin\ffmpeg.exe  -i "input.mp4" -vf
> vidstabdetect=stepsize=32:shakiness=10:accuracy=10:result=transformsffmpeg61.trf
> -f null -
> ffmpeg version 6.1-full_build-www.gyan.dev Copyright (c) 2000-2023 the
> FFmpeg developers
>   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
>   configuration: --enable-gpl --enable-version3 --enable-static --pkg-
> config=pkgconf --disable-w32threads --disable-autodetect --enable-
> fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
> --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
> librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
> libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
> libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
> libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
> libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
> libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
> libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-
> libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-
> libbs2b --enable-libflite --enable-libmysofa --enable-librubberband
> --enable-libsoxr --enable-chromaprint
>   libavutil      58. 29.100 / 58. 29.100
>   libavcodec     60. 31.102 / 60. 31.102
>   libavformat    60. 16.100 / 60. 16.100
>   libavdevice    60.  3.100 / 60.  3.100
>   libavfilter     9. 12.100 /  9. 12.100
>   libswscale      7.  5.100 /  7.  5.100
>   libswresample   4. 12.100 /  4. 12.100
>   libpostproc    57.  3.100 / 57.  3.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
>   Metadata:
>     major_brand     : mp42
>     minor_version   : 0
>     compatible_brands: isommp42
>     creation_time   : 2023-12-08T20:37:22.000000Z
>     com.android.version: 10
>     com.android.capture.fps: 60.000000
>   Duration: 00:00:22.74, start: 0.000000, bitrate: 38902 kb/s
>   Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
> yuvj420p(pc, bt470bg/bt470bg/smpte170m), 3840x2160, 38528 kb/s, SAR 1:1
> DAR 16:9, 59.50 fps, 60 tbr, 90k tbn (default)
>     Metadata:
>       creation_time   : 2023-12-08T20:37:22.000000Z
>       handler_name    : VideoHandle
>       vendor_id       : [0][0][0][0]
>     Side data:
>       displaymatrix: rotation of -90.00 degrees
>   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
> stereo, fltp, 95 kb/s (default)
>     Metadata:
>       creation_time   : 2023-12-08T20:37:22.000000Z
>       handler_name    : SoundHandle
>       vendor_id       : [0][0][0][0]
> Stream mapping:
>   Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
>   Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
> Press [q] to stop, [?] for help
> [swscaler @ 000002185c53c200] deprecated pixel format used, make sure you
> did set range correctly
> [vidstabdetect @ 000000b7fa9ff5d8] Multithreading: use 25 threads
> [vidstabdetect @ 000000b7fa9ff5d8] For high accuracy use lower stepsize
> -- set to 6 nowFieldsize: 224, Maximal translation: 308 pixel
> [vidstabdetect @ 000000b7fa9ff548] Number of used measurement fields: 43
> out of 65
> [vidstabdetect @ 000000b7fa9ff548] Fieldsize: 48, Maximal translation: 48
> pixel
> [vidstabdetect @ 000000b7fa9ff548] Number of used measurement fields: 506
> out of 760
> [Parsed_vidstabdetect_0 @ 000002184368ef00] Video stabilization settings
> (pass 1/2):
> [Parsed_vidstabdetect_0 @ 000002184368ef00]      shakiness = 10
> [Parsed_vidstabdetect_0 @ 000002184368ef00]       accuracy = 10
> [Parsed_vidstabdetect_0 @ 000002184368ef00]       stepsize = 6
> [Parsed_vidstabdetect_0 @ 000002184368ef00]    mincontrast = 0.250000
> [Parsed_vidstabdetect_0 @ 000002184368ef00]         tripod = 0
> [Parsed_vidstabdetect_0 @ 000002184368ef00]           show = 0
> [Parsed_vidstabdetect_0 @ 000002184368ef00]         result =
> transforms.trf
> [swscaler @ 000002185c8a3280] deprecated pixel format used, make sure you
> did set range correctly
>     Last message repeated 2 times
> Output #0, null, to 'pipe:':
>   Metadata:
>     major_brand     : mp42
>     minor_version   : 0
>     compatible_brands: isommp42
>     com.android.capture.fps: 60.000000
>     com.android.version: 10
>     encoder         : Lavf60.16.100
>   Stream #0:0(eng): Video: wrapped_avframe, yuv420p(tv,
> bt470bg/bt470bg/smpte170m, progressive), 2160x3840 [SAR 1:1 DAR 9:16],
> q=2-31, 200 kb/s, 60 fps, 60 tbn (default)
>     Metadata:
>       creation_time   : 2023-12-08T20:37:22.000000Z
>       handler_name    : VideoHandle
>       vendor_id       : [0][0][0][0]
>       encoder         : Lavc60.31.102 wrapped_avframe
>     Side data:
>       displaymatrix: rotation of -0.00 degrees
>   Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
> (default)
>     Metadata:
>       creation_time   : 2023-12-08T20:37:22.000000Z
>       handler_name    : SoundHandle
>       vendor_id       : [0][0][0][0]
>       encoder         : Lavc60.31.102 pcm_s16le
> [out#0/null @ 0000021842210dc0] video:634kB audio:4264kB subtitle:0kB
> other streams:0kB global headers:0kB muxing overhead: unknown
> frame= 1353 fps= 16 q=-0.0 Lsize=N/A time=00:00:22.72 bitrate=N/A
> speed=0.275x
> }}}
>
> Result: See attachment transformsffmpeg61.trf (and with latest gyan.dev
> see transformsffmpeg2023-12-07-git-f89cff96d0.trf, same problem)
> Expected result: See attachment transformsffmpeg60.trf , created with
> ffmpeg 6.0

New description:

 ffmpeg 6.1 using -vf vidstabdetect=result=transforms.trf creates binary
 transform.trf

 How to reproduce (with any input video):
 {{{
 c:\prog\ffmpeg\bin\ffmpeg.exe  -i "input.mp4" -vf
 vidstabdetect=stepsize=32:shakiness=10:accuracy=10:result=transformsffmpeg61.trf
 -f null -
 ffmpeg version 6.1-full_build-www.gyan.dev Copyright (c) 2000-2023 the
 FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --pkg-
 config=pkgconf --disable-w32threads --disable-autodetect --enable-
 fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
 --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
 librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
 --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
 libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
 libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
 libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
 --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
 --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
 --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
 libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2 --enable-
 libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus
 --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b
 --enable-libflite --enable-libmysofa --enable-librubberband --enable-
 libsoxr --enable-chromaprint
   libavutil      58. 29.100 / 58. 29.100
   libavcodec     60. 31.102 / 60. 31.102
   libavformat    60. 16.100 / 60. 16.100
   libavdevice    60.  3.100 / 60.  3.100
   libavfilter     9. 12.100 /  9. 12.100
   libswscale      7.  5.100 /  7.  5.100
   libswresample   4. 12.100 /  4. 12.100
   libpostproc    57.  3.100 / 57.  3.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isommp42
     creation_time   : 2023-12-08T20:37:22.000000Z
     com.android.version: 10
     com.android.capture.fps: 60.000000
   Duration: 00:00:22.74, start: 0.000000, bitrate: 38902 kb/s
   Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
 yuvj420p(pc, bt470bg/bt470bg/smpte170m), 3840x2160, 38528 kb/s, SAR 1:1
 DAR 16:9, 59.50 fps, 60 tbr, 90k tbn (default)
     Metadata:
       creation_time   : 2023-12-08T20:37:22.000000Z
       handler_name    : VideoHandle
       vendor_id       : [0][0][0][0]
     Side data:
       displaymatrix: rotation of -90.00 degrees
   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 95 kb/s (default)
     Metadata:
       creation_time   : 2023-12-08T20:37:22.000000Z
       handler_name    : SoundHandle
       vendor_id       : [0][0][0][0]
 Stream mapping:
   Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
   Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 [swscaler @ 000002185c53c200] deprecated pixel format used, make sure you
 did set range correctly
 [vidstabdetect @ 000000b7fa9ff5d8] Multithreading: use 25 threads
 [vidstabdetect @ 000000b7fa9ff5d8] For high accuracy use lower stepsize
 -- set to 6 nowFieldsize: 224, Maximal translation: 308 pixel
 [vidstabdetect @ 000000b7fa9ff548] Number of used measurement fields: 43
 out of 65
 [vidstabdetect @ 000000b7fa9ff548] Fieldsize: 48, Maximal translation: 48
 pixel
 [vidstabdetect @ 000000b7fa9ff548] Number of used measurement fields: 506
 out of 760
 [Parsed_vidstabdetect_0 @ 000002184368ef00] Video stabilization settings
 (pass 1/2):
 [Parsed_vidstabdetect_0 @ 000002184368ef00]      shakiness = 10
 [Parsed_vidstabdetect_0 @ 000002184368ef00]       accuracy = 10
 [Parsed_vidstabdetect_0 @ 000002184368ef00]       stepsize = 6
 [Parsed_vidstabdetect_0 @ 000002184368ef00]    mincontrast = 0.250000
 [Parsed_vidstabdetect_0 @ 000002184368ef00]         tripod = 0
 [Parsed_vidstabdetect_0 @ 000002184368ef00]           show = 0
 [Parsed_vidstabdetect_0 @ 000002184368ef00]         result =
 transforms.trf
 [swscaler @ 000002185c8a3280] deprecated pixel format used, make sure you
 did set range correctly
     Last message repeated 2 times
 Output #0, null, to 'pipe:':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isommp42
     com.android.capture.fps: 60.000000
     com.android.version: 10
     encoder         : Lavf60.16.100
   Stream #0:0(eng): Video: wrapped_avframe, yuv420p(tv,
 bt470bg/bt470bg/smpte170m, progressive), 2160x3840 [SAR 1:1 DAR 9:16],
 q=2-31, 200 kb/s, 60 fps, 60 tbn (default)
     Metadata:
       creation_time   : 2023-12-08T20:37:22.000000Z
       handler_name    : VideoHandle
       vendor_id       : [0][0][0][0]
       encoder         : Lavc60.31.102 wrapped_avframe
     Side data:
       displaymatrix: rotation of -0.00 degrees
   Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
 (default)
     Metadata:
       creation_time   : 2023-12-08T20:37:22.000000Z
       handler_name    : SoundHandle
       vendor_id       : [0][0][0][0]
       encoder         : Lavc60.31.102 pcm_s16le
 [out#0/null @ 0000021842210dc0] video:634kB audio:4264kB subtitle:0kB
 other streams:0kB global headers:0kB muxing overhead: unknown
 frame= 1353 fps= 16 q=-0.0 Lsize=N/A time=00:00:22.72 bitrate=N/A
 speed=0.275x
 }}}

 Result: See attachment transformsffmpeg61.trf (and with latest gyan.dev
 see transformsffmpeg2023-12-07-git-f89cff96d0.trf, same problem)
 Expected result: See attachment transformsffmpeg60.trf , created with
 ffmpeg 6.0

 Due to attachment size limit, mentioned transform files at
 https://joumxyzptlk.de/tmp/ffmpeg/ffmpeg-6.1-vistab-bug.7z

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10730#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list