Media Player Classic – HomeCinema (MPC-HC) is an open-source derivative of Gabest’s Media Player Classic which development has stalled. It incorporates all the features that the latter has, such as as DVD player, ability to choose from multiple renderers (overlay, VMR, Haali) and subtitles plus new features such as DXVA support for VC-1 and h.264 videos and ability to use the new EVR renderer. In conjunction with my previous two articles; ffdshow post-processing and high-resolution soft-subs for anime materials and watching h.264 videos using DirectX Video Acceleration (DXVA), this article will show you how to use MPC-HC effectively to watch anime fansubs and DVDs, utilizing all the relevant features in MPC-HC such as the pixel shaders and ability to load other DirectShow source/transform filters within it.
- 24 September 2008: add information about YV12 Chroma Upsampling pixel shader operator, and modified the Chroma Upsampling Bug section to reflect the usage of the new pixel shader.
WARNING! THIS PAGE CONTAINS MANY LOSSLESS PNG IMAGES THAT MAY TAKE SOME TIME TO DOWNLOAD. PLEASE WAIT UNTIL ALL OF THEM ARE LOADED, WHICH MAY TAKE SOME TIME WITH SLOWER CONNECTIONS.
A detailed explanation of the options in MPC-HC
For starters, let’s take a look at MPC-HC and all it settings first. You can take a look on how I set up my MPC-HC when watching all the anime reviewed in this blog too. Now if the program is loaded, it will look roughly like below:-
In my setup, I have changed the default image with my own background image, and I will show you how I does that later. For now, go to View –> Options (or just press the O button) to bring up the Option menu.
Here you can set-up various setting about the player itself. I think each of them are pretty much self-explanatory:-
Open options – Use the same player for each media file: If selected, MPC-HC will use the current opened MPC-HC to open all video files. I use this option.
Open options – Open a new player for each media file played: If selected, MPC-HC will spawn a new window everytime a new file is opened.
Open options – Launch files in fullscreen: If ticked, MPC-HC will go straight to fullscreen mode when opening the file.
Title bar – Display full path: If selected, MPC-HC will show the full path to the file that is being played in the title bar. Example is below, look at the title bar.
Title bar – File name only: If selected, MPC-HC will show only the name of loaded file in the title bar. Example is below, look at the title bar. I use this option.
Title bar – Replace file name with title: If selected and if the video has a title in its metadata, MPC-HC will the title data from the metadata embedded in the file instead of using the file name in the title bar. Useless without title specified in the metadata just like the Lucky Star examples above. Look at the example below. I use this option.
Other – Always on top: If ticked, MPC-HC window will always cover other applications’ windows.
Other – Tray icon: If ticked, you will be able to see and utilize a tray icon on the system tray where the system clock is located to control MPC-HC.
Other – Show controls in fullscreen for XX seconds: If ticked, will show the MPC-HC controls in fullscreen mode for predefined second. If set to 0 (like what I do), it will not be shown.
Other – Exit fullscreen mode at of playback: If ticked, once a file finished playing during fullscreen, it will revert to windowed mode.
Other – Remember last window position: If ticked, MPC-HC will remember the position of its window the last time it exited when it is started the next time.
Other – Remember last window size: If ticked, MPC-HC will remember the size of its window the last time it exited when it is started the next time.
Other – Snap to desktop edges: If ticked, MPC-HC window(s) will automatically snap to the edges of the monitor if you move the window close enough to them.
Other – Store settings in .ini file: If ticked, MPC-HC will store all its settings in a .ini file instead of using the Windows registry.
Other – Keep history of recently opened files: If ticked, MPC-HC will keep the history of all files that has been recently played in MPC-HC.
Other – Hide CD-ROM menu: If ticked, you won’t be able to automatically open audio CDs.
Other – Process priority above normal: If ticked, ensured that MPC-HC will have more priorities in getting CPU time from Windows scheduler. I used this option.
Here you will be able to set up the type of files that will be opened by MPC-HC when they are double-clicked within Windows Explorer. You may need admin credentials if you are using Vista. Set it up to your preferences. For me, I set only Video files to open with MPC-HC because I use other programs for audio and picture files.
Here you can customize the keyboard shortcuts that can be used in MPC-HC to do common operations such as opening files or taking screenshots etc. I use the default setting, but feel free to customize it yourself to your taste.
Here is where you can change the background just like what I mentioned above. Select Internal if you want to choose a selection of ready-made Media Player Classic logos, or select External to choose your own.
Below are some pictures that you may want to use:-
Current picture that I use above.
This is supposed to allow you to access MPC-HC via network, either LAN or the tubes Internet. I do not use it and I suspect you do not too. If you do, please ask at the MPC-HC doom9 thread where the developers hangs around if you want to know how it works.
Here you should be able to configure various things related to video/audio playback itself.
Audio – Volume: Sets the volume, naturally.
Audio – Balance: Set the audio balance between left and right channels.
Playback – Play XX time(s): If selected, MPC-HC will play the file XX times.
Playback – Repeat forever: If selected, MPC-HC will play the file in a loop, restarting the same file or playlist again and again. I used this one.
Playback – Rewind when done playing: Applicable only if Play XX time(s) is selected, the progress bar will return to the starting position when playback is finished.
Output – Auto-zoom: 50%/100%/200%/AutoFit: When ticked, if the value is 50%/100%/200%, MPC-HC will resize the program window appropriately based to the video dimension (50% means half of the video dimensions and so on). If the value is AutoFit, the video will resize the MPC-HC window if it too small, but if the video window is larger than the video dimension, that video will be resized instead to fit the larger program window. This setting is useless with audio files.
Output – Change fullscreen resolution: <various desktop sizes that your monitor can support>: If ticked, MPC-HC will change the desktop resolution to the selected value when playing videos in full screen.
Open settings – Use worker thread to construct the filter graph: If ticked, MPC-HC will use an extra thread to construct the DirectShow filter graphs that will be used for playing the files in MPC-HC. Should be used in multi-core system.
Open settings – Auto-load audio files: If ticked, MPC-HC will load the matching audio file alongside the video file. Apply only if you have separate video and audio files (they must have matching names, e.g. lucky_star_hentai.avi and lucky_star_hentai.mp3). Probably apply to videos that have multiple audio streams too, but I can’t really check.
Open settings – Report pins which fails to render: If ticked, MPC-HC will report to you which video or audio graphs has failed to be used to render video/audio. It is prudent to just let it checked so that so you will not bewildered by video not showing when it supposed to do.
Open settings – Auto-load subtitles: If ticked, MPC-HC will use the internal subtitle engine I have mentioned previously at this post. The requirements for this feature is that you have a DirectX card with Shader Model 2 capabilities (read: almost all discrete video cards from ATI and nVidia for the past 4-5 years) and also needing to use any of these renderers – VMR7 renderless, VMR9 renderless, Haali Video Renderer and EVR custom presenter. DirectVobSub will not be loaded by MPC-HC if this function is enabled.
Here you can just fiddle with the settings related to DVD playback.
Location of the DVD drive or the “VIDEO_TS” folder – Default: If this is selected, it assumes that the VIDEO_TS folder is in the computer’s root DVD drives. I use this because I do not copy DVDs to hard drives.
Location of the DVD drive or the “VIDEO_TS” folder – User defined path: <user input>:If this is selected, it will look for VIDEO_TS folder in the location specified by the user.
Preferred language for DVD Navigator and the external OGM splitter – Menu/Audio/Subtitles: Each setting will allow you to set the default language for menu, audio and subtitles used when playing DVDs or OGM files with the guliverkli2 OGM splitter (anyone still use anything but Haali Media Splitter for OGM files?). If you are watching R1 anime DVDs, you may want to set Menu and Subtitles to English while keeping Audio to Japanese.
Audio channels – Automatically set speaker count for the ivideo ac3 decoder: If ticked, MPC-HC will do exactly what the option says. A legacy option, but just leave in on.
Here you can set how MPC-HC will output audio and video; what video renderers to use for video and what audio device MPC-HC should use.
DirectShow Video – System Default: If selected, MPC-HC will use the default renderer for the operating system. Basically the same as selecting VMR7 (windowed) in Windows Vista and XP. Select this if you want to use renderers not listed here, such as Nero Video Renderer (need to specify them in Options/External Filters section – will be discussed further below).
DirectShow Video – Old Renderer: As mentioned by the tooltip, this is the default renderer used in Win9x/Win2K. Seems to be unusable in XP/Vista 64-bit. See Overlay Mixer.
DirectShow Video – Overlay Mixer: If selected, MPC-HC will use the hardware overlay engine that exists in all video cards manufactured in the last 10 years or so to render the video. This renderer is the fastest in Windows ecosystem, but the upscaling engine is not that good compared to VMR7/VMR9, thus the changing desktop resolution trick will be needed. Can be used to accelerate MPEG2 and H.264 videos in DXVA1 mode in XP and Vista. Aero in Vista will be disabled when this renderer is used.
DirectShow Video – VMR7 (windowed) & DirectShow Video – VMR7 (renderless): If selected, MPC-HC will use hardware-accelerated DirectDraw (common in very many cards too but not as many as hardware overlay mixer which even integrated GPU has). This renderer will try to use hardware overlay in XP, but not Vista. Compatible with Vista Aero, and can also be used to accelerate MPEG2 and H.264 videos in DXVA1 in XP and Vista. Another feature that this renderer has is that it supports frame queuing, which used another thread to queue video frames during CPU lower loads to prevent frame drops. VMR7 renderless is needed if the internal subtitle engine is used. This renderer is slower than overlay mixer.
DirectShow Video – VMR9 (windowed) & DirectShow Video – VMR9 (renderless): If selected, MPC-HC will use VMR9, which basically an improved version of VMR7. It has many of the VMR7 features, such as frame queuing and DXVA1 support, and improved upon them with new features like VMR mixer mode that allows you to use hardware post-processing for standard definition videos. This renderer also have another feature, YUV mixing mode but unfortunately it cannot be used in MPC-HC in Windows Vista (you can in other players). This renderer supports MPEG2 (XP and Vista) and H.264 (XP only) hardware acceleration in DXVA1 mode. Another great feature that this renderer has is the high-quality bicubic upscaler that does its work using the pixel shaders in the video card, although the pre-determined luma sharpen that was applied into the upscaling process and cannot be turned off will bite you in the ass with certain kind of videos if you have large monitors.
Left: Upscaling with bilinear PS2. Right: Upscaling with bicubic PS2 1.0.
Ever wonder why your old xVid videos look worse in your brand new Samsung 24″ widescreen LCD compared to how they look in the old-but-now-scrap QDK 17″ CRT monitor? Over-upscaling combined with too much luma sharpening usually contributes to this problem. Anyway, this will be discussed more below. VMR9 renderer also suffered from chroma upsampling bug (that makes strong red looks jagged) and incorrect black level problem with certain colorspaces (blame ATI and nVidia for this). An as usual, renderless mode is needed for the internal subtitle engine (and adjustable bilinear/bicubic upscaler etc.). This renderer is slower than VMR7.
DirectShow Video – Haali’s Video Renderer: If selected (doable if Haali Media Splitter is installed), MPC-HC will be able to use one of the most flexible renderers available in Windows for nVidia users (damn you ATI). The only drawback is that it seems that this renderer will only accept RGB32 input (puhleeze, no RGB24?) which will increase CPU utilization. While it does not have frame queuing or support for any DXVA hardware acceleration modes, it makes up for those deficiencies with a bicubic scaler with adjustable luma sharpener, ability to control luma range (which means no incorrect black levels and can avoid black crush too) and the fact that it only accepts RGB32 input means that there is no chroma upsampling problem. If you have an ATI HD card (not older cards like x700), you will not be able to use this renderer in fullscreen, unless you can stomach the ghost lines peppering around the screen. The performance of this renderer is comparable to VMR9, and slower than VMR7. Vista’s Aero is supported, and so are the MPC-HC internal subtitle engine.
DirectShow Video – Null (anything/compressed): If selected, MPC-HC will just discard all videos. Useful for listening to the audio part of the file without being distracted by the video.
DirectShow Video – EVR (Vista/.NET3) & DirectShow Video – EVR custom presenter: If selected, MPC-HC will use the newest renderer that comes out from Redmond and available in Windows Vista (and XP if .NET Framework 2 or newer is installed). It is different than VMR7/VMR9 in that it do not have features like VMR/YUV mixer mode and are dependent completely on Direct3D. It supports MPEG2 (Windows XP and Vista) and H.264 (Vista only) hardware acceleration in DXVA2 mode. Like the VMR9 renderer, it also has a bicubic scaler, but with the luma sharpeners being mandatory the same problem that the VMR9 has is also repeated here. The chroma upsampling bug and the incorrect black level (for the custom presenter version) also exists here, and the remedy is also the same. This renderer allows you to use hardware post-processing without having to set the interlaced flag. The performance is good, better than VMR7/9 and Haali’s Video Renderer but still slower than overlay mixer. And IMO, while the vanilla EVR is really that fast, the same cannot be said for MPC-HC implementation of the EVR custom presenter which for me has the performance equivalent of the VMR9. Enabling Lock back-buffer and setting the buffer as low as possible helps alleviate the performance problem.
RealMedia/QuickTime Video – System Default: If selected, MPC-HC will use Real/QuickTime own renderers.
RealMedia/QuickTime Video – DirectX 7: If selected, MPC-HC will use VMR7 (renderless).
RealMedia/QuickTime Video – DirectX 8: If selected, MPC-HC will use VMR9 (renderless). I chooses this for both, but then again I don’t play Real/QuickTime videos that much.
VMR7/9 (renderless) & EVR custom presenter settings - Surface (regular offscreen plain surface, 2D surfaces, 3D surfaces): On a typical recent modern GPU, there seems to be no difference between the three of them. EVR can only use 3D surfaces. Enabling 3D surfaces allowed you to use MPC-HC built-in pixel shaders, which will be discussed later.
VMR7/9 (renderless) & EVR custom presenter settings - Resizer (Nearest neighbour, bilinear, bilinear PS2, Bicubic A=-0.6/0.75/1.0 PS2 ): Determine the scaler that will be used when the video is played in full-screen mode. Nearest Neighbour is ugly, bilinear and bilinear PS2 is better (seems that there are no difference between them in quality, bilinear PS2 resizing is done with pixel shaders) and bicubic is superior (although that luma sharpeners really posed a problem). This works only when ’3D surfaces’ is selected in the Surface option above. If ‘regular offscreen plain surface’ and ’2D surfaces’ are selected, simple bilinear will automatically be used.
VMR7/9 (renderless) & EVR custom presenter settings - Direct3D fullscreen (remove tearing): If ticked, MPC-HC used Direct3D like in video games to render videos. You will not be able to use main and context menus when this is enabled. Vista Aero will also be turned off.
VMR7/9 (renderless) & EVR custom presenter settings - VMR Mixer Mode + YUV Mixer Mode (Windows XP only): When ticked, allowed any or both mixer modes to be used. VMR Mixer Mode is grayed out if EVR is selected.
VMR7/9 (renderless) & EVR custom presenter settings - Lock Back Buffer: This feature will mitigate tearing/flickering problems although the Direct3D fullscreen setting above is better at doing this. In my experience, it did help during DXVA playback as it helps reduce frame drops too.
VMR7/9 (renderless) & EVR custom presenter settings - EVR Buffer (3-20): Number of frames that will be buffered by EVR custom presenter. DXVA seems to work better with lower numbers of frames being buffered.
DirectShow Audio <various options>: MPC-HC will use the specified device here to output audio. If set to ‘System Default’, MPC-HC will use the device with the highest merit, which is ‘Default DirectSound Device’. Null Audio Renderer works just like Null Video Renderer, only this time it applies to audio.
In this section you can select which one of MPC-HC internal filters you want to use, and you should be able to configure some of them too (the bolded ones). Source filters are splitters while transform filters are decoders for various audio/video formats. For source filters, it is best if you download and install Haali Media Splitter and then uncheck Matroska, Ogg and MP4/MOV so that Haali Media Splitter can handle files in that format. For source filters, I choose to disable AAC, AC3, DTS, LPCM, Vorbis, MPEG-1&2 Video and Xvid/MPEG-4 so that they will be handled by third-party programs such as ffdshow audio decoder, Microsoft internal MPEG2 decoder (it supports DXVA1 and 2, unlike MPC-HC MPEG2 which is software-only) and Koepi Xvid decoder. The internal H264/AVC + VC-1 decoders supports DXVA2 too, so you may want to use them if you want hardware acceleration without paying the likes of Cyberlink for PowerDVD. All in all, configure this section according to your needs.
OPTIONS/INTERNAL FILTERS/AUDIO SWITCHER
Here you can enable MPC-HC internal audio switcher, which is useful for files with multiple audio and also DVD.
Enable built-in audio switcher filter (need re-opening, disable morgan switcher): If ticked, MPC-HC will enable the audio switcher. Morgan Stream Switcher (also included in MPC-HC) will also be disabled. Whether you use this feature or not, just enable it.
Normalize: If ticked, MPC-HC will drop or boost the audio level to a standard level, so that you won’t have to contend with low-volume audio one time and then high-volume audio the next.
Regain volume: If ticked, MPC-HC will boost the audio standard level mentioned above to a higher volume.
Boost: If Regain volume is ticked, this setting controls how much boost will be applied.
Down-sample to 44100Hz: If ticked, MPC-HC will downsample all audio that has sampling rate higher than 44.1kHz to 44.1kHz. Use only if your audio output device can support up to 44.1kHz and failed with audio with sample rate higher than that. If you have such a sound card (must be a very old one) and want to watch a lot of DVDs, consider getting a new one.
Audio time shift XX(ms): If ticked, allow you to specify the audio delay relative to the video (good for not-in-sync audio and video). Negative value means audio comes after the video, positive value means audio will come before video.
Enable custom channel mapping: If ticked, allows you to remap audio channels to whatever you please. Useful you have multiple speaker setup (5.1 or 7.1). Also useful if you are watching things like Hong Kong movies in Video CD format that has dual mono audio (left channel is Mandarin, right channel is Cantonese) and you can use this option to duplicate the right channel (if you want to hear Cantonese dialogues) on the left channel while eliminating the Mandarin audio channel.
There are a lot of things you can do in this section, and if you are not careful, a wrong configuration can completely hinders MPC-HC operations. Advanced knowledge of the quirks of major DirectShow filters will work as your advantage. Here are some of the things you can do in this section:-
- Block a filter from being used by MPC-HC so that , even if the merit of that filter is higher than other equivalent filters. The above screenshot show exactly what I mean, where Cyberlink Video/SP Decoder (PDVD8) which is Cyberlink PowerDVD MPEG2 decoder is blocked so that the lower merit Microsoft internal MPEG2 decoder will be loaded when a DVD is played on MPC-HC. If this is not done, everytime a DVD is played, Microsoft decoder (which is a better choice for hardware acceleration in ATI cards) will be bypassed in favour of Cyberlink decoder.
- Promote an external filter over the MPC-HC internal filters. See image below to aid your understanding.
From the screenshot above, you can see that CoreAVC Video Decoder, which is a software-based H.264 decoder, has been set to Prefer. With this, all H.264 videos will be played with this decoder, regardless whether the internal MPC-HC H.264 decoder is ticked at the Options/Internal Filters section or not.
- Insert extra DirectShow filter(s) into the filter graph. See image below to aid your understanding.
From the screenshot above you can see that ffdshow Video Decoder is being set to Prefer, thus this filter will be loaded everytime a DVD or video file is being played so that software-based post-processing can be done (need to set the Raw video option to All Supported in ffdshow video decoder/Codecs) too, this is what I mean when I say earlier that you need to know the quirks of the major DirectShow filters).
- Create your own customized filter graph for multimedia playback. See image below to aid your understanding (same picture as above).
From the screenshot above you can see that there are 7 filters listed. The first 4 are video decoders, the fifth one is an audio decoder/post-processor, the sixth is a video decoder/post-processor and the last one is a subtitler filter. When a video file is loaded in MPC-HC, MPC-HC will run through this list from top to bottom and load the relevant filter(s), create a graph from them and play the file. Before I give you an example based on the list above, let me give you the information on how the filters are set up.
CoreAVC Video Decoder (Prefer) – a H.264 software decoder.
Cyberlink H.264/AVC Decoder (PDVD8) (Blocked) – a H.264 decoder that works in software and hardware. Enabled when testing only.
Cyberlink Video/SP Decoder (PDVD8) (Blocked) – a MPEG2 decoder. Blocked so that MPC-HC will use Microsoft internal MPEG2 decoder that comes in Vista.
Xvid MPEG-4 Video Decoder (Prefer) – a MPEG-4 ASP decoder. Will decode all MPEG-4 ASP (Divx, Xvid) files.
ffdshow Audio Decoder (Prefer) – a multiformat audio decoder and post-processing engine. Will decode all the audio and also apply some post-processing (channel downmixing, equalizer, volume normalizer + booster).
ffdshow Video Decoder (Prefer) – a multiformat video decoder and post-processing engine. The decoding portion of this software is not used, this filter is loaded purely for post-processing functions only.
DirectVobSub (auto-loading version) (Prefer) – a subtitler engine. Even when set to Prefer, its functionality is disabled by virtue of the fact that Auto-load Subtitles option in Options/Playback is turned on.
When creating a custom graph, there are few things that should be taken into consideration. First, put all video and audio decoders at the top if you can. Then only put other filters such as post-processing and subtitler filters after them. If you decided that you want to use ffdshow Video Decoder to also decode videos, you will have to remove all other video decoders from the list or set them to Block. If you want to use DirectVobSub instead of the internal subtitle engine (need to disable Auto-load Subtitle at Options/Playback), never put it above the video decoder you want to use or else the subtitle will not appear or you will get a black screen, depending on the configuration. Always put DirectVobSub at the bottom of the list so that it will be loaded last before the video renderer.
Below is the order of filters in the graph when this Haruhi Suzumiya ED theme with softsub is loaded in MPC-HC with the configuration above:-
For bottom to top: – Haali Media Splitter —> CoreAVC Video Decoder —> ffdshow Video Decoder —> Enhanced Video Renderer. – Haali Media Splitter —> ffdshow Audio Decoder —> DirectSound Audio Renderer.
Below is the orders of filters in the graph when the same video is loaded if the External Filter is empty (which mean Windows will build the graph for MPC-HC):-
From bottom to top: – Haali Media Splitter —> MPC – Video Decoder (the external MPC-HC video decoder) —> ffdshow Video Decoder —> Enhanced Video Renderer. – Haali Media Splitter —> ffdshow Audio Decoder —> DirectSound Audio Renderer.
More often than not, Windows-built graph is good enough for playback, but if you want to use a filter that is lower than the one Windows will automatically use, the External Filter section is a very convenient method to artificially alter the merit of a filter that is relevant for MPC-HC only. For example, in my system, MPC-HC external has higher merit than CoreAVC, thus I use the External Filter section to make sure that CoreAVC will have higher priority in MPC-HC operations when playing H.264 videos. This means that you will not have to mess with the global merit system with software like Radlight Filter Manager that has a bigger risk of hosing your computer.
- Alter the merits of the filters system-wide, just like Radlight Filter Manager. I really do not recommend you to do this though.
If you turned on the internal subtitle engine at Options/Playback (tick Auto-load Subtitles on), this page is where you will configure the subtitle settings. As a reminder, you need a 3D card and use any of these renderers; VMR7/9 (renderless), Haali Video Renderer and EVR custom presenter.
Override placement – horizontal/vertical XX%: If ticked, MPC-HC will override the subtitle position as defined by the value in Option/Subtitles/Default Style – Screen Alignment and reposition it based on the value set by the user relative to the MPC-HC video window. Works only on .srt subtitles and others similar to it (opensubtitles.org has plenty of those subtitles), and useful if you want to make sure that your subtitle appeared in your widescreen videos instead of in the black bars. Look at the examples below:-
Subtitle location when this option is turned off.
Subtitle location when this option is turned on.
Delay interval: How long the subtitle will appear relative to its original time (useful if the subtitle is a little bit off compared to the voice). Press F1 to make the subtitle to appear earlier than scheduled, press F2 to make it appear later than scheduled. Press the buttons repeatedly to stack them up, meaning if you press F1 twice with the Delay interval value, the subtitle will appear 1000ms earlier than defined in the .srt file.
Texture settings (open the video again to see the changes) – Number of subpictures to buffer ahead: XX: If buffering is enabled (XX is any value other than 0), you will lose all karaoke effects that you can see in many anime opening/ending themes. But then again if buffering is disabled, you may see frame drops everytime the subtitle switch to new text. This will happen even if the CPU utilization is low, especially in DXVA mode. Use this at your own risk.
Texture settings (open the video again to see the changes) – Maximum texture resolution: <various values>: MPC-HC will render the subtitle at the resolution specified here. Remember that MPC-HC internal subtitle output in 3D, thus the higher the resolution is, the higher its quality become. This works just like a Direct3D game, the higher the resolution you are playing in, the better the game will look. Of course, the card you have will determine the performance you will get. If you want to use Desktop resolution on a low-end GPU you may want to disable all anti-aliasing settings on your display card driver.
Texture settings (open the video again to see the changes) – Round up to power of two: If the resolution you choose are not supported by display/video card, MPC-HC will shift the resolution until it finds a supported resolution. Use only if you see texture corruption on the subtitles.
Here you can set the default font that any unstyled subtitle formats, plus also their appearance and location in the video.
Font: Here you can choose the font you want, your favourite character set and other formatting options, which is out of my league. Customize to your heart’s content.
Border style: Select between 2 border styles, then customize the border itself. Customize to your heart’s content.
Screen Alignment & Margins – Left/Right/Top/Bottom: Select between the 9 radio buttons to determine where the subtitle will appear (example above shows the subtitle will appear at bottom middle). The default location where the subtitle will be overriden if Override placement setting in Options/Subtitles is turned on is derived from here. The Left/Top/Right/Bottom are values for margins for the unstyled subtitles display area (area between the border and the text).
Screen Alignment & Margins – Position subtitles relative to the video frame: The only setting here that only apply to styled subtitles like the ASS format (and not for unstyled SRT sub and others), if ticked, MPC-HC will render the styled subtitles relative to the video frame instead of video window frame. Example:-
Subtitle position when ‘Position subtitle relative to the video frame’ is turned off.
Subtitle position when ‘Position subtitle relative to the video frame’ is turned on.
It is up to you to pick up which method you like, but if you need positional accuracy, especially if watching anime that used softsubs for translating signboards etc. you may want to turn this on.
Colors and Transparency: A setting that only apply to unstyled subtitles, it will allow you to set the colour of the text, the outline border and also the shadow.
Here you can specify the server that will be used if you invoke the search database feature accessible at File —> Subtitle Database —> Search…
That URL above works as of 21 August 2008. If you know of any other working subtitle database, please share it with everyone in the comment section.
In this section, you can enable/disable some MPC-HC tweaks that will enable/disable additional functionalities.
Don’t use XP-theming on the player controls (need restart): If ticked, MPC-HC will not be skinned with that blue (and hideous) XP theme. Doesn’t work in Vista (you’re gonna get Aeroed no matter what).
Use the WM ASF Reader for Windows Media files (enable faster seeking, but won’t seek with incomplete files at all): Pretty self-explanatory, if ticked, probably will do just what it said. Probably, because I never tested it.
Jump distances (small, medium, large in ms): This setting will specify how long the MPC-HC will jump forward/backward when you scrub the video using the keyboard shortcuts (instead of using the mouse). At default setting, values for ‘small’ and ‘large’ fields are useless unless you assign keyboard shortcuts for small jump/large jump in Options/Player/Keys section.
Free window resizing: If ticked, you will be allowed to do free-form resizing of MPC-HC’s window.
Send “Now Playing” information to MSN Messenger: If ticked, MPC-HC will send the title of the file (either from metadata or the filename itself) playing to MSN Messenger/Windows Live Messenger so that Messenger can make it as your personal message. You need to enable ‘Show what I’m listening to’ option in Messenger.
Send ‘Now Playing’ information to mIRC through GTSdll: Exactly the same thing like the MSN Messenger option above, but for mIRC. You need to install GTSdll for this to work.
Prevent from MINIMIZE when fullscreen in non-default monitor: If ticked, and MPC-HC is playing video fullscreen on a non-default/primary monitor, it will not be minimized if another application tried to steal focus.
You can set more miscellaneous settings here.
Video – Direct3D Fullscreen: moved to “‘Output” – Remember DVD position/Remember File Position/Show OSD: If ticked, the on-screen display (it will show Play/Stop/Paused etc.) will still be visible even if MPC-HC goes full-screen in Direct3D Fullscreen (remove tearing) mode (Options/Playback/Output).
Shuttle PN31 driver Install/Uninstall: If you have this remote control, you can install the driver for it from within MPC-HC and control its function with the remote. I never have one so can’t really comment.
Contrast/Brightness/Hue/Saturation: If you use any of the VMR renderers, you can adjust all these values as you please. The reset button reset everything back to default value.
Tips and tricks to make effective use of MPC-HC.
The above screenshot showed the SS-Eclipse releases for episode 15 of Kyouran Kazoku Nikki (which I will review once the series is finished). There are 2 versions of the said episode, the first is a 720p upscaled version encoded with H.264 encoder (highly likely x264) while the second one is a SD video encoded with Xvid codec. Both basically has roughly the same size, so you can infer that the latter has higher bitrate (assuming that both have same audio quality) that compensates for the lower resolution.
So, which one you should pick? The wisdom says that if you have a powerful CPU, you should get the H.264 version, while Xvid version is for slower computers. We all knows that H.264 need more CPU power to decode than Xvid videos, but then again all recent SS-Eclipse released can be accelerated in DXVA1/2 mode with MPC-HC decoder (quality notwithstanding). This is where many people has got it wrong, because, surprise surprise, the main criteria of choosing which version to download is THE SIZE OF YOUR MONITOR.
Before you post hate messages in the comment section for this heretical theory of mine, please see the screenshots below.
A lossless screenshot from a.f.k. Lucky Star episode 6 (502kB) – decoded by Xvid video decoder and passed to EVR custom presenter in RGB32HQ.
Screenshot of the same frame, upscaled with bicubic resizer to the closest native resolution of a 19” SXGA monitor – 1280 x720 (1.60MB).
Screenshot of the same frame, upscaled with bicubic resizer to the closest native resolution of a 19” WSXGA monitor – 1440 x 810 (2.0MB).
Screenshot of the same frame, upscaled with bicubic resizer to the closest native resolution of a 22” WSXGA+ monitor – 1680 x 945 (2.60MB).
From the original unresized picture, inperfections (less sharper and jagged lines become clearer) started to appear as the frame was resized to bigger and bigger dimensions. The exhibits above is pretty forgiving though, because most renderers in MPC-HC also applies luma sharpening that will almost always introduce more artifacts and noise into the picture. Plus, if you are using LCD monitors, this problem will become more apparent.
Now look at this set of screenshots below.
A lossless screenshot from The Girl Who Leap Through Time Blu-ray rip at 720p (1.74MB – no upscale done) decoded by CoreAVC Video Decoder and passed to EVR custom presenter in RGB32HQ.
Screenshot of the same frame, upscaled with bicubic resizer to the closest native resolution of a 22” WSXGA+ monitor – 1680 x 945 (3.16MB)
The upscaled picture become a little bit less sharper, and I think I see some mild ringing artifacts, but that’s about it. Then again in real-world, luma sharpeners in the renderers may introduce noise and artifacts.
Despite the caveats, I will still strongly suggest choosing a release where the video renderer do not have to do too much upscaling/downscaling. For example, if you are using your monitor at 1280 x 1024 (SXGA: common for 17 – 20 inch CRT monitors) or 1440 x 900 (WSXGA: common for widescreen LCD monitors below 22”) and above (you should always use your monitor at the rated default resolution), you should get the H.264 version of Kyouran Kazoku Nikki, regardless of the CPU you have. Resizing will be done in GPU hardware anyway (any ATI/nVidia card that supports DirectX 9 should be able to do so) so CPU will not be taxed that much. Only get the Xvid version if you have a small CRT monitor (15”) or a CPU that is too slow for H.264 decoding (then again, SS-Eclipse releases did not have high bitrates, thus any Pentium 4 or a dual-core will do a decent job). See these two (normal CRT, widescreen LCD) Wikipedia links and the image below for a rough idea of what your monitor native resolution is.
MPC-HC PIXEL SHADERS
Pixel shader operations in MPC-HC is another feature of MPC-HC that can be used for post-processing or just plain special effect. A video card capable of Shader Model 2 (all DirectX 9 cards did) is needed, and usable for VMR7/9 renderless and also EVR custom presenter with 3D surfaces enabled. As of build 727, the pixel shader operations you can use are:-
From all 17 shader operations here, emboss,spotlight, invert, contour, nightvision, wave, grayscale, and sphere operations are special effect that you only use for special effect only, and not for general use in video playback. Others are more useful for video post-processing, and they will be explained below.
First, the three pixel shaders sharpeners will be discussed first (sharpen complex, sharpen and edge sharpen). All three of them tried to achieve the same thing with different algorithms.
Decide for yourself which one is the best. In my opinion, sharpen complex comes first, then followed by edge sharpen and sharpen respectively. Your mileage may vary.
Now we go to the pixel shader operator 16-235 –> 0-255. First thing first, if you have an ATI 2xxx/3xxx/4xxx HD card, go to this website, download the vbs script there to apply the “UseBT601CSC”=”1″ registry key and you don’t have to use this pixel shader operator. If you have nVidia cards, download the driver version 177.79 or later and you can set the driver to always use PC level (0-255) when outputting videos. If you have done these to your cards, DO NOT ENABLE THIS OPERATOR. Anyway, the below picture is a ‘before-after’ comparison picture.
You do not want double expansion to happen. Honest.
The next pixel shader operator in the list is the deinterlace (blend) a.k.a. one of the most useless deinterlacer out there. Hardware deinterlacer in video cards (pixel-adaptive/motion adaptive in ATI cards or even software-based deinterlacers in ffdshow and DScaler) works much better. This pixel shader operator will try to deinterlace all videos even progressive ones (which is basically all downloadable fansub releases out there) causing them to look blurry. It doesn’t really work on some of my interlaced DVD either, it fails to deinterlace them properly.
Procamp is a pixel shader operator that will allow you to change brightness, contrast, hue and saturation of the video. Useless because you need to edit the shader script itself just to change those values. Might as well change the renderer to VMR and then use the sliders at Options/Miscellaneous to do exactly the same thing.
Letterbox is the next pixels shader operator that will be discussed. As the name suggested, this operator works by cropping 4:3 videos so that it will fit better in widescreen monitor. If a fansub release is 4:3 and has hard-subtitles, the result will be disastrous. See below.
Next, come the denoise pixel shader operator. This denoiser takes a lot of resources and only good enough if your video card has more than 100 SPU. Unfortunately, just like the deinterlacer (blend) above, this pixel shader operator tried to denoise all frames instead of the smarter denoiser in ATI Catalyst Control Center that will only do so when needed. Using this shader when not needed will cause even more blurriness than deinterlace (blend). Using a nuclear bomb to kill a mouse, the result will be apparent below.
The next pixel shader operator that matters is BT601 —> BT701 (supposed to be BT709) colour conversion. The former colour set is used in SD videos like DVD while the latter is used in HD videos like DVB-T broadcasts or even HD-DVD/Blu-ray movies. Which one is better, well it all comes down to your preferences. I hope those release groups who rips from Blu-ray/HD-DVD will have already used ColorMatrix in their Avisynth script so that they will automatically use BT709. Personally, I stick with BT601 for downloaded fansubs that used TV rips so that the colour is more accurate.
In the newer builds of MPC-HC, another pixel shader operator named YV12 Chroma Upsampling has been added, and this addresses the Chroma Upsampling Bug described below. This means that you do not have to use ffdshow anymore to address this bug. Read the relevant section below to find out more about this pixel shader and how and when to use it.
CHROMA UPSAMPLING BUG IN MPC-HC AND HOW TO MITIGATE THE PROBLEM.
If you are using some of the MPC-HC renderers such as EVR custom presenter and also VMR9 renderless, you may found that red objects may look blocky, especially around the edges. This can be solved with two methods. First is to use the YV12 Chroma Upsampling pixel shader operator to fix the problem as mentioned above, or to use ffdshow like below.
Comparison images (no need to change even with the introduction of YV12 Chroma Upsampling pixel shader operator, the results are the same):-
More information is about to come. Stay tuned for updates.