Hi,
I had some mkv movies that would not play on my Panasonic ST50.
Some movies had the profile higher than 4.1 (max supported by ST50) and were playing fine, some - the opposite - right profile but were stuttering.
It took me an evening to find the culprit - first I was comparing the files' details to find the differences, then I found the concept of the reference frames in this very topic and the problem was solved. (big thanks for that

)
Now, I have another file that matches all the requirements but does not play (stripped the audio information):
- Code:
Complete name : Brave.2012.PLDUB.720p.BluRay.x264.AC3-LLO.mkv
Format : Matroska
Format version : Version 2
File size : 3.24 GiB
Duration : 1h 34mn
Overall bit rate : 4 922 Kbps
Encoded date : UTC 2012-11-16 05:43:44
Writing application : mkvmerge v3.4.0 ('Rapunzel') built on May 15 2010 09:38:20
Writing library : libebml v0.8.0 + libmatroska v0.9.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 12 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1h 34mn
Bit rate : 4 500 Kbps
Width : 1 280 pixels
Height : 536 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.274
Stream size : 2.88 GiB (89%)
Writing library : x264 core 128 r2216+688+33 06dac27 tMod+MixAQ [8-bit@4:2:0 X86_64]
Encoding settings : cabac=1 / ref=12 / deblock=1:-2:-2 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / fade_compensate=0.00 / psy_rd=0.85:0.00 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=18 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=240 / rc=2pass / mbtree=1 / bitrate=4500 / ratetol=1.0 / qcomp=0.70 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.10 / aq=4 / aq-strength=1.15 / aq-sensitivity=10.00 / aq-ifactor=1.00 / aq-pfactor=1.00 / aq-bfactor=1.00 / aq2=0
Language : English
Default : No
Forced : No
and I started wondering what is going on...
BTW - the video was taken from the Brave.2012.720p.BluRay.x264-HDChina release.
According to both
http://wiki.serviio.org/doku.php?id=get_h264_level and
http://en.wikipedia.org/wiki/H264#Levels it falls to the 4.1 profile but somehow the video does not play.
It looks like the TV is determining the h264 level in a way different than provided in the links above. My assumption is that it only checks the width as long as the height does not exceed the maximum value for a full frame... so:
- for width of 1280 and any height up to 720, the number of reference frames must not be greater than 9
- for width of 1920 and height up to 1080, the reference frames must not exceed 4
I did some tests. I took 100 MB of the file in question, and transcoded it to have less reference frames:
- original - 1280x536, 12 ReFrames - not working
- same size, 9 ReFrames - working just fine
- same size, 11 ReFrames - less stuttering but still not working (I gave it a shot because of the following statement:
It is important to note that the current picture being decoded is not included in the computation of DPB fullness (unless the encoder has indicated for it to be stored for use as a reference for decoding other pictures or for delayed output timing). Thus, a decoder needs to actually have sufficient memory to handle (at least) one frame more than the maximum capacity of the DPB as calculated above.
from
http://en.wikipedia.org/wiki/H264#Decod ... _buffering)
- size 1280x200, 10 ReFrames - still a problem and MediaInfo shows a profile of High@L3.1
Maybe you would like to consider the above findings to amend the Viera 2012 (cannot confirm the other) Serviio profile.
Let me know if you need the detailed logfile.