I would like to check Andrew's 3 attached patches in as: ffmpeg-8.0.V1 ... V2 ... V3 so that they do not get lost. I built 3 different distros with them in WITHOUT any vulkan stuff installed just to make sure no impact to normalcy. What do you think? On Tue, Dec 2, 2025 at 6:34 PM Andrew Randrianasulu via Cin < [email protected]> wrote:
On Mon, Dec 1, 2025 at 8:09 PM Andrew Randrianasulu <[email protected]> wrote:
Probably at patchwork also, but GSoC page links to this
https://github.com/raphaelthegreat/FFmpeg/tree/prores-vk-encode
page itself:
https://summerofcode.withgoogle.com/archive/2025/projects/PHTgRqGg
so I pulled tree into separate folder, switched to branch, extracted 3
last commits, git am them to ffmpeg.git (there was host copy vulkan fix in meantime)
And ....
it seems to work.
At least for HQ profile ...
at 4.5 fps, but this is faster than ffv1 (but not lossless, obviously).
./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan
-filter_hw_device vulkan -i /dev/shm/Nature072-A006C0035_230328_4U1Q.mov -vf libplacebo -c:v prores_ks_vulkan -f matroska -noautoscale -pix_fmt vulkan 4k.mov
ffmpeg version N-120782-gc12bca52f8 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 File '4k.mov' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (prores (native) -> prores (prores_ks_vulkan)) Press [q] to stop, [?] for help [prores_ks_vulkan @ 0xb299440] Autoselected HQ profile to keep best quality. It can be overridden through -profile option. Output #0, matroska, to '4k.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf62.6.103 Stream #0:0: Video: prores (HQ) (apch / 0x68637061), 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 prores_ks_vulkan creation_time : 2023-04-07T18:41:32.000000Z handler_name : VideoHandler vendor_id : appl timecode : 21:22:52:12 [out#0/matroska @ 0xb29ddc0] video:1770722KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.001071% frame= 480 fps=4.5 q=-0.0 Lsize= 1770741KiB time=00:00:08.00 bitrate=1813239.1kbits/s speed=0.0755x elapsed=0:01:45.90
testing:
bash-5.1$ mplayer 4k.mov MPlayer SVN-r38660-11.2.0 (C) 2000-2024 MPlayer Team 227 audio & 468 video codecs do_connect: could not connect to socket connect: No such file or directory Failed to open LIRC support. You will not be able to use your remote control.
Playing 4k.mov. libavformat version 61.6.100 (internal) libavformat file format detected. [lavf] stream 0: video (prores), -vid 0 VIDEO: [apch] 3840x2160 0bpp 60.000 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [qtvideo] Quicktime Video decoder sh->ImageDesc not set, try -demuxer mov if this fails. QuickTime6.3 DLLs found QuickTime.qts patched!!! old entry=0x6693c3e0 theQuickTimeDispatcher catched -> 0x6693c3e0 WARNING! Invalid Ptr handle! theQuickTimeDispatcher catched -> 0x6693c3e0 theQuickTimeDispatcher catched -> 0x6693c3e0 Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. VO: [vdpau] 3840x2160 => 3840x2160 Packed YUY2 DecompressSequenceBegin result=-8961 VDecoder init failed :( Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family libavcodec version 61.17.100 (internal) Selected video codec: [ffprores] vfm: ffmpeg (FFmpeg Apple ProRes)
==========================================================================
Clip info: COMPATIBLE_BRANDS: qt MAJOR_BRAND: qt MINOR_VERSION: 512 ENCODER: Lavf62.6.103 Load subtitles in ./ Audio: no sound Starting playback... Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. [swscaler @ 0x57a10180]bicubic scaler, from yuv422p10le to yuv420p using MMXEXT VO: [vdpau] 3840x2160 => 3840x2160 Planar YV12 [VD_FFMPEG] DRI failure. Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. VO: [vdpau] 3840x2160 => 3840x2160 Planar YV12 V: 0.0 0/ 0 ??% ??% ??,?% 0 0 [VD_FFMPEG] DRI failure. V: 0.3 0/ 0 ??% ??% ??,?% 0 0 [ASPECT] Warning: No suitable new res found! [ASPECT] Warning: No suitable new res found! V: 1.9 0/ 0 47% 460% 0.0% 0 0
Exiting... (Quit)
I wonder if Terje can replicate those results? Do not forgot to check if libplacebo was compiled in for your ffmpeg version ...
It works with combination of two ffmpeg lines:
./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan -filter_hw_device vulkan -hwaccel_output_format vulkan -i /dev/shm/Nature072-A006C0035_230328_4U1Q.mov -c:v prores_ks_vulkan -f matroska -noautoscale -pix_fmt vulkan 4k.mov
ffmpeg version N-120782-gc12bca52f8 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) -> prores (prores_ks_vulkan)) Press [q] to stop, [?] for help [prores_ks_vulkan @ 0xc9c7400] Autoselected HQ profile to keep best quality. It can be overridden through -profile option. Output #0, matroska, to '4k.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf62.6.103 Stream #0:0: Video: prores (HQ) (apch / 0x68637061), 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 prores_ks_vulkan creation_time : 2023-04-07T18:41:32.000000Z handler_name : VideoHandler vendor_id : appl timecode : 21:22:52:12 [out#0/matroska @ 0xc9cbb80] video:1744362KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.001087% frame= 480 fps=5.4 q=-0.0 Lsize= 1744381KiB time=00:00:08.00 bitrate=1786246.0kbits/s speed=0.0907x elapsed=0:01:28.16
testing:
bash-5.1$ mpv 4k.mov Video --vid=1 (*) (prores 3840x2160 60 fps) [ffmpeg/video] prores: Unknown prores profile 0 [ffmpeg/video] prores: Unknown prores profile 0 [ffmpeg/video] prores: Unknown prores profile 0 [ffmpeg/video] prores: Unknown prores profile 0 [ffmpeg/video] prores: Unknown prores profile 0 VO: [gpu] 3840x2160 yuv422p10 V: 00:00:07.967 / 00:00:08.000 (100%) Dropped: 148
so, a bit faster than with libplacebo.
Patches (git am) for ffmpeg git from
git://git.videolan.org/ffmpeg.git
at commit
commit 413346bd06c33226254dacc829f128a6b6c337d7 (origin/master, origin/HEAD)
attached .... _______________________________________________ Cin mailing list -- [email protected] To unsubscribe send an email to [email protected]