MKV Video Refuses to Play

I’ve encountered an issue that appears to manifest itself in exactly the same was as the old “MKV header compression issue” did (tries to load and just hangs, can’t play any other videos without rebooting afterwards, duration timer (current and total) stay on zero, network activity but nothing is happening, etc). But this doesn’t make sense as firstly I’m using the latest firmware (.44) and the container doesn’t have any form of compression enabled. MKVInfo output is below:

root@ragnarok Movies $ mkvinfo “127 Hours (2010).mkv”

  • EBML head

|+ (Unknown element: EBMLCrc32; ID: 0xbf size: 6)

|+ Doc type: matroska

|+ Doc type version: 2

|+ Doc type read version: 2

  • Segment, size 4680518057

|+ Seek head (subentries will be skipped)

|+ EbmlVoid (size: 108)

|+ Segment information

| + Duration: 5621.625s (01:33:41.625)

| + Muxing application: libebml2 v0.20.2 + libmatroska2 v0.21.1

| + Writing application: mkclean 0.8.1 ru from libebml v1.0.0 + libmatroska v1.0.0 + mkvmerge v4.0.0 (‘The Stars were mine’) built on Jun  6 2010 16:18:42

| + Date: Fri Apr  1 13:11:58 2011 UTC

| + Segment UID: 0xa1 0xe5 0x19 0x8d 0x1e 0xdb 0x79 0xc0 0xa2 0x63 0xc8 0xde 0x23 0x1f 0xc7 0x3f

|+ Segment tracks

| + A track

|  + Track number: 1

|  + Track type: video

|  + Codec ID: V_MPEG4/ISO/AVC

|  + Track UID: 1

|  + Default flag: 0

|  + Lacing flag: 0

|  + MinCache: 1

|  + CodecPrivate, length 39 (h.264 profile: High @L4.1)

|  + Default duration: 41.708ms (23.976 fps for a video track)

|  + Video track

|   + Pixel width: 1280

|   + Pixel height: 688

| + A track

|  + Track number: 2

|  + Track type: audio

|  + Codec ID: A_DTS

|  + Track UID: 1434940322

|  + Language: und

|  + Audio track

|   + Sampling frequency: 48000

|   + Channels: 6

|+ Cues (subentries will be skipped)

|+ Cluster

This is just an example, all of my MKV files result the same behaviour. Can anyone think of any other reason that this would happen?

Looks like I’ve found the source of the problem.

I wasn’t sure if any of my MKV files had compressed headers, so I thought I’d run them all through “mkclean” with --remux and --no-optimize as from what I’d read it seemed like --no-optimize would disable compression on the headers.

These files still play on my PC but they just hang on the WDTV Live. Instead I ran them back through MKVMerge, forcing compression off and they started working again. This is weird because mkvinfo doesn’t mention any compression.

So yeah, if you want your MKV files to work on your WDTV Live, don’t use mkclean!

Interesting, time to double check some old “not working” MKV.

Thank you for the information.

For reference, these are the outputs of a good MKV file (first) and a bad one (run through mkclean) second:

== Good

+ EBML head

|+ EBML version: 1

|+ EBML read version: 1

|+ EBML maximum ID length: 4

|+ EBML maximum size length: 8

|+ Doc type: matroska

|+ Doc type version: 2

|+ Doc type read version: 2

  • Segment, size 4680519954

|+ Seek head (subentries will be skipped)

|+ EbmlVoid (size: 4043)

|+ Segment information

| + Timecode scale: 1000000

| + Muxing application: libebml v1.2.0 + libmatroska v1.1.0

| + Writing application: mkvmerge v4.6.0 (‘Still Crazy After All These Years’) built on Mar 19 2011 17:02:50

| + Duration: 5621.625s (01:33:41.625)

| + Date: Sun Apr  3 00:16:29 2011 UTC

| + Title: 127 Hours (2010)

| + Segment UID: 0x38 0xf6 0x0a 0x20 0x2b 0x1d 0x5f 0x40 0x38 0x94 0xe4 0x19 0x8b 0x3e 0x39 0xe6

|+ Segment tracks

| + A track

|  + Track number: 1

|  + Track UID: 1

|  + Track type: video

|  + Default flag: 0

|  + Lacing flag: 0

|  + MinCache: 1

|  + Codec ID: V_MPEG4/ISO/AVC

|  + CodecPrivate, length 39 (h.264 profile: High @L4.1)

|  + Default duration: 41.708ms (23.976 fps for a video track)

|  + Video track

|   + Pixel width: 1280

|   + Pixel height: 688

|   + Display width: 1280

|   + Display height: 688

| + A track

|  + Track number: 2

|  + Track UID: 1434940322

|  + Track type: audio

|  + Codec ID: A_DTS

|  + Default duration: 10.667ms (93.750 fps for a video track)

|  + Language: und

|  + Audio track

|   + Sampling frequency: 48000

|   + Channels: 6

|+ EbmlVoid (size: 1089)

|+ Cluster

== Bad

  • EBML head

|+ (Unknown element: EBMLCrc32; ID: 0xbf size: 6)

|+ Doc type: matroska

|+ Doc type version: 2

|+ Doc type read version: 2

  • Segment, size 4680511514

|+ Seek head (subentries will be skipped)

|+ EbmlVoid (size: 108)

|+ Segment information

| + Duration: 5621.625s (01:33:41.625)

| + Muxing application: libebml2 v0.20.2 + libmatroska2 v0.21.1

| + Writing application: mkclean 0.8.1 ru from libebml v1.2.0 + libmatroska v1.1.0 + mkvmerge v4.6.0 (‘Still Crazy After All These Years’) built on Mar 19 2011 17:02:50

| + Date: Sun Apr  3 17:03:55 2011 UTC

| + Title: 127 Hours (2010)

| + Segment UID: 0x38 0xf6 0x0a 0x20 0x2b 0x1d 0x5f 0x40 0x38 0x94 0xe4 0x19 0x8b 0x3e 0x39 0xe6

|+ Segment tracks

| + A track

|  + Track number: 1

|  + Track type: video

|  + Codec ID: V_MPEG4/ISO/AVC

|  + Track UID: 1

|  + Default flag: 0

|  + Lacing flag: 0

|  + MinCache: 1

|  + CodecPrivate, length 39 (h.264 profile: High @L4.1)

|  + Default duration: 41.708ms (23.976 fps for a video track)

|  + Video track

|   + Pixel width: 1280

|   + Pixel height: 688

| + A track

|  + Track number: 2

|  + Track type: audio

|  + Codec ID: A_DTS

|  + Track UID: 1434940322

|  + Default duration: 10.667ms (93.750 fps for a video track)

|  + Language: und

|  + Audio track

|   + Sampling frequency: 48000

|   + Channels: 6

|+ Cues (subentries will be skipped)

|+ Cluster

Also, for reference, the easiest way to remux an MKV file (to remove compression, random rubbish and ensure it’s valid) with no effort or interaction necessary is:

mkvmerge -M --compression -1:none “OldFile.mkv” -o “NewFile.mkv”

Saves going into the GUI for every file and manually setting each element to “Compression: None”. Add in a “for” loop and you can remux your entire collection with no user interaction necessary.