v16 Temporary discolouration while playing MKVs
#1
Information 
This has bugged me for quite a while now, so I figured it's time to officially seek help. =]

Sometimes during MKV playback the screen will have a discoloured area, the size of which is very random. The colours (so far) vary between: green, pink, blue. It always seems to affect dark pixels of the shot, like black and dark grey. It only kicks in during playback but when I pause it doesn't go away. Only if it cuts to an entirely different shot will it render normally again. Audio and subtitles etc are unaffected. Playback of the exact same MKV from the exact same source using VLC on my computer works just fine (the file is on an SMB share on my NAS).

I searched the forums and found some somewhat relevant (but also quite old) threads, but none of the suggestions seem to work or are even available anymore:
Encoding details (according to VLC):
  • Codec: H264 - MPEG-4 AVC
  • Audio: AAC
  • Decoded format: Planar 4:2:0 YUV 10-bit LE

Now, the 10-bit LE part seemed a little off so I checked a known good MKV and it showed just Planar 4:2:0 YUV. I'm not entirely sure what it means so I figured I may as well mention it.

I'm running Kodi 16.1 via OSMC.
Reply
#2
I assume this is Hi10P (10-bit H.264). That is not supported by the hardware decoder and will have artefacts.

The nightly builds will handle this format (as part of 10-bit H.265 work), but using software decode.
You can play SD 10-bit H.264, but HD will struggle.
Reply
#3
Alright, so Googling for 10-bit H264 gave me a nice bunch of info, which also shows VLC as supporting it. I may just try to transcode everything 10-bit to 8-bit and see if that helps. Thanks for that pointer. =]

EDIT: Yeah, that seems to work. Playing the 10-bit file results in artifacts right away, while the 8-bit variant doesn't have any at all. In case someone needs it, I'm using ffmpeg to transcode it without any (noticeable) quality loss, including cloning all audio and subtitle streams:
Code:
outdir="$HOME/H264_convert"
for mkv in *.mkv; do
    ffmpeg -i "$mkv" -vcodec libx264 -crf 19 -acodec copy -map 0 "$outdir/$mkv"
done
Reply

Logout Mark Read Team Forum Stats Members Help
Temporary discolouration while playing MKVs0