MediaElement won't play supported video format

0

We'd like to play a video delivered by our customer using the MediaElement within a Windows 8.1 app. The videos are encoded using H.264:

Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L5.1
Format settings, CABAC         : Yes
Format settings, ReFrames      : 3 frames
Codec ID                       : avc1
Codec ID/Info                  : Advanced Video Coding
Bit rate mode                  : Variable
Bit rate                       : 9 300 Kbps
Maximum bit rate               : 11.1 Mbps
Width                          : 1 080 pixels
Height                         : 1 920 pixels
Frame rate mode                : Constant
Frame rate                     : 30.000 fps
Standard                       : NTSC
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Color primaries                : BT.709
Transfer characteristics       : BT.709
Matrix coefficients            : BT.709

As I can tell from the MSDN documentation (here and here), the encoding should be supported.

But when I assign the Video URL to a media element, I'll get the following error from the MediaFailed event:

MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED : HRESULT - 0xC00D5212

Is there a way to debug, what's the actual problem with the video, e.g. what kind of feature is not supported? I read a lot about videos that had problems with meta-data and stuff and tried various different encodings, but wasn't able to track down the issue. It's kinda hard when you get no information from the API.

c#
video
windows-8.1
h.264
mediaelement
asked on Stack Overflow Feb 20, 2015 by Gene

1 Answer

0

So it turned out that they sent us H.264 encoded videos, embedded into an AVI container. This is kind of ugly and not supported by the MediaElement. Switching to a proper MPEG-4 container solved the problem.

Unfortunately we were unable to find logs or exception details pointing us into the right direction, so trial & error did the trick.

answered on Stack Overflow Feb 27, 2015 by Gene

User contributions licensed under CC BY-SA 3.0