2024-09-28, 06:02 PM
(This post was last modified: 2024-09-30, 07:14 PM by deadman87. Edited 2 times in total.)
I have a self-hosted Jellyfin instance on my home network that I have wanted to use with my Hisense 55U7QF with Vidaa OS.
The DLNA playback on the Hisense TV is unstable as some videos will not play at all and others play with stutters and glitches. Accessing the Jellyfin web interface in the TV browser is not a good experience when navigating with TV remote. The TV browser reports HEVC support, the playback of HEVC content is glitchy. x264 content plays just fine.
Then I discovered you can add web apps in Hisense using the debug options and it properly supports Jellyfin web’s TV mode where the navigation is far superior. The HEVC playback remains a problem because Jellyfin does not allow you to force transcoding HEVC to x264 unless the playback bitrate is lower than the video bitrate. This makes the videos unwatchable.
In this post I will show you how to:
1. Add Jellyfin web to your Hisense TV as an app for easy navigation
2. Patch Jellyfin Web to ignore Hisense browser’s HEVC support so it always transcodes to x264 while maintaining resolution/quality.
My current setup has Jellyfin running in a Docker container using Docker compose on Debian. The Jellyfin image I am using is the LinuxServer.io Jellyfin Image.
Adding Jellyfin App
Congratulations, you now have Jellyfin working in your TV, alongside Netflix, AppleTV+ and other apps. If you only have x264 content on your server, you can stop here and enjoy Jellyfin on your Hisense Vidaa OS TV.
Patching Jellyfin for transcoded HEVC playback
For this part, we have to fetch the jellyfin-web source code, make a small change to ignore HEVC support reported by the TV and rebuild the web interface. For this part, you need Node.js installed.
If you are using LinuxServer.io’s Jellyfin image, you can mount the dist/ folder as a volume in your compose.yml file. The destination path for the volume mount is
/usr/share/jellyfin/web
I moved the dist/ folder to the same location as my compose.yml, renamed it to jellyfin-web-vidaa and mounted it inside the container.
Here is my Jellyfin config from compose.yml:
Finally, everything works as expected. Jellyfin appears on the TV as an app, TV remote navigation works well and HEVC playback is transcoded and without glitches.
P.S. Sorry if the formatting is off, I originally wrote this as a blog post. Pasting here for the benefit of the community and giving back.
The DLNA playback on the Hisense TV is unstable as some videos will not play at all and others play with stutters and glitches. Accessing the Jellyfin web interface in the TV browser is not a good experience when navigating with TV remote. The TV browser reports HEVC support, the playback of HEVC content is glitchy. x264 content plays just fine.
Then I discovered you can add web apps in Hisense using the debug options and it properly supports Jellyfin web’s TV mode where the navigation is far superior. The HEVC playback remains a problem because Jellyfin does not allow you to force transcoding HEVC to x264 unless the playback bitrate is lower than the video bitrate. This makes the videos unwatchable.
In this post I will show you how to:
1. Add Jellyfin web to your Hisense TV as an app for easy navigation
2. Patch Jellyfin Web to ignore Hisense browser’s HEVC support so it always transcodes to x264 while maintaining resolution/quality.
My current setup has Jellyfin running in a Docker container using Docker compose on Debian. The Jellyfin image I am using is the LinuxServer.io Jellyfin Image.
Adding Jellyfin App
- Ensure your TV is connected to your home network
- Open Browser App
- Navigate to Code:
hisense://debug
- Fill in the form as follows:
- App Name:
Jellyfin
- Thumbnail:
Code:http://<jellyfin_ip:port>/web/assets/splash/iphone5_splash_l.png
- IconSmall:
Code:http://<jellyfin_ip:port>/web/assets/img/icon-transparent.png
- IconLarge:
Code:http://<jellyfin_ip:port>/web/assets/img/icon-transparent.png
- App Url:
Code:http://<jellyfin_ip:port>/
- Resolution:
1080
- App Name:
- Click Install
Congratulations, you now have Jellyfin working in your TV, alongside Netflix, AppleTV+ and other apps. If you only have x264 content on your server, you can stop here and enjoy Jellyfin on your Hisense Vidaa OS TV.
Patching Jellyfin for transcoded HEVC playback
For this part, we have to fetch the jellyfin-web source code, make a small change to ignore HEVC support reported by the TV and rebuild the web interface. For this part, you need Node.js installed.
- git clone https://github.com/jellyfin/jellyfin-web.git
- cd jellyfin-web
- npm install
- nano src/scripts/browserDeviceProfile.js
You can use any text editor / IDE for making the edit
- Edit the canPlayHevc(...) function and add update the condition from:
if (browser.ps4) {
to:
if (browser.ps4 || browser.vidaa) {
Save and close the file
- npm run build:production to get a dist/ folder containing updated code.
If you are using LinuxServer.io’s Jellyfin image, you can mount the dist/ folder as a volume in your compose.yml file. The destination path for the volume mount is
/usr/share/jellyfin/web
I moved the dist/ folder to the same location as my compose.yml, renamed it to jellyfin-web-vidaa and mounted it inside the container.
Here is my Jellyfin config from compose.yml:
Finally, everything works as expected. Jellyfin appears on the TV as an app, TV remote navigation works well and HEVC playback is transcoded and without glitches.
P.S. Sorry if the formatting is off, I originally wrote this as a blog post. Pasting here for the benefit of the community and giving back.