On Mon, Dec 1, 2025 at 1:07 PM Andrew Randrianasulu <randrianasulu@gmail.com> wrote:
Test file (1.7 Gb, 30 seconds 4k, 60 fps, bt709):
https://web.archive.org/web/20250727093440/https://terra-1-g.djicdn.com/851d...
ffmpeg git commit
commit 7043522fe07b4678de59e01f987de8f2f46d40a2
configure line:
guest@slax:/dev/shm/ffmpeg$ ./ffmpeg ffmpeg version N-120778-g7043522fe0 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 11.2.0 (GCC) configuration: --enable-opencl --disable-debug --enable-libx265 --enable-libx264 --enable-gpl --enable-libplacebo --enable-vulkan --enable-libshaderc --enable-libzimg --enable-libaom --enable-libdav1d --enable-libsoxr --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-frei0r --enable-libgsm --enable-openal --enable-libopus --enable-librtmp --enable-libsnappy --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp libavutil 60. 19.101 / 60. 19.101 libavcodec 62. 21.100 / 62. 21.100 libavformat 62. 6.103 / 62. 6.103 libavdevice 62. 2.100 / 62. 2.100 libavfilter 11. 10.101 / 11. 10.101 libswscale 9. 3.100 / 9. 3.100 libswresample 6. 2.100 / 6. 2.100 Universal media converter usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
====
So, it works with ./ffplay -hwaccel vulkan file
and it also works (at 30 fps)
./ffmpeg -hwaccel vulkan -i file -f null /dev/null
without -hwaccel it decodes at 10-12 fps (32-bit AMD FX 4300) and full cpu load. (there is much smaller cpu load for Vulcan decoding case).
full page with bigger samples:
https://web.archive.org/web/20250920123334/https://www.dji.com/inspire-3/sam...
found via Kodi user forum. May not work in Russia without using archive.org (I tried and it errored for me first).
Hm, tried transcoding vulkan->vulkan (prores- > ffv1) and at first it failed: bash-5.1$ ./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan -filter_hw_device vulkan -i /dev/shm/Nature072-A006C0035_230328_4U1Q.mov -c:v ffv1_vulkan -f matroska /dev/null -noautoscale ffmpeg version N-120778-g7043522fe0 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 11.2.0 (GCC) configuration: --enable-opencl --disable-debug --enable-libx265 --enable-libx264 --enable-gpl --enable-libplacebo --enable-vulkan --enable-libshaderc --enable-libzimg --enable-libaom --enable-libdav1d --enable-libsoxr --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-frei0r --enable-libgsm --enable-openal --enable-libopus --enable-librtmp --enable-libsnappy --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp libavutil 60. 19.101 / 60. 19.101 libavcodec 62. 21.100 / 62. 21.100 libavformat 62. 6.103 / 62. 6.103 libavdevice 62. 2.100 / 62. 2.100 libavfilter 11. 10.101 / 11. 10.101 libswscale 9. 3.100 / 9. 3.100 libswresample 6. 2.100 / 6. 2.100 Trailing option(s) found in the command: may be ignored. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/dev/shm/Nature072-A006C0035_230328_4U1Q.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2023-04-07T18:41:32.000000Z encoder : Blackmagic Design DaVinci Resolve Studio Duration: 00:00:08.00, start: 0.000000, bitrate: 1787424 kb/s Stream #0:0[0x1]: Video: prores (HQ) (apch / 0x68637061), yuv422p10le(tv, bt709, progressive), 3840x2160, 1787418 kb/s, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 15360 tbn (default) Metadata: creation_time : 2023-04-07T18:41:32.000000Z handler_name : VideoHandler vendor_id : appl encoder : Apple ProRes 422 HQ timecode : 21:22:52:12 Stream #0:1[0x2](eng): Data: none (tmcd / 0x64636D74), 0 kb/s Metadata: creation_time : 2023-04-07T18:41:32.000000Z handler_name : TimeCodeHandler timecode : 21:22:52:12 File '/dev/null' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (prores (native) -> ffv1 (ffv1_vulkan)) Press [q] to stop, [?] for help Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0' Link 'Parsed_null_0.default' -> 'auto_scale_0.default': Pixel formats: src: yuv422p10le dst: yuv422p10le Link 'auto_scale_0.default' -> 'format.default': Pixel formats: src: yuv420p yuyv422 rgb24 bgr24 yuv422p yuv444p yuv410p yuv411p gray monow monob pal8 yuvj420p yuvj422p yuvj444p uyvy422 bgr8 bgr4 bgr4_byte rgb8 rgb4 rgb4_byte nv12 nv21 argb rgba abgr bgra gray16be gray16le yuv440p yuvj440p yuva420p rgb48be rgb48le rgb565be rgb565le rgb555be rgb555le bgr565be bgr565le bgr555be bgr555le yuv420p16le yuv420p16be yuv422p16le yuv422p16be yuv444p16le yuv444p16be rgb444le rgb444be bgr444le bgr444be ya8 bgr48be bgr48le yuv420p9be yuv420p9le yuv420p10be yuv420p10le yuv422p10be yuv422p10le yuv444p9be yuv444p9le yuv444p10be yuv444p10le yuv422p9be yuv422p9le gbrp gbrp9be gbrp9le gbrp10be gbrp10le gbrp16be gbrp16le yuva422p yuva444p yuva420p9be yuva420p9le yuva422p9be yuva422p9le yuva444p9be yuva444p9le yuva420p10be yuva420p10le yuva422p10be yuva422p10le yuva444p10be yuva444p10le yuva420p16be yuva420p16le yuva422p16be yuva422p16le yuva444p16be yuva444p16le xyz12le xyz12be nv16 nv20le nv20be rgba64be rgba64le bgra64be bgra64le yvyu422 ya16be ya16le gbrap gbrap16be gbrap16le 0rgb rgb0 0bgr bgr0 yuv420p12be yuv420p12le yuv420p14be yuv420p14le yuv422p12be yuv422p12le yuv422p14be yuv422p14le yuv444p12be yuv444p12le yuv444p14be yuv444p14le gbrp12be gbrp12le gbrp14be gbrp14le yuvj411p yuv440p10le yuv440p10be yuv440p12le yuv440p12be ayuv64le ayuv64be p010le p010be gbrap12be gbrap12le gbrap10be gbrap10le gray12be gray12le gray10be gray10le p016le p016be gray9be gray9le gbrpf32be gbrpf32le gbrapf32be gbrapf32le gray14be gray14le grayf32be grayf32le yuva422p12be yuva422p12le yuva444p12be yuva444p12le nv24 nv42 y210le x2rgb10le x2bgr10le p210be p210le p410be p410le p216be p216le p416be p416le vuya vuyx p012le p012be y212le xv30le xv36be xv36le p212be p212le p412be p412le gbrap14be gbrap14le ayuv uyva vyu444 v30xle y216le xv48be xv48le yuv444p10msbbe yuv444p10msble yuv444p12msbbe yuv444p12msble gbrp10msbbe gbrp10msble gbrp12msbbe gbrp12msble dst: vulkan [vf#0:0 @ 0xb882900] Error reinitializing filters! [vf#0:0 @ 0xb882900] Task finished with error code: -38 (Function not implemented) [vf#0:0 @ 0xb882900] Terminating thread with return code -38 (Function not implemented) [vost#0:0/ffv1_vulkan @ 0xb881a80] [enc:ffv1_vulkan @ 0xb881e00] Could not open encoder before EOF [vost#0:0/ffv1_vulkan @ 0xb881a80] Task finished with error code: -22 (Invalid argument) [vost#0:0/ffv1_vulkan @ 0xb881a80] Terminating thread with return code -22 (Invalid argument) [out#0/matroska @ 0xb87fb40] Nothing was written into output file, because at least one of its streams received no packets. frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A elapsed=0:00:00.77 Conversion failed! But with libplacebo in-between it worked, at 1.6 fps : ./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan -filter_hw_device vulkan -i /dev/shm/Nature072-A006C0035_230328_4U1Q.mov -vf libplacebo -c:v ffv1_vulkan -f matroska 4k.mkv ffmpeg version N-120778-g7043522fe0 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 11.2.0 (GCC) configuration: --enable-opencl --disable-debug --enable-libx265 --enable-libx264 --enable-gpl --enable-libplacebo --enable-vulkan --enable-libshaderc --enable-libzimg --enable-libaom --enable-libdav1d --enable-libsoxr --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-frei0r --enable-libgsm --enable-openal --enable-libopus --enable-librtmp --enable-libsnappy --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp libavutil 60. 19.101 / 60. 19.101 libavcodec 62. 21.100 / 62. 21.100 libavformat 62. 6.103 / 62. 6.103 libavdevice 62. 2.100 / 62. 2.100 libavfilter 11. 10.101 / 11. 10.101 libswscale 9. 3.100 / 9. 3.100 libswresample 6. 2.100 / 6. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/dev/shm/Nature072-A006C0035_230328_4U1Q.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2023-04-07T18:41:32.000000Z encoder : Blackmagic Design DaVinci Resolve Studio Duration: 00:00:08.00, start: 0.000000, bitrate: 1787424 kb/s Stream #0:0[0x1]: Video: prores (HQ) (apch / 0x68637061), yuv422p10le(tv, bt709, progressive), 3840x2160, 1787418 kb/s, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 15360 tbn (default) Metadata: creation_time : 2023-04-07T18:41:32.000000Z handler_name : VideoHandler vendor_id : appl encoder : Apple ProRes 422 HQ timecode : 21:22:52:12 Stream #0:1[0x2](eng): Data: none (tmcd / 0x64636D74), 0 kb/s Metadata: creation_time : 2023-04-07T18:41:32.000000Z handler_name : TimeCodeHandler timecode : 21:22:52:12 Stream mapping: Stream #0:0 -> #0:0 (prores (native) -> ffv1 (ffv1_vulkan)) Press [q] to stop, [?] for help [ffv1_vulkan @ 0xb120780] Encoding buffer (424387584) larger than VRAM (268435456), using host memory (slower) [ffv1_vulkan @ 0xb120780] Async buffers: 404MiB per context, 404MiB total, depth: 1 Output #0, matroska, to '4k.mkv': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf62.6.103 Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), vulkan(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 60 fps, 1k tbn (default) Metadata: encoder : Lavc62.21.100 ffv1_vulkan creation_time : 2023-04-07T18:41:32.000000Z handler_name : VideoHandler vendor_id : appl timecode : 21:22:52:12 [out#0/matroska @ 0xb118540] video:4200488KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.000545% frame= 480 fps=1.6 q=-0.0 Lsize= 4200511KiB time=00:00:08.00 bitrate=4301323.1kbits/s speed=0.0273x elapsed=0:04:53.30 bash-5.1$ mediainfo 4k.mkv General Unique ID : 330629664121658750354019559053663697333 (0xF8BCF5021C637B621ACD645438CC79B5) Complete name : 4k.mkv Format : Matroska Format version : Version 4 File size : 4.01 GiB Duration : 8 s 0 ms Overall bit rate mode : Variable Overall bit rate : 4 301 Mb/s Frame rate : 60.000 FPS Writing application : Lavf62.6.103 Writing library : Lavf62.6.103 ErrorDetectionType : Per level 1 Video ID : 1 Format : FFV1 Format version : Version 3.4 Format settings, GOP : N=1 Format settings, Slice count : 1 024 slices per frame Codec ID : V_FFV1 Duration : 8 s 0 ms Bit rate mode : Variable Bit rate : 4 216 Mb/s Width : 3 840 pixels Height : 2 160 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 60.000 FPS Color space : YUV Chroma subsampling : 4:2:2 Bit depth : 10 bits Scan type : Progressive Compression mode : Lossless Bits/(Pixel*Frame) : 8.471 Time code of first frame : 21:22:52:12 Time code source : Matroska tags Stream size : 3.93 GiB (98%) Writing library : Lavc62.21.100 ffv1_vulkan Default : Yes Forced : No Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 VENDOR_ID : appl coder_type : Range Coder ErrorDetectionType : Per slice So I think it worked (mpv plays resulted file ok, even if slowly) But interesting question why conversion failed without libplacebo ?