Slow playback of mp4 60fps files

60fps MP4 files play slowly in VLC, SMPlayer, and MPV. What needs to be configured to be able to play a 60fps MP4 file smoothly?

Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (isom/mp42)
File size                                : 265 MiB
Duration                                 : 15 s 346 ms
Overall bit rate                         : 145 Mb/s
Frame rate                               : 60.000 FPS
Encoded date                             : 2025-05-03 10:40:43 UTC
Tagged date                              : 2025-05-03 10:40:43 UTC
Writing operating system                 : Google Android 14


Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L5.1@High
Codec ID                                 : hvc1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 15 s 346 ms
Bit rate                                 : 144 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 60.000 FPS
Minimum frame rate                       : 60.000 FPS
Maximum frame rate                       : 60.040 FPS
Real frame rate                          : 60.000 FPS
Standard                                 : PAL
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.290
Stream size                              : 264 MiB (100%)
Title                                    : VideoHandle
Language                                 : English
Encoded date                             : 2025-05-03 10:40:43 UTC
Tagged date                              : 2025-05-03 10:40:43 UTC
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709
mdhd_Duration                            : 15346
Codec configuration box                  : hvcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 15 s 321 ms
Source duration                          : 15 s 317 ms
Bit rate mode                            : Constant
Bit rate                                 : 256 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 479 KiB (0%)
Source stream size                       : 479 KiB (0%)
Title                                    : SoundHandle
Language                                 : English
Encoded date                             : 2025-05-03 10:40:43 UTC
Tagged date                              : 2025-05-03 10:40:43 UTC
mdhd_Duration                            : 15321

I bet that the problem is not 60 fps but HEVC decoding, likely the system has no HW decoder for that.
Please post vainfoand/or vdpauinfo |grep HEVC depending on your GPU.

# vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Mesa Gallium driver 25.0.5 for AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.61, 6.14.5-1-default)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

# vdpauinfo |grep HEVC
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---
HEVC_MAIN_444_10               --- not supported ---
HEVC_MAIN_444_12               --- not supported ---

As suspected, from that output there is no HW decoding for HEVC. If no relevant output is seen from vdpauinfo, you are bound to SW decoding and that paired with 60 fps might exceed the horsepower of your CPU.
I have no AMD HW on hand ATM, so cannot comment further. Showing inxi -GCaz might help others with similar HW suggest relevant tweaks if any.

# inxi -GCaz
CPU:
  Info: model: AMD Ryzen 7 5700G with Radeon Graphics socket: AM4 bits: 64
    type: MT MCP arch: Zen 3 gen: 3 level: v3 note: check built: 2021-22
    process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA500011
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
    smt: enabled cache: L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB
    desc: 8x512 KiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 4301 min/max: 400/5288 boost: enabled
    base/boost: 4300/4650 scaling: driver: amd-pstate-epp governor: powersave
    volts: 1.4 V ext-clock: 100 MHz cores: 1: 4301 2: 4301 3: 4301 4: 4301
    5: 4301 6: 4301 7: 4301 8: 4301 9: 4301 10: 4301 11: 4301 12: 4301
    13: 4301 14: 4301 15: 4301 16: 4301 bogomips: 137594
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
    STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Cezanne [Radeon Vega Series /
    Radeon Mobile Series] vendor: ASUSTeK driver: amdgpu v: kernel arch: GCN-5
    code: Vega process: GF 14nm built: 2017-20 pcie: gen: 3 speed: 8 GT/s
    lanes: 16 ports: active: DP-1,HDMI-A-1 empty: none bus-ID: 09:00.0
    chip-ID: 1002:1638 class-ID: 0300 temp: 40.0 C
  Display: x11 server: X.Org v: 21.1.15 with: Xwayland v: 24.1.6
    compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting,vesa
    alternate: fbdev dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3200x1200 s-dpi: 96 s-size: 846x317mm (33.31x12.48")
    s-diag: 903mm (35.57")
  Monitor-1: DP-1 mapped: DisplayPort-0 pos: primary,left
    model: Philips PHL 240B7QPJ serial: <filter> built: 2017 res:
    mode: 1920x1200 hz: 60 scale: 100% (1) dpi: 94 gamma: 1.2
    size: 518x324mm (20.39x12.76") diag: 611mm (24.1") ratio: 16:10 modes:
    max: 1920x1200 min: 720x400
  Monitor-2: HDMI-A-1 mapped: HDMI-A-0 pos: right
    model: LG (GoldStar) L1960TQ serial: <filter> built: 2006 res:
    mode: 1280x1024 hz: 60 scale: 100% (1) dpi: 86 gamma: 1.2
    size: 376x301mm (14.8x11.85") diag: 482mm (19") ratio: 5:4 modes:
    max: 1280x1024 min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi x11:
    drv: radeonsi inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.5 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon Graphics (radeonsi renoir ACO DRM
    3.61 6.14.5-1-default) device-ID: 1002:1638 memory: 500 MiB unified: no
  API: Vulkan v: 1.4.309 layers: 1 device: 0 type: integrated-gpu name: AMD
    Radeon Graphics (RADV RENOIR) driver: N/A device-ID: 1002:1638
    surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe (LLVM 20.1.4 256
    bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: radeontop wl: wayland-info
    x11: xdpyinfo, xprop, xrandr

I did a test on an Intel Core i7-4720HQ without HW decoding using this sample.
On Gnome using Showtime one core is always near 100%, using Totem two cores are always near 100%, both having brief “holes” in audio or video.
Using the barefoot command line ffplay "The National - Tropic Morning News (Tonight Show, 2023).mkv" one core is constantly at 85-90% but the clip plays smoothly.
Maybe you are in a similar situation and unless you can convince your video player(s) to use parallel threads (or find one player that does) I think you have no chance.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.