Post Sun Mar 02, 2014 6:48 am

Accumulated Sony BDP-Sx90 (2012) tips

I know these will soon be on 2 gens old now but I thought I would share my tips for getting ~98% of MKVs playable and seekable on Serviio (or USB drive). 2013 refresh resolved some of these problems but not all.


1. For any with level > 4.1 profile, these will not play (you will get an error). In Serviio, would suggest changing the relevant check from FILE_ATTRIBUTES (or HEADER, I forget which is default) to ANY as they simply don't play as MKVs (but will play fine remuxed to mpeg2ts). You can patch these out with h264 Level Editor linked above, and it works almost all the time. There's a command line version now which enables batch processing.

2. Seeking. This is now a problem with the majority of newer MKVs you might find because these options which break seeking are now default (hang when you seek, or skips to next file). You can remux MKVs with mkvmerge using the options --clusters-in-meta-seek --engage no_cue_duration --engage no_cue_relative_position. This should fix seeking via both USB and Serviio (you need to refresh the Serviio library after making changes to files).

3. Crash on seeking MKVs with SSA/ASS subtitles with embedded fonts. This does not affect USB playback but is a problem through Serviio. You can remux with the "--no-attachments" option (used on output) to disable these. These subtitles will still work but with a default system / media player font.

You can do 2 and 3 with with the mkvtoolnix GUI version too. This is a good time to add for example missing chapters / subtitles into your file.

Remaining issues:

No PGS subtitle support.

There is an issue with very high bitrate MKVs which will just pause / hang player - I found this with 1080p 3D rips for example, or remuxed (full bitrate) BluRay rips - this happens even on USB where there should be plenty of bandwidth.

Here is a batch file which I use to convert MKVs via command line. Obviously mkvmerge must be in the path.
IF [%1]==[] GOTO END
IF [%2]==[] GOTO BATCH
"mkvmerge.exe" "--clusters-in-meta-seek" "--engage" "no_cue_duration" "--engage" "no_cue_relative_position" -o "%~2\%~1" "--no-attachments" "(" "%~1" ")"
FOR %%F IN (*.mkv) do mkvmerge.exe "--clusters-in-meta-seek" "--engage" "no_cue_duration" "--engage" "no_cue_relative_position" -o "%~1\%%F" "--no-attachments" "(" "%%F" ")"

These take input (either whole folder if used with one argument, or single file if used with two arguments) and output them to a new folder. Now I'm trying to find a way to intelligently to remux those that require it (absence of KaxSeekHead in the Seek data seems to indicate Sony/Samsung incompatible seeking) but mkvinfo doesn't give this information out except in GUI mode, which obviously does not lend itself to batch processing. I'd also like a way to diff the before and after in some way so that I could restore the orignal file from the remuxed one rather than keep a copy of both but I haven't figured out a good way of doing this (PAR2 with about 5% redundancy works for many, but not all and it's very cumbersome time consuming).
Sony KDL-55HX750 and BDV-N990W (Home Theatre)
Sony KDL-40D3100 and BDP-S390 (Loungeroom)