Zotac XBOXHD-ID11 MKV H.264 Video Playback Performance

When I started writing about the ID11, my intent was to document video playback and use as a HTPC, several posts later, and I am finally getting to MKV H.264 playback configuration and performance.

This is the sixth post in a series of posts related to the Zotac ZBOX ZBOXHD-ID11.

Summary:

 

I am not an expert in how these things work, but I have a basic understanding of video playback on Windows platforms, so let’s start with the file format; an MKV file is a Matroska Media Container file. A MKV file can contain multiple audio-, video-, subtitle-, and other, streams. A MKV file is not a video or audio compression format, it is just a container.

To play the contents of a MKV file, you need a de-multiplexer or splitter, the splitter understands the container format, and produces separate output streams.

The stream output is processed by the stream decoders, typically known as DirectShow filters. The stream filters need to understand the stream contents, e.g. H.264 video, DTS audio, subtitles, etc.

Lastly there are the renderers, the renderer produces the final output such as video display or audio output.

In case of DXVA, the video decoder and the video renderer have a close relationship, the DXVA decoded content can be directly rendered from GPU memory. In comparison, the CoreCodec CoreAVC codec supports GPU hardware acceleration, but it uses the NVIDIA CUDA platform for mathematical processing. The CUDA decoded content needs to be copied to GPU memory, resulting in higher CPU utilization.

An easy way to visualize the stream flow is to use MONOGRAM GraphStudio.

I spent quite a bit of time getting the right versions of the right software installed, and on two occasions new versions were released during my testing, and I had to test again. I started by using the K-Lite Codec Pack. But, I know not everybody installs codec packs, and not everybody uses K-Lite, so I wanted to find the minimum set of components required for playback without the use of a codec pack.

In my testing Windows and CoreCodec CoreAVC were the only commercial products, the remainder are free, and of the free products, only Haali Media Splitter is not open source.

I used the following product versions:

Product

Version

Media Player Classic Home Cinema 1.2.1249 (x64)
Haali Media Splitter 1.10.175.0 (x86, x64)
ffdshow tryouts rev 3452 (x86, x64)
MediaPortal 1.1.0 RC3 (x86)
XBMC DSPlayer rev 30385 (x86)
CoreCodec CoreAVC 2.0 (x86, x64)
Microsoft DTV-DVD Video Decoder Windows 7 Ultimate x64
Windows Media Player Windows 7 Ultimate x64
Windows Media Center Windows 7 Ultimate x64

 

I tested by letting the system idle, then playing a one minute, 1080p, MKV, H.264, DTS, subtitles, video clip, full screen, on a 1920×1200 display, then back to idle. Where possible the player was set to auto repeat and play for ten minutes, where the player did not support auto-repeat, I manually played the clip three times. While playing, I recorded the CPU utilization using Windows Task Manager, the GPU utilization using GPU-Z, and the fan speed, CPU and GPU temperature using CPUID Hardware Monitor Pro.

 

Media Player Classic Home Cinema is simple to use; install it, open the MKV file, and it plays, with subtitles, with MCE remote control support, no additional configuration required. MPC-HC includes all the components required for playback, and does not require any system installed components to function.

From what I read, MPC-HC was the first player to include DXVA accelerated playback. Both DSPlayer and MediaPortal include codecs based on MPC-HC code.

An alternative standalone player, that I did not test, is the VLC Media Player.

Below are the MPC-HC graphs for fan speed, CPU temperature, and GPU temperature:

MPC.CPUFANIN

MPC.CPUTIN

MPC.GPU.Temp

Below are the MPC-HC graphs for CPU and GPU utilization:

MPC.CPU

MPC.GPU

 

Windows Media Player is included with the standard Windows installation. WMP uses the system installed DirectShow filers for playback. Even on a x64 system, WMP is still a x86 process, as such, it requires the installation of x86 filters.

In order for WMP to open MKV files, a splitter is required, I used Haali Media Splitter.

I tested playback with three different video decoders; the Microsoft DTV-DVD Video Decoder, CoreCodec CoreAVC, and ffdshow tryouts.

I have read that it is possible to get subtitles working with WMP, but even with enabling subtitles in ffdshow, I could not get subtitles to show in WMP. I am sure it is possible, I just didn’t spend the effort to make it work.

 

When multiple codecs are installed, WMP player uses the preferred codec for playback. The preferred codec can be set using the Preferred Filter Tweaker for Windows 7, or it may be easier to just install one codec at a time:

Win7DSFilterTweaker

 

Haali Media Splitter provides an alternative way of forcing video decoding using ffdshow, HMS can change the video output type to a format that is only registered for decoding by ffdshow. This is accomplished by using the [Use custom media type for H.264]. This allows you to easily switch between the Windows default ([No]), and ffdshow ([Yes]):

Haali.Custom.Output

 

In order to use hardware acceleration in ffdshow, the ffdshow DXVA codec needs to be configured for H.264 hardware acceleration:

ffdshow.Hardware.Acceleration

You may also need to change the DirectShow control options in ffdshow to allow the filter to be used in your player’s process space:

ffdshow.DirectShow.Control

 

Below are GraphStudio graphs showing the various codecs in action:

Windows.Graph

CoreAVC.Graph

ffdshow.Graph

 

Below are the WMP with Microsoft DTV-DVD Video Decoder graphs for fan speed, CPU and GPU temperature:

MediaPlayer.Windows.CPUFANIN0

MediaPlayer.Windows.CPUTIN

MediaPlayer.Windows.GPU.Temp

Below are the WMP with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:

MediaPlayer.Windows.CPU

MediaPlayer.Windows.GPU

 

Below are the WMP with CoreAVC graphs for fan speed, CPU and GPU temperature:

MediaPlayer.CoreAVC.CPUFANIN0

MediaPlayer.CoreAVC.CPUTIN

MediaPlayer.CoreAVC.GPU.Temp

Below are the WMP with CoreAVC graphs for CPU and GPU utilization:

MediaPlayer.CoreAVC.CPU

MediaPlayer.CoreAVC.GPU

 

Below are the WMP with ffdshow DXVA graphs for fan speed, CPU and GPU temperature:

MediaPlayer.ffdshow.CPUFANIN0

MediaPlayer.ffdshow.CPUTIN

MediaPlayer.ffdshow.GPU.Temp

Below are the WMP with ffdshow DXVA graphs for CPU and GPU utilization:

MediaPlayer.ffdshow.CPU

MediaPlayer.ffdshow.GPU

 

Windows Media Center is included with the Premier and Ultimate editions of Windows. MCE does not use DirectShow for playback, instead it uses Windows Media Foundation. In order to use DirectShow filters in MCE, either the media type is not natively supported by WMF but is supported by DS, or the WMF media type is disabled using e.g. Preferred Filter Tweaker for Windows 7. MCE runs as a x64 process on a x64 system, as such, it requires the installation of x64 filters.

As with WMP, MCE also requires the Haali Media Splitter to open MKV files. And to use ffdshow instead of the default WMF decoders, set the HMS [Use custom media type for H.264] option to [Yes].

I tested playback with two different video decoders; the Microsoft DTV-DVD Video Decoder, and ffdshow tryouts.

I have read that it is possible to get subtitles working with MCE, but even with enabling subtitles in ffdshow, I could not get subtitles to show in WMP. I also tried the Media Control plugin that is supposed to enable remote control support for ffdshow subtitles, but I could not get it to work. As with WMP, I am sure it is possible, I just didn’t spend the effort to make it work.

I could not find a way to loop playback in MCE, or in MediaPortal, or in XBMC, so instead I manually played the video three times in a row. The resulting fan speed, CPU and GPU temperature graphs are not very interesting, so I am only including the CPU and GPU utilization graphs.

 

Below are the MCE with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:

MediaCenter.Windows.CPU

MediaCenter.Windows.GPU

 

Below are the MCE with ffdshow DXVA graphs for CPU and GPU utilization:

MediaCenter.ffdshow.CPU

MediaCenter.ffdshow.GPU

 

MediaPortal is a Home Theater PC frontend, similar to Windows Media Center, but open source. Like WMP, MP uses DirectShow for playback, but unlike WMP, or MCE, MP allows for explicit filter configuration, including which filters to use for which media types:

MediaPortal.Codec

I tested playback with two different video decoders; the Microsoft DTV-DVD Video Decoder, and ffdshow tryouts.

 

Below are the MP with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:

MediaPortal.Windows.CPU

MediaPortal.Windows.GPU

 

Below are the MP with ffdshow DXVA graphs for CPU and GPU utilization:

MediaPortal.ffdshow.CPU

MediaPortal.ffdshow.GPU

 

XBMC is a Home Theater PC frontend, similar to Windows Media Center, but like MediaPortal, it is open source. Unlike MediaPortal, that just supports Windows, XBMC also supports Mac, Linux, and XBox. XBMC has its roots in the XBox, but XBox support has just been suspended. In order to support DXVA on Windows, a Windows only DirectShow port of XBMC was created called DSPlayer.

In order to switch between codecs used in XBMC DSPlayer, you have to edit a configuration file. Details of the process can be found here.

I read that DXVA2 support will be natively supported in future XBMC builds. The DSPlayer build of XBMC is much newer than the latest released XBMC. This build of XBMC included native support for DXVA2 without the need to use DSPlayer. The DXVA2 option is in the system menu. I did notice that the first few seconds of playback produced screen artifacts, hopefully this will be corrected when this functionality is released.

I tested playback with three different video decoders; built in DXVA2, DSPlayer MPC codec, and DSPlayer ffdshow tryouts.

 

Below are the XBMC with DXVA2 graphs for CPU and GPU utilization:

XBMC.DVDPlayer.CPU

XBMC.DVDPlayer.GPU

 

Below are the XBMC DSPlayer MPC graphs for CPU and GPU utilization:

XBMC.DSPlayer.MPC.CPU

XBMC.DSPlayer.MPC.GPU

 

Below are the XBMC DSPlayer ffdshow DXVA graphs for CPU and GPU utilization:

XBMC.DSPlayer.ffdshow.CPU

XBMC.DSPlayer.ffdshow.GPU

 

Playback load summary:

Configuration

Fan Speed

CPU Temp

GPU Temp

CPU Load

GPU Load

MPC-HC 2700RPM 62C 84C Low High
WMP, DTV-DVD 2400RPM 59C 78C Very Low Low
WMP, CoreAVC 1800RPM 54C 86C Medium Medium
WMP, ffdshow 2400RPM 59C 78C Low Medium
MCE, DTV-DVD       Very Low Medium
MCE, ffdshow       Low Medium
MP, DTV-DVD       Low Low
MP, ffdshow       Low Medium
XBMC, DXVA2       Very Low Medium
XBMC, MPC       Low Medium
XBMC, ffdshow       Low Medium

 

Conclusion:

If all you need is video playback, you can’t go wrong with Media Player Classic Home Cinema.

All other configurations require Haali Media Splitter and ffdshow.

If you want to use Windows Media Center or Windows Media Player with subtitles, you will need to do some more research.

If you run Windows and want a MCE alternative that is easily configurable, use MediaPortal.

If you need Mac or Linux support use XBMC, or if don’t mind configuration files and bleeding-edge code on Windows, use DSPlayer.

As long as your player of choice supports DXVA, the ID11 has no problem playing 1080p MKV H.264 content.

21 Comments

  1. Hello Peter,I check your blog everyday and i'm excited to see how much tests you did already.I was wondering when you'll have the chance to test the XBMC Live version with Ubuntu Linux.According to the manufacturer it must be very easy to set it up with XBMC Live.Thank!Greetings from The Netherlands,Roland Duursma

    Like

  2. I've been using XBMC Live (Linux) for 2 weeks now and it is working like a charm. Decoding 1080p x264 mkv causes no noticeable CPU load at all., all decoded from the GPU.From my experience, it has always been an issue playing & decoding HD content on WIndows. You either have to have a very powerful CPU or use a player that can use the GPU to decode the video stream

    Like

  3. romo says:

    Hey Peter,great reviews! I also bought the the zbox id11 in newegg a couple of days ago. My config is 2gb ram and 80 gb intel x25m. i use this box to play bluray disk images stored in a network server. Playback seems smooth, I am using arcsoft TotalMedia Theater for Bluray playback, and wmp with shark 007 codecs for win 7 x32 and x64 hd video playback. Temps are around 65 for CPU and 70 for GPU, with fan at aroumd 4500 rpm (measured by hardware monitor) I am concerned on the temp. I am thinking about swapping the fan, but im not sure if it's feasible. I am probably going to try out the bios temp settings that you are using to see how it goes.

    Like

  4. Perrin says:

    Peter,will you be testing with XBMC? It is what I am running and really like it.Going with only 2gb of ram not 4.Debating the value of keeping my hdd out of the case. Have you done any measurements with that?

    Like

  5. I did test XBMC on Windows, I will not be testing on Linux.

    Like

  6. Perrin says:

    You won't even be trying the live cd version? The overhead saved (Linux vs Windows) is pretty massive. The performance has been top notch for me.

    Like

  7. Sebastian says:

    Hello Peter,I found your blog and after reading it i just bought ZBOX :).This is really great device but unfortunately, after flashing new bios my zbox doesn't boot up. Do you know if there is any bios recovery procedure? I wrote an email to zotac support but i didn't get any response (yet?).Thanks and greetings from Poland.Sebastian

    Like

  8. "Perrin", no, sorry, I "won't even be trying the live cd version". The AnandTech post describes what changes are required to get XBMC working with the ID11."Sebastian", I don't have any advice, maybe you can post a question in the Zotac support forum.

    Like

  9. Peter,Have you tried testing CPU Fan speeds and temparatures while placing the ZBOX up-side-down? The motherboard in the HD-ID11 is inserted up-side-down in the case, so i was asuming since the natural way for heat is to flow upwards, the heat from the CPU cooler is flowing to the processor instead of to the CPU fan. Which heatens the CPU and thus speeding up the CPU fan.

    Like

  10. zaga says:

    Hi Pieter,Have you tried to use same Webcam on our zbox?Thanks Paolo

    Like

  11. Nice article, and I've enjoyed your analysis of this HTPC's performance. I believe at this point in time low-end laptops with HDMI outputs are the more robust and powerful solution. The form factor is nearly as convenient, especially with the lid closed. Plus, you can always use it for something/anything else.That said, I also find the HTPC format factor appealing. There is something I like about a nice little black/white/purple box. However, it needs to have more capabilities and a lower price before it would ever be adopted by 'value' buyers like myself.

    Like

  12. tone21705 says:

    Hi Peter,Thank you very much for your guides to the HD-ID11. I received mine yesterday and spent quite a few hours trying to get things to work. Currently I have 2gb ram/250gb 7200rpm HDD.I am using windows 7 pro. I installed CoreAVC/Haali Media Splitter/and ffdshow. It plays video of 1080p mkv fine but there is still no audio. I tried MPC but the same. I noticed you used win7 ultimate. Do you think that makes a difference?Your posts are great!Thanks

    Like

  13. I had no problems with HDMI or SPDIF audio. Are you running the latest nVidia drivers? Can Windows play audio, use the test buttons in the audio playback config?

    Like

  14. Perrin says:

    I also had issues with the optical out under windows 7. Running the latest drivers.It isn't even an option.

    Like

  15. tone21705 says:

    Thanks for the quick reply. I have not had a chance to test HDMI yet (just ordered the cable). I am using DVI-VGA and the headphones out jack on the front to some external speakers. Yes Windows sound works fine, I have tried mp3 and youtube and starting up/shutting down. i tried the newest nvidia drives ??GeForce/ION Release 256 WHQL 258.96 July 19, 2010. Are these right? What about Pro vs Ultimate. Also I am using 32bit should I use 64bit? I have access to a copy of that.

    Like

  16. You need the nVidia drivers for HDMI audio, and the Realtek drivers for SPDIF audio. After installing the drivers Windows could play audio over HDMI or SPDIF out, and so could ffdshow.

    Like

  17. tone21705 says:

    OK Great, thanks for the advice. Will that fix my problem though? I am using the headphone jack? I wasn't even going to use SPDIF. Also, windows sound works fine, seems to be only with movies (haven't tried anything but mkv), thats why I think its a codec issue?Thanks again for your help. Really great.

    Like

  18. If you are using the headphone out then you have to make sure that you set the ffdshow audio mixer option to downmix to 2 channel. But I really can't say if it will fix the problem 😉

    Like

  19. Willem says:

    Hi Pieter,I just ordered one and have not been able to install anything using USB stick or otherwise. I tried Win7, WinXP various Ubuntu distro's but nothing. They all hang after a minute or so.What BIOS settings are you using? Specifically the ACPI and SATA and chipset settings?I might have a (almost) DOA but I am not sure.

    Like

  20. Willem says:

    Hmmm… I am starting to believe it is related to the memory I have used. I slipped in a Kingston 2GB PC2-6400 SODIMM. That should work, right?What are you guys using (in 2GB)?

    Like

  21. tone21705 says:

    Hi William,I am at work and cant check the bios settings. But I remember I had to switch the boot order (have usb boot first).I didnt change anything else.My ram is this one:http://www.newegg.com/Product/Product.aspx?Item=N82E16820233079&nm_mc=TEMC-RMA-Approvel&cm_mmc=TEMC-RMA-Approvel-_-Content-_-text-_-

    Like

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.