I talked to a dev and the devices themselves send back what they are capable of to the server. It doesn’t use anything in the profiles folder from what I was told. That is why i was asking for the smart tv logs from anyone that said adding the profile file to server was successful
Official Support Request: Persistent buffering issues on VIDAA OS (Hisense TVs) - Lifetime Plex Pass
There are (too) many VIDDA and/or VIDAA - in messages from Plex-app, in xml’s… So, which is it!?
Profiles aren’t recognized; “could not get server identifier” for direct-local server<>app connection… A mess that remains unfixed. ![]()
Unfortunately, I was wrong. It doesn’t take my profile file into account either. What fooled me was that since there were no more movies at home that had subtitles, I extracted them from each one with mkvmerge so that they could be watched. I randomly downloaded one with lots of subtitle tracks, and it played it perfectly. Since I’ve been trying, this has been the only one. I have a detailed debug log of failed playbacks. I don’t know if it’s useful, and if so, where should I upload it?
You can click on my username/avatar to message it to me directly if you don’t want to add it to this topic.
I have a script that installs various profile names in various places Plex could pick up the profile that I researched and found - it’s fixed the issue for me and the profile now gets picked up - no more errors - not sure which of the 8x possible ones it is, it’s late, I’m tired, but it’s progress for me - YMMV…
sudo nano /tmp/install-vidaa-profiles.sh
#!/usr/bin/env bash
set -euo pipefail
APPDATA_PROFILES=“/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Profiles”
RESOURCE_PROFILES=“/usr/lib/plexmediaserver/Resources/Profiles”
PROFILE_NAMES=(“Vidaa” “vidaa” “VIDAA” “VIDDA”)
make_xml() {
local client_name=“$1”
cat <<EOF
<?xml version="1.0" encoding="utf-8"?>
<Client name="${client_name}">
<Identification>
<Header name="X-Plex-Platform" substring="vidaa" />
<Header name="X-Plex-Device" substring="VIDDA" />
<Header name="X-Plex-Model" substring="65Q75QEVS" />
<Header name="User-Agent" substring="VIDDA" />
<Header name="User-Agent" substring="VIDAA" />
<Header name="User-Agent" substring="vidaa" />
</Identification>
<DirectPlayProfiles>
<VideoProfile container="mkv" codec="h264,hevc,h265,mpeg2video,mpeg4" audioCodec="aac,ac3,eac3,dca,truehd,flac,mp3,pcm" subtitleCodec="srt,ass,ssa,subrip,pgs" />
<VideoProfile container="mp4,m4v" codec="h264,hevc,h265,mpeg4" audioCodec="aac,ac3,eac3,mp3" subtitleCodec="srt" />
<VideoProfile container="mpegts,ts" codec="h264,hevc,h265,mpeg2video" audioCodec="aac,ac3,eac3,mp2,mp3" />
<VideoProfile container="avi" codec="mpeg4,h264" audioCodec="mp3,ac3,aac" />
<MusicProfile container="mp3" codec="mp3" />
<MusicProfile container="m4a" codec="aac" />
<MusicProfile container="flac" codec="flac" />
<MusicProfile container="wav" codec="pcm" />
<PhotoProfile container="jpeg,png" />
</DirectPlayProfiles>
<TranscodeTargets>
<VideoProfile container="mkv" codec="h264" audioCodec="aac,ac3" context="streaming" />
<VideoProfile container="mp4" codec="h264" audioCodec="aac,ac3" context="streaming" />
<MusicProfile container="mp3" codec="mp3" />
<PhotoProfile container="jpeg" />
</TranscodeTargets>
<CodecProfiles>
<VideoCodec name="h264">
<Limitations>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2160" />
<UpperBound name="video.level" value="51" />
</Limitations>
</VideoCodec>
<VideoCodec name="hevc">
<Limitations>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2160" />
<UpperBound name="video.bitDepth" value="10" />
</Limitations>
</VideoCodec>
<VideoCodec name="h265">
<Limitations>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2160" />
<UpperBound name="video.bitDepth" value="10" />
</Limitations>
</VideoCodec>
</CodecProfiles>
</Client>
EOF
}
install_profiles_to_dir() {
local target_dir=“$1”
local owner=“$2”
echo “Installing profiles to: $target_dir”
mkdir -p “$target_dir”
for name in “${PROFILE_NAMES[@]}”; do
local file=“${target_dir}/${name}.xml”
if [[ -f "$file" ]]; then
local backup="${file}.bak.$(date +%Y%m%d-%H%M%S)"
echo "Backing up existing $file to $backup"
cp "$file" "$backup"
fi
make_xml "$name" > "$file"
if command -v xmllint >/dev/null 2>&1; then
xmllint --noout "$file"
fi
chown "$owner" "$file" || true
chmod 644 "$file"
done
}
if [[ “$EUID” -ne 0 ]]; then
echo “Run this script with sudo.”
exit 1
fi
install_profiles_to_dir “$APPDATA_PROFILES” “plex:plex”
if [[ -d “$(dirname “$RESOURCE_PROFILES”)” ]]; then
install_profiles_to_dir “$RESOURCE_PROFILES” “root:root”
else
echo “Skipping missing resource path: $RESOURCE_PROFILES”
fi
echo
echo “Installed profile files:”
find “$APPDATA_PROFILES” “$RESOURCE_PROFILES” -maxdepth 1 ( -iname “vidaa.xml” -o -iname “vidda.xml” ) -print 2>/dev/null || true
echo
echo “Restarting Plex Media Server…”
if systemctl list-unit-files | grep -q ‘^plexmediaserver.service’; then
systemctl restart plexmediaserver
elif systemctl list-unit-files | grep -q ‘^plexmediaserver@’; then
systemctl restart plexmediaserver
else
echo “Could not detect Plex systemd service automatically.”
echo “Restart Plex manually.”
fi
echo
echo “Done. Now test playback, then run:”
echo ‘sudo grep -i “Unable to find client profile|65Q75QEVS|VIDDA|Vidaa|VIDAA” “/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Logs/Plex Media Server.log” | tail -100’
sudo chmod +x /tmp/install-vidaa-profiles.sh
sudo /tmp/install-vidaa-profiles.sh
@andybrunton Can you confirm the profile is picked up from the Profiles folder (no more “no profile found” errors)? From what @BigWheel says, profile files are not picked up.
It’s picked up from one of the two profile folders, I don’t know which one or which of the naming conventions for the xml ultimately worked, I haven’t had the time to reverse back through the combinations.
I can confirm I have a working profile and see this in the logs instead of errors
Req#3217a] [Now] User is andybrunton (ID: 1)
May 21, 2026 22:19:05.803 [128454588078904] Debug — [Req#3217a] [Now] Device is vidaa (Hisense 65Q75QEVS).
May 21, 2026 22:19:05.803 [128454588078904] Debug — [Req#3217a] [Now] Profile is vidaa
also Hisense 65Q75QEVS is now a logged in device in the dashboard cards in web UI.
I have this too. But if there is more than one subtitle, it still buffers.
May 22, 2026 11:54:46.195 [129601971784504] DEBUG - [Req#e06] [Now] User is krolytakcs26 (ID: 1)
May 22, 2026 11:54:46.195 [129601971784504] DEBUG - [Req#e06] [Now] Device is vidaa (Hisense 75U75LEVS).
May 22, 2026 11:54:46.195 [129601971784504] DEBUG - [Req#e06] [Now] Profile is vidaa
No-w in my case > Device is vidaa | Profile is Generic > whatever I’ve tried. ![]()
Maybe it’s server-platform related - I’m on R-Pi 4.
I tried this. I’m on Windows so profile directory created in Appdata\local\plex media server\.
I copied the xml file but I still got profile is generic on a 43E70LEVS. So I went into the plex logs and my device is listed as follows:
[Req#2cc] [Now] Device is vidaa (Hisense 43E70LEVS).
So I changed the xml and removed the vidda stuff and changed my model number to match this exactly:
<Identification>
<Header name="User-Agent" substring="vidaa" />
<DeviceDescription type="urn:schemas-upnp-org:device:MediaRenderer:1">
<FriendlyName substring="Vidaa" />
<ModelName substring="Hisense 43E70LEVS" />
</DeviceDescription>
</Identification>
Restarted PMS. Now I get profile is Vidaa instead of generic. So its looks to be picking up the profile correctly now.
I have a second VIDAA tv TV shows in logs at HiSense 43A56FEVS_0010. To get this to show as profile is Vidaa I added another device description in the xml (sorry im using notepad and all the tab indexes are wrong)
<Client name="Vidaa">
<!-- Matches the exact identifiers reported by the TV -->
<Identification>
<Header name="User-Agent" substring="vidaa" />
<DeviceDescription type="urn:schemas-upnp-org:device:MediaRenderer:1">
<FriendlyName substring="Vidaa" />
<ModelName substring="Hisense 43E70LEVS" />
</DeviceDescription>
<DeviceDescription type="urn:schemas-upnp-org:device:MediaRenderer:1">
<FriendlyName substring="Vidaa" />
<ModelName substring="HiSense 43A56FEVS_0010" />
</DeviceDescription>
</Identification>
Restarting PMS now both TVS are getting this vidaa profile…
But I still have my original issue. Might be different from yours. Both TVs force plex to transcode 4K original to 4K 20Mbit (yes 4K 20Mbit). I’ve reinstalled the app on both, checked my server settings and I don’t have any preset hard limits on remote or local quality. Other clients not affected. This is when trying to play 90Mbit UHD Bluray rips with multiple audio tracks/ subs. Network quality is good, all hardwired. Looking in logs and checking the client info page, it won’t direct play or direct stream without transcoding because of the TS container issue I think. The only clue I spotted below is right at the bottom (had to cut out some personal details) where it talks about a generic transcoder profile.
May 23, 2026 09:13:17.585 [16204] DEBUG - [Req#215/Transcode] Audio Stream: 26037, Subtitle Stream: -1
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: Selected protocol hls; container: mpegts
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: analyzing media item 10922
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): Direct Play is disabled
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): media must be transcoded in order to use the hls protocol
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): selected audio stream is not the first audio stream and direct play stream selection is not enabled
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no direct play video profile exists for http/mkv/hevc
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no direct play video profile exists for http/mkv/hevc/truehd
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no direct play video profile exists for http/mkv/hevc/ac3
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no direct play video profile exists for http/mkv/hevc/dca
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no direct play video profile exists for http/mkv/hevc/dca
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): Direct Streaming is disabled, so video stream will be transcoded
May 23, 2026 09:13:17.596 [16204] DEBUG - [Req#215/Transcode] MDE: The Mask of Zorro (1998): no remuxable profile found, so video stream will be transcoded
May 23, 2026 09:13:17.597 [16204] DEBUG - [Req#215/Transcode] MDE: Cannot direct stream video stream due to profile or setting limitations
May 23, 2026 09:13:18.222 [12936] DEBUG - [Req#185/Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-transcode-target(type=videoProfile&context=all&protocol=hls&container=mpegts&videoCodec=h264,mpeg2video&audioCodec=aac,ac3,eac3,mp2)+add-limitation(scope=videoAudioCodec&scopeName=mp2&type=upperBound&name=audio.bitrate&value=350)+add-limitation(scope=videoAudioCodec&scopeName=hevc&scopeType=videoCodec&context=all&protocol=hls&type=match&name=video.orientation&list=0)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.width&value=3840)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.height&value=2160)+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=41)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.bitrate&value=135000)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.frameRate&value=30)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.width&value=3840)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.height&value=2160)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.bitrate&value=80000)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.frameRate&value=60)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.width&value=1920)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=all&protocol=hls&type=upperBound&name=video.height&value=1080)
May 23, 2026 09:13:18.222 [12936] DEBUG - [Req#185/Transcode] TranscodeUniversalRequest: using augmented profile Generic
I think I’m getting close though. It looks like just need to build the profile up to include all the containers/ formats. I notice that the log says directstream profiles not available, but these aren’t included in the vidaa.xml file yet. I think if I was to build this profile up now by trial and error no doubt it would work. I use trueHD as my first audio track so normally use direct stream on most clients, as the normal AC3 track is track 2. I think I need to add directstreamprofiles (or the equiavalent) to the .xml and pop all the video profiles in.
Got to take the nipper football now though so will pick this up later. Thanks for the work on this though I’ve been stuck on this for months.
Not had much luck. Tried various things in the profile. The problem is that it always wants to change the container from MKV to MPEGTS but then H265 doesn’t work with this container. It also tries to use HLS. I checked on my Samsung TV same file, and this behaves differently it changes the container from MKV to MP4, using DASH protocol and H265 works fine no transcode. I tried copying all of the built in Samsung.xml profile info (after the ID part) to the VIDAA.xml but Plex seems to just ignore it all. I’m not even certain its using the profile at all (although it does recognise it now as explained above).
I suspect it doesn’t use it. It reads it somehow, because the error message that there is no profile has disappeared, and if there is a syntax error in the xml, it appears in the log. I tried to solve my problem in the xml (if there are multiple subtitles in the container, then an infinite buffer), but it didn’t work.
This is why I gave up last time. Spent 3 hours again on this today. Managed to sort the profile thing out but that’s not made any difference. All I need it to do is use DASH/MP4 instead of HLS/MPEGTS when direct streaming.
This is why I plugged an old xbox in to the TV and use Kodi with the unofficial plex port. Works fine. On the other TV have a 4K fire stick. I would love it if it would work natively but lifes too short to spend messing with this all weekend again!
A fire stick 4K is £30-50 depending on where you buy it. I’ve already spent more than double that in equivalent labour rate this morning messing about with it again. Hopefully others may prevail but I’m giving up (again) for now.
I’m about to give up too. I don’t know if it’s worth waiting for a fix. Maybe I’ll buy a stick. I managed to remove subtitles with a script, but it’s still inconvenient.
Hey @sieade245
I can’t make Plex Server read the Profile XML file.
This is the error I get in my logs:
[Req#546] Unable to find client profile for device; platform=vidaa, platformVersion=V0000.09.09U.P1027, device=VIDDA V0000.09.09U.P1027, model=100Q60QAVS
What should be the XML filename?
What do I need to type in the Client and Identification tags?
Thanks for your help.
Try with:
sudo nano “/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Profiles/vidaa.xml”
<?xml version="1.0" encoding="utf-8"?>
<Client name="vidaa">
<Identification>
<DeviceDescription>
<!-- <FriendlyName value="vidaa" />
<ModelName value="Hisense 100Q60QAVS" /> -->
</DeviceDescription>
</Identification>
<Settings>
<Setting name="TimelineBufferOffset" value="60" />
</Settings>
<DirectPlayProfiles>
<VideoProfile container="mkv" codec="h264,hevc" audioCodec="aac,ac3,eac3,dts" subtitleCodec="srt" protocol="http"/>
<VideoProfile container="mkv" codec="h264,hevc" audioCodec="aac,ac3,eac3,dts" subtitleCodec="srt" protocol="hls"/>
</DirectPlayProfiles>
<TranscodeTargets>
<VideoProfile container="mkv" codec="h264,hevc,h265" audioCodec="ac3,eac3" context="streaming" protocol="hls" />
<VideoProfile container="mpegts" codec="h264,hevc,h265" audioCodec="ac3,eac3" context="streaming" protocol="hls" />
<MusicProfile container="mp3" codec="mp3" />
<PhotoProfile container="jpeg" />
</TranscodeTargets>
<CodecProfiles>
<SubtitleCodec name="srt">
<Limitations>
<UpperBound name="subtitle.subtitleSize" value="100" />
</Limitations>
</SubtitleCodec>
<VideoCodec name="hevc">
<Limitations>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2160" />
<UpperBound name="video.bitDepth" value="10" />
<UpperBound name="video.bitrate" value="120000" />
</Limitations>
</VideoCodec>
<VideoCodec name="h264">
<Limitations>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2160" />
<UpperBound name="video.level" value="51" />
<UpperBound name="video.bitrate" value="80000" />
</Limitations>
</VideoCodec>
</CodecProfiles>
</Client>
sudo chown plex:plex “/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Profiles/vidaa.xml”
sudo chmod 644 “/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Profiles/vidaa.xml”
In my case:
[Now] Device is vidaa (Hisense 100Q60QAVS).
[Now] Profile is vidaa
But then, Plex is doing subtitle segmentation/transcode helper: decision=direct play protocol=hls
subtitle requests internally use a separate helper pipeline: GET /subtitles/:/transcode/universal/start
and then Plex temporarily switches to: TranscodeUniversalRequest: using augmented profile Generic
Whatever, buffering issues are still present. It’s 'bout Plex-app and that’s it.