Linux Codec x265 (hevc) Video format not showing properly

Steps to reproduce

Find any hevc x265 Video and insert it into Obsidian File
Try to Embed it wiht ![] or try to open it in the file viewer. Both will not show the video

Did you follow the troubleshooting guide? [Y/N]

Yes. Also tested with

  1. Hardware Acceleration
  2. Restricted Mode
  3. Newly Installed AppImage
  4. Cache rebuilt

Expected result

Video.mp4 to load properly

Actual result

Video not showing. (The Image/Frames are not showing up. Audio is working fine)

Environment

SYSTEM INFO:
Obsidian version: 1.12.7
Installer version: 1.12.7
Operating system: #23~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 14 16:11:48 UTC 2 6.17.0-23-generic
Login status: not logged in
Language: en
Insider build toggle: off
Live preview: on
Base theme: light
Community theme: AnuPpuccin 1.5.0
Snippets enabled: 0
Restricted mode: off
Plugins installed: 1
Plugins enabled: 1
1: File Color v1.1.0
RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.


Additional information

This is not just me. I have checked other places [Reddit, Forums] and most had same issue.
I do have x265 installed from software App.
Note:
It works when i change the codex so video itself is not problem [and i checked, 3 different x265 codex videos are not working but all x264 works]
The Command I used to convert: (For reference since I have no idea whawt it actually do)
for f in *.mp4; do ffmpeg -i “$f” -c:v libx264 -crf 28 -c:a aac “fixed_$f”; done

These are Images. I did that on sandbox for images just to make sure it was not internal confliction. Please fix this.

Please, install chrome, and try if the video works on chrome.

1 Like

It does not work on google Chrome and Chromium (Checked on both since Eletron is chorium based). The UI is same as it shows on Obsidian
But on Firefox based browsers [firefox, Zen] it works normally. Same for Media player

I tried changing Hardware GPU decoding setting but it is still the same

It is my understanding that Chrome/Chromium based browser do not use (or ship with) x265 software codecs (for royalty reasons) and rely on the GPU acceleration.

Either your GPU itself doesn’t support x265 decoding or something is broken in the chain chromium/gpu driver/gpu to enable this support.

This is outside of what we can control

1 Like

This is just workaround for users with old laptops or with same issue.
Use ffmpeg and bash/shell to scan folder and covert any x265 file → x264. File size will increase around +50% since x265 is modern and better
You can also use handbrake if you are not comfortable with command line and do it by batch but I have no tested it myself as the script I use (ffmpeg) backs up the original file as i convert the to x264 just to be safe.

Summary:

Since license cost money. Chromium/chrome do not give codecs and uses GPU as the developer mentioned (and Eletron uses chromium).
For old Laptop users whose GPU does not support , the easiest way is to change the codex to x264
You can use HandBreak (gui) or ffmpeg (cli)

Thank you for clarification WhiteNoise

You could use AV1 instead of x265.