[Cin] vaapi vs vdpau vs vulkan hwaccels
Phyllis Smith
phylsmith2017 at gmail.com
Wed May 7 23:15:29 CEST 2025
Andrey, thanks for sharing your results - now I have to see if I can
duplicate them!
On Tue, May 6, 2025 at 9:00 PM Andrew Randrianasulu via Cin <
cin at lists.cinelerra-gg.org> wrote:
> I noticed that for me
>
> OpenGL renderer string: AMD Radeon RX 550 / 550 Series (radeonsi,
> polaris12, ACO, DRM 3.61, 6.12.26-x64)
> OpenGL core profile version string: 4.6 (Core Profile) Mesa
> 25.2.0-devel (git-4f07092bdb)
> OpenGL core profile shading language version string: 4.60
>
> hwaccel vdpau was FASTER in cingg, and even more reliable
>
> For 1080p60 h264 I hit 120 fps in default window on 1440x900 screen, vo x11
> for 4k60 fps HDR I hit 30 fps in window, 25 fullscreen!
>
> Vaapi was like 15 fps in window max.
>
> So I benched them all
>
> bash-5.1$ ~/bin/ffmpeg8-vk -hwaccel vaapi -i
> ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov -c:v
> rawvideo -f nut /dev/null
> ffmpeg version N-118190-g8bb682d454 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. 2.100 / 60. 2.100
> libavcodec 62. 0.101 / 62. 0.101
> libavformat 62. 0.100 / 62. 0.100
> libavdevice 62. 0.100 / 62. 0.100
> libavfilter 11. 0.100 / 11. 0.100
> libswscale 9. 0.100 / 9. 0.100
> libswresample 6. 0.100 / 6. 0.100
> libpostproc 59. 1.100 / 59. 1.100
> [aist#0:1/pcm_s16le @ 0xb437e80] Guessed Channel Layout: stereo
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> '/home/guest/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> creation_time : 2020-12-18T22:20:29.000000Z
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> Duration: 00:00:19.16, start: 0.000000, bitrate: 69140 kb/s
> Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668),
> yuv420p10le(pc, bt2020nc/bt2020/smpte2084), 3840x2160, 64166 kb/s,
> 59.92 fps, 59.94 tbr, 600 tbn (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> encoder : HEVC
> Stream #0:1[0x2](und): Audio: pcm_s16le (lpcm / 0x6D63706C), 48000
> Hz, stereo, s16, 1536 kb/s (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> File '/dev/null' already exists. Overwrite? [y/N] y
> Stream mapping:
> Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
> Stream #0:1 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
> Press [q] to stop, [?] for help
> Output #0, nut, to '/dev/null':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> encoder : Lavf62.0.100
> Stream #0:0: Video: rawvideo (RGB[15] / 0xF424752), p010le(pc,
> bt2020nc/bt2020/smpte2084, progressive), 3840x2160, q=2-31, 7457502
> kb/s, 59.94 fps, 60k tbn (default)
> Metadata:
> encoder : Lavc62.0.101 rawvideo
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> Stream #0:1: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo,
> fltp (default)
> Metadata:
> encoder : Lavc62.0.101 libvorbis
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> [out#0/nut @ 0xb436240] video:27896400KiB audio:232KiB subtitle:0KiB
> other streams:0KiB global headers:4KiB muxing overhead: 0.000255%
> frame= 1148 fps= 12 q=-0.0 Lsize=27896703KiB time=00:00:19.16
> bitrate=11921748.9kbits/s speed= 0.2x
>
> VAAPI = 12 fps.
>
> bash-5.1$ ~/bin/ffmpeg8-vk -hwaccel vdpau -i
> ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov -c:v
> rawvideo -f nut /dev/null
> ffmpeg version N-118190-g8bb682d454 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. 2.100 / 60. 2.100
> libavcodec 62. 0.101 / 62. 0.101
> libavformat 62. 0.100 / 62. 0.100
> libavdevice 62. 0.100 / 62. 0.100
> libavfilter 11. 0.100 / 11. 0.100
> libswscale 9. 0.100 / 9. 0.100
> libswresample 6. 0.100 / 6. 0.100
> libpostproc 59. 1.100 / 59. 1.100
> [aist#0:1/pcm_s16le @ 0xc259e80] Guessed Channel Layout: stereo
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> '/home/guest/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> creation_time : 2020-12-18T22:20:29.000000Z
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> Duration: 00:00:19.16, start: 0.000000, bitrate: 69140 kb/s
> Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668),
> yuv420p10le(pc, bt2020nc/bt2020/smpte2084), 3840x2160, 64166 kb/s,
> 59.92 fps, 59.94 tbr, 600 tbn (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> encoder : HEVC
> Stream #0:1[0x2](und): Audio: pcm_s16le (lpcm / 0x6D63706C), 48000
> Hz, stereo, s16, 1536 kb/s (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> File '/dev/null' already exists. Overwrite? [y/N] y
> Stream mapping:
> Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
> Stream #0:1 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
> Press [q] to stop, [?] for help
> Output #0, nut, to '/dev/null':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> encoder : Lavf62.0.100
> Stream #0:0: Video: rawvideo (RGB[15] / 0xF424752), p016le(pc,
> bt2020nc/bt2020/smpte2084, progressive), 3840x2160, q=2-31, 11932003
> kb/s, 59.94 fps, 60k tbn (default)
> Metadata:
> encoder : Lavc62.0.101 rawvideo
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> Stream #0:1: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo,
> fltp (default)
> Metadata:
> encoder : Lavc62.0.101 libvorbis
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> [out#0/nut @ 0xc258240] video:27896400KiB audio:232KiB subtitle:0KiB
> other streams:0KiB global headers:4KiB muxing overhead: 0.000255%
> frame= 1148 fps= 17 q=-0.0 Lsize=27896703KiB time=00:00:19.16
> bitrate=11921748.9kbits/s speed=0.283x
>
> VDPAU = 17 fps
>
> bash-5.1$ RADV_PERFTEST=video_decode ~/bin/ffmpeg8-vk -hwaccel vulkan
> -i ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov -c:v
> rawvideo -f nut /dev/null
> ffmpeg version N-118190-g8bb682d454 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. 2.100 / 60. 2.100
> libavcodec 62. 0.101 / 62. 0.101
> libavformat 62. 0.100 / 62. 0.100
> libavdevice 62. 0.100 / 62. 0.100
> libavfilter 11. 0.100 / 11. 0.100
> libswscale 9. 0.100 / 9. 0.100
> libswresample 6. 0.100 / 6. 0.100
> libpostproc 59. 1.100 / 59. 1.100
> [aist#0:1/pcm_s16le @ 0xb4f6e80] Guessed Channel Layout: stereo
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> '/home/guest/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> creation_time : 2020-12-18T22:20:29.000000Z
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> Duration: 00:00:19.16, start: 0.000000, bitrate: 69140 kb/s
> Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668),
> yuv420p10le(pc, bt2020nc/bt2020/smpte2084), 3840x2160, 64166 kb/s,
> 59.92 fps, 59.94 tbr, 600 tbn (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> encoder : HEVC
> Stream #0:1[0x2](und): Audio: pcm_s16le (lpcm / 0x6D63706C), 48000
> Hz, stereo, s16, 1536 kb/s (default)
> Metadata:
> creation_time : 2020-12-18T22:20:29.000000Z
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> File '/dev/null' already exists. Overwrite? [y/N] y
> Stream mapping:
> Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
> Stream #0:1 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
> Press [q] to stop, [?] for help
> Output #0, nut, to '/dev/null':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> com.apple.quicktime.location.ISO6709: +33.4233-084.5802/
> com.apple.quicktime.creationdate: 2020-12-18T17:20:29-0500
> encoder : Lavf62.0.100
> Stream #0:0: Video: rawvideo (RGB[15] / 0xF424752), p010le(pc,
> bt2020nc/bt2020/smpte2084, progressive), 3840x2160, q=2-31, 7457502
> kb/s, 59.94 fps, 60k tbn (default)
> Metadata:
> encoder : Lavc62.0.101 rawvideo
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> Stream #0:1: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo,
> fltp (default)
> Metadata:
> encoder : Lavc62.0.101 libvorbis
> creation_time : 2020-12-18T22:20:29.000000Z
> X-Language : und
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> [out#0/nut @ 0xb4f5240] video:27896400KiB audio:232KiB subtitle:0KiB
> other streams:0KiB global headers:4KiB muxing overhead: 0.000255%
> frame= 1148 fps= 35 q=-0.0 Lsize=27896703KiB time=00:00:19.16
> bitrate=11921748.9kbits/s speed=0.579x
>
> VULKAN = 35 fps!
>
> So, after THIS result I *definitely* will look into Vulkan hwaccel! :)
> --
> Cin mailing list
> Cin at lists.cinelerra-gg.org
> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250507/3334c4ae/attachment-0001.htm>
More information about the Cin
mailing list