[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