On Wed, Dec 3, 2025 at 1:07 AM Andrew Randrianasulu <randrianasulu@gmail.com> wrote:
https://www.videezy.com/free-video/prores-4444
well, some 10 sec video can weight 547 Mb!
Now, trying THIS instead of just 422 I see "device lost" on my end too!
ah, switching encoder to ffv1_vulkan fixes this (so it was just prores vulkan encoder trying to push 12 bit for all channels at 4k that died ..I even tried scale it back to 640x360 and encoding started but after just few frames also died ..so for 4444 prores encoding this very experimental Vulkan encoder may not work well) Apparently ffv1 can hold data with up to 12 bits per channel! bash-5.1$ ~/bin/ffmpeg711 -i /dev/shm/4k.mov -frames 1 OUT.png ffmpeg version 7.1.1 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 libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 libpostproc 58. 3.100 / 58. 3.100 Input #0, matroska,webm, from '/dev/shm/4k.mov': Metadata: COMPATIBLE_BRANDS: qt MAJOR_BRAND : qt MINOR_VERSION : 537199360 ENCODER : Lavf62.6.103 Duration: 00:00:10.00, start: 0.000000, bitrate: 494458 kb/s Stream #0:0(eng): Video: ffv1, yuva444p12le(tv, bt709, progressive), 3840x2160, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn (default) Metadata: ENCODER : Lavc62.21.100 ffv1_vulkan HANDLER_NAME : Apple Video Media Handler VENDOR_ID : appl TIMECODE : 00:00:00:00 DURATION : 00:00:10.000000000 Stream mapping: Stream #0:0 -> #0:0 (ffv1 (native) -> png (native)) Press [q] to stop, [?] for help Output #0, image2, to 'OUT.png': Metadata: COMPATIBLE_BRANDS: qt MAJOR_BRAND : qt MINOR_VERSION : 537199360 encoder : Lavf61.7.100 Stream #0:0(eng): Video: png, rgba64be(pc, gbr/bt709/bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn (default) Metadata: DURATION : 00:00:10.000000000 HANDLER_NAME : Apple Video Media Handler VENDOR_ID : appl TIMECODE : 00:00:00:00 encoder : Lavc61.19.101 png [image2 @ 0xb826140] The specified filename 'OUT.png' does not contain an image sequence pattern or a pattern is invalid. [image2 @ 0xb826140] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image. [out#0/image2 @ 0xb826080] video:3692KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown frame= 1 fps=0.3 q=-0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.0115x resulting png looks ok in old old gqview ... so i guess Vulkan decoder in ffmpeg.git is ok even for 4444 12bit (real?) prores - nice
./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan -filter_hw_device vulkan -hwaccel_output_format vulkan -i ~/200818_LoopAlphaThankYouGoldText.mov -c:v prores_ks_vulkan -f matroska 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 '/home/guest/200818_LoopAlphaThankYouGoldText.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2020-08-24T17:07:38.000000Z Duration: 00:00:10.00, start: 0.000000, bitrate: 459164 kb/s Stream #0:0[0x1](eng): Video: prores (4444) (ap4h / 0x68347061), yuva444p12le(tv, bt709, progressive), 3840x2160, 458325 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 30 tbn (default) Metadata: creation_time : 2020-08-24T17:07:38.000000Z handler_name : Apple Video Media Handler vendor_id : appl encoder : Apple ProRes 4444 timecode : 00:00:00:00 Stream #0:1[0x2](eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default) Metadata: creation_time : 2020-08-24T17:07:38.000000Z handler_name : Time Code Media Handler timecode : 00:00:00:00 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 @ 0xbd54600] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. Output #0, matroska, to '4k.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt encoder : Lavf62.6.103 Stream #0:0(eng): Video: prores (4444) (ap4h / 0x68347061), vulkan(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 1k tbn (default) Metadata: encoder : Lavc62.21.100 prores_ks_vulkan creation_time : 2020-08-24T17:07:38.000000Z handler_name : Apple Video Media Handler vendor_id : appl timecode : 00:00:00:00 radv/amdgpu: The CS has been cancelled because the context is lost. This context is guilty of a soft recovery. [prores_ks_vulkan @ 0xbd54600] [vk @ 0xbd6d240] Unable to submit command buffer: VK_ERROR_DEVICE_LOST [vost#0:0/prores_ks_vulkan @ 0xbd65bc0] [enc:prores_ks_vulkan @ 0xbd54580] Error submitting video frame to the encoder [vost#0:0/prores_ks_vulkan @ 0xbd65bc0] [enc:prores_ks_vulkan @ 0xbd54580] Error encoding a frame: Generic error in an external library [vost#0:0/prores_ks_vulkan @ 0xbd65bc0] Task finished with error code: -542398533 (Generic error in an external library) [vost#0:0/prores_ks_vulkan @ 0xbd65bc0] Terminating thread with return code -542398533 (Generic error in an external library) [prores @ 0xbd57700] [vk @ 0xe4600dc0] Unable to submit command buffer: VK_ERROR_DEVICE_LOST [out#0/matroska @ 0xbd63e40] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown [out#0/matroska @ 0xbd63e40] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) frame= 0 fps=0.0 q=0.0 Lsize= 1KiB time=N/A bitrate=N/A speed=N/A elapsed=0:01:01.94 Conversion failed!
I have 4 Gb vram, but 32-bit system.
Testing just decoding with
./ffmpeg -init_hw_device vulkan=vulkan -hwaccel none -filter_hw_device vulkan -hwaccel_output_format vulkan -i ~/200818_LoopAlphaThankYouGoldText.mov -f null /dev/null -benchmark
gives me
frame= 300 fps= 15 q=-0.0 Lsize=N/A time=00:00:10.00 bitrate=N/A speed=0.502x elapsed=0:00:19.91 bench: utime=72.167s stime=0.745s rtime=19.911s bench: maxrss=693980KiB
./ffmpeg -init_hw_device vulkan=vulkan -hwaccel vulkan -filter_hw_device vulkan -hwaccel_output_format vulkan -i ~/200818_LoopAlphaThankYouGoldText.mov -f null /dev/null -benchmark
frame= 300 fps= 69 q=-0.0 Lsize=N/A time=00:00:10.00 bitrate=N/A speed=2.31x elapsed=0:00:04.32 bench: utime=0.771s stime=1.278s rtime=4.327s bench: maxrss=146296KiB
So it works .... I think? At least when using ffmpeg from git ...