Media Center Tips

The network path was not found.

Jon : September 23, 2013 11:25 am : HTPC Tips and Tweaks, Network Tips and Tweaks

You probably have some kind of home server.  You probably have experienced that dreaded message that is the title at some point or another.  If you attempted any kind of troubleshooting on it at all, you also probably know how frustrating it is to find out why you’re actually getting this error.  Well, for some of you, I may have a fix for you.

Over the years, I have received the overly-frustrating “The network path was not found.” network error message on and off.  The error code of “0×80070035″ is extremely helpful, just like the sarcasm that statement is drenched in.  What I have narrowed it down to is to a combination of a few things:

  1. My home router.
  2. My home router’s software (DD-WRT, for example).
  3. Static vs. dynamic IP addressing.

The bane of my existence

The bane of my existence

Looking at that may leave you to think that it’s still too vague, but it’s really not.  If you think really hard about which systems you get the errors and the systems y0u are trying to reach when it occurs, you’ll see that it may start to narrow down to some specific criteria.  Here’s how I narrowed it down a bit:

  • The network always had this issue when using certain versions of DD-WRT.  Do some research and you might find the version you are using has some issues with resolving hosts with static IPs.
  • The systems I was trying to access had static IP addresses.
  • The systems I was receiving the error on had static IP addresses with the router’s IP being used as the sole DNS server.
  • The issue was more prevalent on more recent Windows operating systems (Vista and above/2008 Server and above).
  • It only occurred when accessing via network shares by name.  Accessing by IP address was never a problem.

If this sounds a lot like your predicament, then what you’re about to read might just fix your issue.

What I have found that is happening is that my newer Win7/8 and 2008/2012 Server systems that are configured with static IPs and have my DD-WRT enabled [amazon_link id="B003B20F54" target="_blank" ]Linksys E2000 router[/amazon_link] as the sole DNS provider are failing NETBIOS name lookups for all other static-addressed systems on the network (at least on occasion).  Even though I do have a WINS server on my network and have Enable NETBIOS over TCP/IP enabled, DNS is still the primary local hostname lookup mechanism and it’s not falling over to the WINS provider when it’s not found (or it doesn’t know that the system being accessed is local and it’s just trying to get to it over the Internet…I haven’t checked router logs).  Anyway, I get this error a lot when I go to access my unRAID server by \\SERVERNAME\SHARE_NAME.  However, if I substitute SERVERNAME with the IP address of that server, I can access it fine.  What I have found is that my E2000 with DD-WRT is not caching any host names for the systems that are not pulling IP addresses via DHCP (at least, not for very long).  So, whenever I go to access my unRAID server and the hostname is not available, it’s returning the error.  IP resolution is easy, so it always works.  How to fix this?  It’s pretty simple…instead of editing the hosts file on every system that needs to access that server or two you encounter this with, let’s just edit the hosts file that already exists on your DD-WRT-enabled router!

First, access your router.  If you put DD-WRT on it, you should know how to do this.  Some DD-WRT versions are a little different than others, so you might have to do a little fiddling to find the right place for your version.  After logging in, go to the Administration > Commands tab.

Custom commands tab

Custom commands tab

From here, we’re basically going to create a custom script that will execute at every startup.  This script will append some entries to a hosts file that already exists on the router and add the missing hostnames that lead to the network path error.  Your script will follow a template similar to this:

echo ’192.168.1.100 servername1′ >> /etc/hosts

echo ’192.168.1.101 servername2′ >> /etc/hosts

restart_dns

Of course, you’re going to want to modify the IP address and servername# to appropriate entries relevant to your own network.  The restart_dns command restarts the DNS service on your router to accept the new hosts entries.  You can add as many host as you need.  I have 9 in mine.  Once you have all of your entries in, click the Save Custom Script button and it will populate into the Custom Script area.

Custom script

Custom script

Now that the script is created, hit the Run Commands button to execute it, which will add the entries and restart DNS.  You should now have no more issues accessing any of your problematic hostnames from any system!  Hopefully, this solved your problem.  Since doing this on mine, I’ve not had anymore issues.

Leave a response »

Solving your HDMI handshake issues once and for all.

Jon : September 20, 2013 9:15 am : Hardware Tips and Tweaks, HTPC Tips and Tweaks

I’m no stranger to most every HTPC user’s primary nemesis – the dreaded HDMI handshake.  You may not even know what that is, well, if you don’t experience it – you’re extremely lucky.  On the other hand, you probably do and just don’t know it.  The HDMI handshake issue for Windows-based HTPCs results, usually, in no video, no audio, or a combination of both when starting up your HTPC.  This could be a resume from standby (sleep) or power on from an off state.  What’s happening is that the HTPC powers on and fails to establish an HDMI connection with a device on the other end…this connection is an established handshake that allows the graphics card to obtain the Extended Display Information Data from the A/V receiver or TV.  If it doesn’t get this information, then you’ll probably get the dreaded “No Signal” bouncing around on your screen; or, you may get video, only to find there is no audio.  I’m repeating myself.  Let’s fix this crap.

This guide almost didn’t happen.  You see, my bedroom setup has always functioned perfectly.  My living room has had issues from time to time, but I’ve always been able to solve them by setting some delays on my Logitech Harmony remote, or changing the order they power on.  All that changed when I upgraded the TV in the living room to the new [amazon_link id="B00BP5N49S" target="_blank" ]TCL 58-inch LED[/amazon_link].  While this TV has been terrific so far, it introduced an EDID issue like I hadn’t encountered before.  I’ve tried just about everything to no ultimate avail.  It actually doesn’t happen all the time, but it does enough to cause a huge annoyance.  I’ve tried an EDID override, different drivers, and spent too much time changing delays on the Harmony I use to control it.  One way or another, I eventually still encounter a loss of video or audio.

What You Need

We’re going to fix this issue with a sledgehammer and we’re going to name the sledgehammer DEVCON.  DEVCON is a Microsoft command line utility that performs functions you would see in the Device Manager GUI.  It comes in both ia64 and i386 (which is what you’re probably going to need) flavors and you can download it here.  You’re going to want to execute the EXE you download in order to extract the one you need for you platform.  Once you determine the one you need, I suggest putting it in the %SYSTEMROOT% directory to make writing our batch script a little simpler.  It’s not necessary though (however, it will be used in this guide).  Anyway, extract the devcon.exe to your desktop or somewhere easily accessible.  It’s going to create an ias64 and i386 folder.  These are computing platforms and do not reflect 32 or 64-bit…well, they sort of do, but not in the manner that you think.  If you’re on a standard PC, you’re going to want the devcon.exe that’s in the i386 folder.  Copy and paste that into your %SYSTEMROOT% directory (administrative rights required).  Good job!  Part one complete!

Using DEVCON

As I said, DEVCON is a command line utility, so open up a command line prompt with administrative rights.  The first thing we need to do with DEVCON is determine the ID of our graphics adapter.  At the command prompt, type in:

devcon listclass display

I’m doing this guide on my work computer, so I’m going to get some odd results, but that may be a good thing.  I have a remote access utility installed which has its own video driver, so mine actually returns two results.

DEVCON ListClass results

DEVCON ListClass results

My physical graphics card is the second result.  We want to pay attention to the first few characters or so of that entry, in particular VEN_1002.  That’s what we’re going to use for our batch script.  Yours will probably be different, but in the same place.  Record it for use later and let’s move on to the next part of our guide!

Create the Batch Script

Yep, we’re moving right along here.  If you’ve never created a batch script before, it’s easy.  First, open Notepad.  Almost done!  Now, let’s get some content for our batch script.  It’s going to look a little something like this (don’t worry, I’m going to explain it all):

@echo off

ping 127.0.0.1 -n 5000 > nul

devcon restart =display *ven_1002*

“WTF?”, AMIRIGHT?  It’s ok, let’s go over this, line by line.  The first line simply keeps the script quiet by not echoing each command as it performs it.  No big deal.  The second line is a “WAIT” command.  The important thing here is the number 5000.  That number equates to 5000ms, or 5 seconds.  You can adjust that to different values to work with your system.  This batch script is going to launch when your system resumes from sleep, so it could be anywhere from 1 second to 10 seconds…or more.  You’ll have to play with it.  The last line performs the actual reset on our graphics card.  The important part is the portion from earlier that I told you to remember – the *ven_1002*.  That basically is a wildcard match to the class ID that devcon pulled earlier.  Got it?  Good!  Choose to save your batch script and give it a name like vidreset.bat or something else totally original.  However, change the Save as type: dropdown to All files (*.*), or it will just save it as a txt file named vidreset.bat.txt.  We don’t want that.  Save it in a safe location from deletion, but remember where it is.

Save your batch

Save your batch

Create the Scheduled Task

To tie all of this together and actually make it work, we have to create a scheduled task.  This task will kick off after a resume from standby and silently execute the batch file we just created.

Open the Task Scheduler interface and look over to the right under Actions.  We want to click on Create Basic Task.

Task Scheduler interface

Task Scheduler interface

Now the Create Basic Task Wizard starts.  Give your task a name and optional description, then click Next.

Name your task

Name your task

Now we’re at the Task Trigger part of the wizard.  We want to select the last radio button: When a specific event is logged.  That’s because we want our scheduled task to kick off when the computer resumes.  Select that option and then click Next.

Trigger on event

Trigger on event

The next screen is where we configure the type of event to fire off on.  For the Log:, select System (end of the list).  For the Source:, select Power-Troubleshooter.  Finally, for Event ID:, enter 1.  Click Next.

Specify the event

Specify the event

Almost done.  Next in line is configuring our Action.  We want to Start a program and that’s set by default, so just click Next.

Start program action

Start program action

The following screen allows us to browse for and select the script we created in the previous section.  Click the Browse button and locate your batch script.  Click Next.

Add the script

Add the script

We’re finished!  Now, before clicking the Finish button, I want to get a couple of caveats out of the way.  If your HTPC typically is in use with a low privilege account, you may need to put a check in the box displayed to edit additional properties.  This will open your scheduled task properties and allow you some fine tuning, most importantly, the ability to Run with the highest privileges.  If you have a separate administrator account on the system, you could even set this task to run using that account instead by using the Change User or Group button.  I’m not going to walk through all of this as you should be able to figure it out.  It’s fairly self-explanatory.

Task properties

Task properties

Conclusion

That’s all there really is to this.  What will happen now is that when you bring your system out of standby, it will execute the script once the configured event is logged.  The script will execute and first perform the configured wait cycle using the ping command.  Once the wait is complete, the script executes the devcon command which resets your graphics card.  This will initiate another HDMI handshake, re-establishing the correct EDID.  At that point, you should have your video and audio working perfectly.

[amazon_image id="B001RIMZUW" link="true" target="_blank" size="small" class="alignleft" caption="Buy Now!"]Gefen HDmi Detective Plus[/amazon_image]Alternatively, if all else has failed, you may just need to bite the bullet and purchase an HDMI Detective Plus.  This basically stores the EDID information needed by your graphics card so that no matter what, it receives it when you power on your devices.

Regardless, please chime in and let me know how this worked for you!  You may even find an older post using the HDMIYo! utility helpful.  There’s even a way to manually reset your HDMI connection using your Harmony remote if you don’t need it done on every resume of your HTPC.  If I see enough responses, I can do another guide to show you how.

8 Comments »

HTPCs, SSDs, and disk space – a few helpful tips

Jon : September 11, 2013 10:50 am : HTPC Tips and Tweaks, OS Tips and Tweaks

If you’re like me, you’ve had your dedicated HTPC a few years now, and while it’s still more than serviceable, it might be lacking in one particular area if you jumped on the SSD bandwagon a few years ago – disk space.  My primary HTPCs are equipped with rather anemic 60 to 64GB SSD drives as, at the time, I did not have to worry about recorded TV (which I recently solved using a free iSCSI solution…read about that here).  Nonetheless, I use my HTPCs for the sole purpose of watching media, so they are still plenty big enough for that.  However, I do occasionally find that I need to free up a little space on them for one reason or another, so I thought I’d share a few tips on getting back the most of your SSD real estate.

Disk Cleanup

No revelation here.  Windows has included this cleanup utility forever and, for the most part, it works pretty well.  Where it really comes into play is if you’ve manually installed a service pack or upgraded from a previous version of Windows and you have all the leftovers from it.  It can add way up. You’ll find the Disk Cleanup utility in All Programs > Accessories > System Tools; or, just type disk cleanup in the Search programs and files field.  Take note and look for the Clean up system files button at the bottom left.  If you have that available, you must click it to reload the utility and make the removal of old Windows installations and/or service pack files available.

Look for the system files button

Look for the system files button

The example I found below is from an upgrade.  15GB can be safely removed.  Need I say more?

15GB.  Holy crap.

15GB. Holy crap.

Of course, removal of temp files, browser cache, recycle bin, etc. for an HTPC are always going to be advisable too, so clicking off most everything is probably a good idea.  Whether or not to compress old files can be up to you, but it may not hurt.  Nothing advanced here, but it’s the simplest way to take back some space!  Let’s look at some other ways.

Relocating Bloat

This may or may not apply to everyone, but if you have an additional partition with extra space, it can really come in handy.  For instance, let’s say you actually have a larger SSD and have a small partition just for the OS that is starting to get crowded, but there is a second partition with plenty of room.  Or, maybe you have a secondary mechanical drive just for additional space.  Either is fine and will work out here well.

Starting with Windows Vista, Microsoft included a nice little command utility called mklink, for creating symlinks.  Without getting into it, symlinks are kind of like shortcuts, but are considered to be a little more like the original file or folder, instead of just a simple road sign to where the target really is.  Basically, it’s just a more advanced shortcut.  Anyway, we’re going to use mklink to move some regularly “fat” folders to a location with more room.

There are probably more folders than the two I’m going to mention, but the these two are often the biggest offenders – the SoftwareDistribution folder, used to store Windows Update files and the hidden Installer folder.  Both of these can be found in C:\Windows, but you will need to unhide hidden files and folders, as well as protected operating system files in your Explorer settings.  If you don’t know how to do that, you may just want to skip this altogether.

Now that you can find those two folders, we’re going to open an elevated command prompt.  Don’t know how to do that either?  Please, move on (my last hint).  At your  command line, type:

net stop wuauserv

That stops the Windows Update service, as it will indicate.  Now, open an Explorer window, go to C:\Windows, and locate the SotwareDistribution folder.  Right-click on it and choose Cut.  Now, let’s go to the new partition, which we’re going to assume is X:, and paste that bad boy right to the root of it.  We now have X:\SoftwareDistribution.  Return to your elevated command prompt and type in:

cd C:\Windows

That places us in the C:\Windows directory.  Next, we’re going to use mklink to create a directory junction pointing to X:\SoftwareDistribution, so that as far as Windows knows, that directory still exists where it should…in C:\Windows.  Type the following command (remember to substitute your true target location a X: is just an example here):

mklink /D SoftwareDistribution X:\SoftwareDistribution

If done correctly, you’ll get a confirmation that a symbolic link was created and you’re good to go.

Symbolic link created

Symbolic link created

At this point, we want to issue one final command (don’t close when done though…we need it for the next section!) at the prompt to start the Windows Update Service we stopped before:

net start wuauserv

The update service should start with no problem and it will operate just as it always did,  Depending on how many updates you’re behind on in installing, you could anywhere from a couple hundred MB to several GB.  Either way it goes, it’s space that will never be used by that service again!  Now on to the Installer directory.

The Windows Installer directory caches packages that Windows needs for, ummm, stuff.  Regardless, you should not be deleting anything in there.  It could be very bad for you.  However, expanding on what we just did with the updates folder, we can move it!  First, we’re going to use another nice command utility – XCopy.  Make sure you’re still at C:\Windows at your command prompt and then, still using the X: target drive, issue the following command:

xcopy Installer X:\Installer /E /C /I /H /R /K /O /X /Y

I know, I know, “WTF?” is what you’re thinking.  Don’t worry.  All those switches are just copying all the files and folders exactly as they appear to Windows – file attributes, security, etc.  If you really want to know what they all mean, just type:

xcopy /?

in you command window and you’ll get an explanation for everything.  Anyway, wait for the copy to complete and you’ll have a new hidden Installer directory on your target partition.  Now, we want to delete the Installer directory that is in C:\Windows, so do that now.  Return to your command prompt and issue this command:

mklink /D Installer X:\Installer

Fat ass

Fat ass

Looks familiar, right?  Good, because I’m too lazy for another screenshot for this.  We now have a successfully moved and targeted Installer directory.  Go to your real Installer directory and do a right-click > Properties on it.  You’ll see why I picked that one to move.  The one on my system here at work is 8.06GB.  While I don’t expect your HTPC’s Installer directory to be that large, it will still gather up some space for you.

Don’t think you’re limited to the directories above though.  Look at any other application directories that might be swelling up and consider moving them also.  Just keep in mind that there may be services or background applications running that may depend on those directories.  Hunting them down to kill of and restart will be necessary to move them successfully.  Right, so let’s look at some other ways to make some room.

It’s Not a Bear – Disable Hibernation

I let my HTPCs sleep, but I don’t need them going into hibernation.  They don’t need to be resumed to the exact state they were in…they just need to launch to Media Center so I can do my thing.  Hibernation basically takes a system state snapshot and saves it to disk, resulting in a very large file which is roughly equal to the amount of RAM you have installed.  So, again, open an elevated command prompt and type in the following command to disable hibernation:

powercfg /hibernate off

Yep, it’s pretty straightforward.  Some of you may not like all this command line stuff, but trust me, there’s just so many windows to click through and UAC crap to deal with in doing it via the GUI that you really, really, REALLY need to learn a few command line options.  As you can see, the hibernation file generated for my work system is about 6GB.  That’s 6GB saved if you already had it enabled.  Once you’ve disabled hibernation, go to your C:\ and see if there is a hiberfil.sys file there (it is a hidden file!).  If so, SHIFT+DEL  it.

Get rid of the fat bear

Get rid of the fat bear

See that page file that’s 8GB in that image above?  Yep, that’s next.

Move the Page File

There’s been a lot of arguments over the past few years over whether a page file is even necessary in systems with large amounts of memory installed.  Personally, I believe it is necessary to have a page file and just let Windows use it as it was designed to.  However, that does not mean we have to leave it where it wants it and since we’re low on space, I want to move it.  The steps involved here will require a reboot, so just keep that in mind.  You don’t have to reboot when it prompts you, but you will have to in order for what we’re about to do to ultimately take affect.

Press your Windows key and the Pause|Break key simultaneously to bring up the System Properties screen.  Locate Advanced system settings on the left and click it.  On the Advanced tab, click the Settings button under the Performance section.  On the Performance Options box, click the Advanced tab.  For reference, you should be at the image below:

You are here

You are here

Hit that Change button.  From here, we’re going to change our page file settings, or virtual memory settings, as it’s called.  First, uncheck the box at the top so we can manually change our page file.

Uncheck for manual settings

Uncheck for manual settings

Next, click on the first entry, which should be your system managed page file on drive C:.  Once that page file is highlighted, select the radio button for No paging file and click the Set button.  You’re going to get a warning about not having one and blahblahblah.  Just click Yes.

BLAHBLAHBLAH

BLAHBLAHBLAH

Now you’ll be presented with no page file configured.  Oh no!  Quickly select the second drive available (X:, in my case), select the System managed size radio button, and click the Set button before Windows has a nervous breakdown.

New page file location

New page file location

Click OK and you’ll get a reboot message, so go ahead and do that if you want.  You can wait until we finish the guide though…it will continue using the old page file until then.  Anyway, that’s it!  Once you come up after the reboot, you will have freed up the amount of space your page file was taking up on your C:.  In my case, it was 8GB.

System Restore:  Restore Your Space

I used to hate system restore.  I’m a geek that knows everything…I don’t need Windows to mop up behind me if something goes wrong.  Right?  Yeh, well, I’m older now and not quite as naive.  System Restore can be pretty useful, especially on an HTPC.  Considering the constant barrage of Windows updates we get and the various codec/filter packs you might fiddle around with, it’s not a bad thing to be able to back out of something you now may regret.  System Restore can offer that to us and it’s quick and relatively painless to use.  However, it can be quite a space hog if not kept in check.

To see System Restore’s configuration properties, do another Windows key + Pause|Break key and then click on System protection to the left.  You’ll get the System Protection tab within the System Properties configuration box.

System Restore settings

System Restore settings

At this particular point, we can set System Restore for all available drives.  As you can see, I don’t have it set for my X:.  That’s just an extra storage drive with no real system files (other than the ones I moved there), so it’s not necessary to be on.  So, I want to make sure my system drive (C:) is selected and then hit the Configure button.  We’ll get the System Protection configuration for our system drive appear.

Configure new protected size

Configure new protected size

There are two things we want to pay close attention to in the above image:

  1. The current usage of protected storage space.
  2. The percentage and total amount of protected storage set aside for System Restore.

If you see a fairly good-sized margin here and your system has been running for quite some time, you might be eligible to trim off a GB or two .  In the example above, I have 5.85GB of available space for System Restore, but I am only occupying 4.08GB.  That’s a difference of 1.77GB.  It doesn’t sound like much, but remember, we’re working with a tiny SSD here and every little bit counts.  Considering I’ve never run System Restore on this system before, I don’t see anything wrong with reducing my available restore storage down to, say, 4.5GB.  Hey, it’s a savings and it adds up when included in the steps above, right?  So, just move the slider to where you want it, Apply, and hit OK until you’re all the way out of System Protection.  More space gained!  Keep in mind, by reducing our available space, any older restore points that might be saved in space actually used will be lost.  Just a warning!

The Other Stuff

Let’s wrap this up by mentioning some other obvious and maybe not-so-obvious other methods for freeing up some disk space.

  1. Even though it’s an HTPC, we all use our HTPCs for various things and some of you might be doing some web browsing with it.  Keep your browser cache clean!  Depending on the browser you use, you may want to reduce the amount of space allocated to cache and some browsers even have an option to delete the cache on startup/exit.  You might even want to replace your existing browser shortcuts with the private browsing option most come equipped with…that nukes all traces of your usage after every browsing session.  Considering a lot of you probably browse YouTube or other video sites, the downloaded videos can really start to add up and they’ll all be in your browser’s cache.  It’s just an idea.
  2. Uninstall unused applications.  If you do any gaming on your HTPC, this might really make a difference.  However, even freeing up a hundred MB or so could really give some breathing room for a few of you.  In short, if you don’t need it, get rid of it.
  3. Use the free disk usage viewer WinDirStat to find anything that you may have never even known about that’s occupying more space than you’d like.  A really big offender are log files.  They can literally accumulate to equal hundreds of MB, even GB, of space.  It’s an HTPC…get rid of the log files!

I’m sure there are many other ways to free up some space, but for an HTPC, I find these are the most effective with the largest return.  Feel free to Google for other guides if you need even more space…there’s plenty out there.

Leave a response »

Media Center, LAV filters, and external subtitles

Jon : September 5, 2013 9:21 am : HTPC Tips and Tweaks, Software Tips and Tweaks

First of all, if you’re using an external player for watching your media, like Media Player Classic Home Cinema, then this guide isn’t going to do much for you.  If your media files have embedded subtitle files, then this guide won’t be much of a revelation to you either.  However, if you’re one of those few poor souls who insist on using the Media Center internal player, are dying to use LAV filters as your only codec, and continuously kick yourself because you have a few films that have external subtitle files (like .srt), then this guide is definitely for you.

I’ve wanted to use LAV filters for a long time now.  I love ffdshow, but, even more, I love LAV’s simplicity and quality of playback.  However, LAV leaves the media player to load external subtitle files and I just couldn’t get the internal player for Media Center to do that for me.  Well, I finally figured it out.  The information may have been out there already, but I sure never found it.  Anyway, let’s move on to the good stuff.

What You Need

First of all, you need the right software for your platform – either x64 or x86.  This guide assumes x64, but should go both ways easily.  I also haven’t tried this on Windows 8 (I used Windows 7 Pro x64), but it should work about the same.  Here’s what you need:

  • Latest LAV filters – Unless you’re going absolute minimalist, just get the latest (Installer)
  • Latest xy-vsfilter – Get the appropriate one for your platform.  In my case, the 64-bit installer.
  • Latest Win7DSFilterTweaker – It’s possible this isn’t needed, but my HTPCs have been running a while and it’s possible some of my merits changed or got messed up.  I reset them, but still found I needed this.  It’s a nice tool anyway.

Great.  Once you have all this stuff in a place you can easily get to, let’s get on with the installation steps.

LAV Filters: Installation and Configuration

First, we’ll install the LAV filters.  I’m assuming you have administrative rights, so just kick off the executable, click Next a time or two, and then you’ll eventually get to something of worth – components selection.  I installed them all and you should too.

Install them all

Install them all

Awesome.  Click Next another time or two and we come to some more important stuff – splitter formats!  I left this at default settings and you should too unless you know more than me, and you just might.  However, if you come to me complaining that your stuff’s broke, I’m going to call you stupid and assume you didn’t follow my directions.  It’s a win/win for me.

Just leave at defaults.  Really!

Just leave at defaults. Really!

Click Next some more and let it finish its install thing…

The install thing

The install thing

When the install is complete, you’ll get the option to open a configuration panel for each item – the splitter, video, and audio filters.  Put a check in each of them and click Finish.

Enable configuration for all

Enable configuration for all

There should be three configuration panels pop up after clicking Finish.  If not, go find the configuration links on your system and do it the hard way.  The first we’ll take a look at is the LAV Splitter Properties panel.  Locate Enable System Tray Icon in the bottom-left hand corner and put a check in it.  Just one note here, if you have a mixture of media that includes internal and external subtitle files, then you might want to set Subtitle Selection Mode to No Subtitles.  Doing that will prevent both LAV and xy-vsfilter from duplicating subs on your screen.  Click OK.

Just enable the tray icon

Just enable the tray icon

Yep, that’s it.  Pretty much, just so we can see that the splitter is working when we launch a video.  We don’t really need anything else configured here unless you want to get into default language tracks for your audio (multiple track support).  We can’t make use of the subtitles support as we’re the poor bastards with external subs – remember?

The second panel we’ll configure is the Video Settings Properties.  We actually get to do something here.  Depending on the video card you have, you’ll want to choose an appropriate mode of hardware acceleration.  The options are fairly self-explanatory though.  For me, I have an ATI Radeon HD5450, so I actually have two choices – DXVA2 (copy-back) or DXVA2 (native).  I chose DXVA2 (native).  When you select a supported option, it will be shown by the <Active> indicator.  That’s pretty much it for this part, but tick box to enable the system tray icon here as well.

Set your DXVA mode

Set your hardware acceleration decoder

After applying video settings, we’re left with the last panel – Audio Settings Properties.  We have a few possibilities here.  If your audio goes straight out to a TV, you probably don’t need any of the bitstreaming options.  However, if you go out to an A/V receiver that is capable of decoding digital formats, you’ll want to enable all of the supported formats of your receiver in the appropriate section.  Mine supports all listed, so I checked them all off.  Also, enable the system tray icon.

To bitstream, or not to bitstream...

To bitstream, or not to bitstream…

Once you’ve applied and hit OK on that panel, you’re done with LAV.  Let’s move on to xy-vsfilter.

xy-vsfilter: Installation and Configuration

Locate your xy-vsfilter installation package and get started.  For this particular installation, it’s mostly just clicking Next a bunch of times.

xy-vsfilter installation: let's go!

xy-vsfilter installation: let’s go!

Since this installation is so boring, I figured I’d tell you a little bit about what xy-vsfilter is.  Maybe you’ve heard of VSFilter.  No?  Hmmm…DirectVobSub?  No?  Fine.  xy-vsfilter is a fork of the VSFilter.dll which is a subtitle filter, responsible for connecting to your video decoder during playback.  In short, it’s a more better subtitle displayer thingy.  Got it?  Good.

Installalala

Installalala

Yep, a bunch of Next, Next, Next…anddddddddd we’re done!  Woo!  No further configuration is necessary for xy-vsfilter.  It works right out of the box.

xy to the z

Don’t click the box.  Don’t do it!

At this point, you may actually go to Media Center and try playing a known media file that has an external subtitle file with it.  The subtitle file should be named exactly like the media file, except for the extension.  You’ll want to run Media Center in a window so that you can see your task bar icons.  If you can see subtitles in Media Center and can also confirm the LAV Splitter, LAV Audio, and LAV Video icons, along with the xy-vsfilter icon (it’s a green arrow) are all showing, then you don’t even need Win7DSFilterTweaker – you’re working!  You’ll want to make sure for any AVI, MP4, etc. files that may have subs also.  If any of those aren’t working, continue on with this guide.

Win7DSFilterTweaker: Installation and Configuration

Installing Win7DSFilterTweaker is easy because it doesn’t install.  It’s a standalone application and you can run it from anywhere.  It only needs administrative privileges to run as it modifies portions of the Windows Media Foundation.  Anyway, go ahead and launch it and you should come to the initial box.

Options box

Options box

We’re only going to mess with Preferred decoders, so go ahead and click on that button.  We’ll get a much larger configuration box open up.  If you’re on x64 platform like me, you’ll get configuration options for both 32-bit and 64-bit systems.  Otherwise, you’ll get 32-bit only.  I only need to configure the 64-bit side since Media Center’s internal player utilizes the 64-bit version of Windows Media Player.

What we’re going to do is choose USE MERIT as the preferred decoder for all VIDEO formats, with the exception of WMV files (unless you just want to).  For all AUDIO formats, select LAV Audio.  Once complete, click the Apply & Close button, which returns us to the initial options box.  Just click Exit when there to close the tweaker application.

We’re done with the software portion!  Let’s go to Media Center and test it out!

Playback Support Confirmation and Conclusion

For the final portion, we’ll be checking playback within Windows Media Center.  Before we confirm everything is working the way we want, let’s take a look at the sample file information in MediaInfo.  My file is the movie [amazon_link id="B00AZMFKS0" target="_blank" ]Kon-Tiki[/amazon_link], and is encoded to around 8Mbps AVC and has a 6-channel DTS track contained in an MKV.  It has an external SubRip SRT subtitle file (not shown in MediaInfo).

MediaInfo results

MediaInfo results

Now, let’s take a look at how things appear in GraphStudioNext.  GraphStudioNext is a continuation of a continuation of the original DirectShow filter graphing tool that was included in the Microsoft DirectShow SDK years ago.  Basically, it just shows you how all this crap we installed carves up your media file and spits it out to your output devices.  As you can see below, everything looks good

Filter chain looks good

Filter chain looks good

Well, all that’s left is to fire up Media Center, locate Kon-Tiki in Media Browser Classic, and see what happens.  The first shot shows the video playing, with all expected icons in the task tray (LAV Splitter, Video Filter, Audio Filter, and xy-vsfilter).

WECANHAZICONZ?

WECANHAZICONZ?

This final shot is just the individual stream properties being handled by the LAV Splitter.

Just another screenshot of awesomeness

Just another screenshot of awesomeness

So, let’s recap.  This guide provides you with:

  1. LAV Filters as your sole codec “pack”.
  2. xy-vsfilter for external subtitle support since LAV Filters doesn’t provide it (it does internal though!).
  3. Playback of all formats using the previous two filters within Windows Media Center.
  4. Hardware accelerated playback of all capable formats, with supported hardware.
  5. Relatively easy installation and configuration process to achieve all of the above.

I hope this guide helps some of you that just can’t let go of Windows Media Center and its internal player.  LAV Filters are an excellent package for playback and that means something coming from a lifelong fanboy of ffdshow.

27 Comments »

Media Center Live TV flicker fix.

Jon : August 27, 2013 8:19 am : Hardware Tips and Tweaks, HTPC Tips and Tweaks

I’ve only had my HDHomeRun Prime and CableCard for  a few weeks, so I’m way behind the curve in terms of delivering cable to my house in that manner.  I also ran into an issue a few weeks ago that I was reminded of this weekend as a Catalyst Control Suite and driver update reintroduced it to me -  an annoying stroble-like flicker while watching certain channels in Media Center’s Live TV.

Depending on the channel and what’s actually on, it could be a constant flicker, or as I noticed, during scenes where there is a lot of brightness in the background, with a darker image in the foreground.  Imagine someone being interviewed in front of a bright light source, like a window, or being outside in the sunlight.  That would really set off the flicker.

What Ifound in my Googling, is that this is related to a 29/59 bug with Media Center and Live TV.  I checked one of the channel sources causing me issues by entering the debug overlay (4 1 1 Info button sequence on your remote during Live TV playback) and went through the pages until I found the frame rate (image below was borrowed from Windows Experts as I couldn’t generate one over my RDP session).

29/59 frame rate checks out

29/59 frame rate checks out

I don’t really know why this would cause the flicker, however.  I could understand the report of jerkiness and judder, but not this light-to-dark/dark-to-light strobe-effect flickering.  So, I kept searching and came across something else – dynamic contrast.  Dynamic contrast was a breakthrough in LCD technologies that allows a supporting image to dynamically change its contrast ratio according to what’s on the screen.  For example, during a dark scene, the LCD backlight would be instructed to dim itself, yet proportionately amplify the transmission via the screen.  This would keep the picture from appearing overexposed by any bright areas on an otherwise dark scene.  The opposite pretty much occurs in brighter scenes, so they are not completely washed out by brightness.

Anyway, video cards have settings for dynamic contrast and I have an [amazon_link id="B004VRRN4E" target="_blank" ]ATI Radeon HD5450[/amazon_link] in my two primary HTPCs.  I simply launched the Catalyst Control Center, located the Video section, and selected Quality.  Right there it was – Enable dynamic contrast.  I unchecked it.

Turn dynamic contrast off!

Turn dynamic contrast off!

I applied those settings, went back into Media Center, and fired up a channel in LiveTV that was giving me trouble – no more flickering!  Just like that, instantly solved.

Now, for NVIDIA users, I’m not real sure if this is an issue or not, but I have seen where some users had it also.  I do have an HTPC in the spare bedroom that has an NVIDIA GeForce 210 in it, but I haven’t tried any Live TV with that system other than to initially get it set up.  I don’t know if it exhibits the flicker issue or not.  I did dig through the settings looking for the dynamic contrast option though.  I found it under Video > Adjust video color settings and I had to set the 2. How do you make color adjustments? to NVIDIA-controlled.  If you then go to the Advanced tab, you’ll have a Dynamic contrast enhancement checkbox.  If you leave the fore-mentioned setting to allow your video player control, it will be greyed out.  I assume you can just uncheck this and save to get a similar result.  Let me know if you have to do this and I’ll update this post.

Anyway, maybe it does, or does not have anything to do with the 29/59 bug, but at any rate, this fixed it for me.  It’s not new news, but it is to me and having one more place out there to find the answer can’t hurt!

 

Leave a response »

Recording Live TV to an iSCSI target with Media Center.

Jon : August 26, 2013 10:42 am : HTPC, HTPC Tips and Tweaks, Network Tips and Tweaks

My primary HTPCs (living room and bedroom) were built with, for the most part, identical hardware.  So, they both share a common deficiency now that I have re-introduced Live TV back to my Media Center experience – disk space.  I use a small-ish SSD as the OS drive in both of them.  At the time, the ~60GB SSD was plenty big enough to house the OS and Media Browser…it was all I used it for.  I had some space to spare.  But now, I can’t even think of recording any shows if I wanted to.  Considering I use mATX cases, adding additional HDDs isn’t really a solution – there’s no room.  Upgrading to a larger SSD (hey, I love the speed) isn’t in my prioritized budget list.  So, what to do?  iSCSI.

I happened across this solution by accident.  I was playing with an old Dell PowerVault 745N I had lying around, looking for a similar use out of it for a WHS.  Things didn’t really work out the way I wanted there, so it was scrapped, but not before I came across the notion of running iSCSI.  The hangup I had was that the 745N is a 32-bit platform only, so I couldn’t install the free Microsoft iSCSI target software on it.  I could only use it as a client.  Then I realized, I have this Dell PowerEdge 2950 II sitting here acting as a totally over-qualified MB3 server.  I also had a spare 400GB 10K SAS drive sitting around.  Plus, the important thing – it was running 2008 Server R2, which is 64-bit.  I had my iSCSI platform.

Please note, this is a multi-page article.  Page links are below!

iSCSI Target console

iSCSI Target console

The first thing to do is to download and install the Microsoft iSCSI Software Target 3.3.  Remember, the target software will only install on 64-bit platforms, otherwise you’ll just get the target client, which won’t do anything for you, as far as these instructions go.  Once installed, you’ll find the iSCSI Target management console under Administrative Tools.  As you can see to the right, I’ve already created a target for one of my HTPCs.

The next step is to create our target.  Right-clicking iSCSI Targets in the left-hand column will give us the needed context menu.  We want the Create iSCSI Target option.

Create target meu

Create target menu

Selecting this option kicks off the Create iSCSI Target Wizard.  Give your iSCSI target a name and description, then click Next.

Target identification

Target identification

Now we are going to assign an identifier to our initiator.  This is basically the ID of the system that is going to connect to our target.  Make sure you read that twice – it is not the IP address of the iSCSI target!

Initiator ID

Initiator ID

After clicking Advanced, we can add our initiator IDs.  Just click the Add button.

 

Add identifier

Add identifier

 

IP identifier

IP identifier

For Identifier Type, select the IP Address drop down option.  For Value, I type in the IP of the HTPC that will be using this target.  I know, “What if I use dynamic IP addressing?”, you ask.  Well, that doen’t pose too much of an issue.  You could also put in your unique IQN, which is available in the iSCSI Initiator properties of your HTPC, choose DNS name (which may or may not work depending on your home network setup), or choose MAC addressing.  MAC address is probably the second easiest option, as you can get that from running IPCONFIG /ALL from the command line.  I use static addresses on my HTPCs, so I use the option to the left.

Confirm through by clicking OK until you have completed the wizard and then click Finish.  You’ve created an iSCSI target!

Target created!

Target created!

So, we now have a target, but it’s not really good for anything as it has no device assigned to it.  Microsoft’s iSCSI target implementation is fairly basic and only allows us to create virtual hard disks as our device.  Unfortunately, you can’t use a raw device to point your target to in this software.  At first, I thought that was sort of sucky, but it’s really not that big of deal.  It actually worked out well for me as it allows me to create individual virtual disks for each device on one drive, instead of having to supply a drive for each system.  I just carved out two VHDs on the 400GB SAS drive for each HTPC, 50/50.

Let’s create our VHD.  Right-click on the iSCSI target that was just created and select Create Virtual Disk for iSCSI Target in the context menu.

Create VHD

Create VHD

VHD location

VHD location

We’ll get a new wizard – the Create Virtual Disk Wizard.  In the File field, we’re going to specify the location where the VHD resides on the SERVER.  This will be the disk or partition you have set aside specifically for holding your created VHD files.  Since this file doesn’t actually exist yet, we have to establish the full path AND file name.  If you leave out the file name, it will just complain and you won’t get to continue.  My 400GB SAS drive is my R: and I’m creating my VHDs right in the root of it.

Next, we have to establish the amount of space our VHD is going to use.  I chose to use almost exactly 50% of the drive’s available space for each of my VHDs.  As you can see below, I have 186.90GB remaining after establishing the first VHD.  So, I figure 185 GB is a good round number to use.  Just crank up calc and do some simple math – 1024*185 = 189440.

setvhdsize

Set VHD size

Overall, that gives me a few GB of play on the drive.  I may never need it, but I’d rather have a little for low-level NTFS file system crap…just in case.  Click Next and set a description for your VHD.  Depending on how many VHDs you have, this could be quite necessary, so give it something, ummm…descriptive.

VHD description

VHD description

That’s about it.  Click Next and then Finish on the next page, completing the wizard.  We’re not quite yet done though.  We still have one more step on this end to take care of, now that our target is created and we have a device assigned to it.

Target created

Target created

Click on Devices in the left-hand column to display any and all created VHDs to the right.  Locate the VHD just created and right-click it.  From the context menu, go to Disk Access, and select Mount Read/Write.

 

Mount VHD

Mount VHD

We have to mount the drive in order to use it, otherwise there will be nothing available for our HTPC to use.  When successful, you’ll get a confirmation.  Click OK to close.

VHD mounted

VHD mounted

That’s it!  We’re done on the server side.  Now, we have to setup the HTPC client so we can use the newly created iSCSI target, so switch on over to your HTPC and we’ll continue on the next page.

From your HTPC, I’m assuming your on Windows 7.  That’s what I’m using, so if you’re on something else, all I can say is adapt and overcome.  Head to the Start button and type in iscsi to locate the iSCSI Initiator.

iSCSI Initiator

iSCSI Initiator

Once you launch the initiator for the first time, you’ll be notified that the service is not running and then asked if you want to start the service on subsequent restarts.  You’re going to want to click Yes for that, otherwise, you’ll have to start the service manually at every reboot – no fun.

Enable iSCSI

Enable iSCSI

Afterwards, you’ll be presented with the iSCSI Initiator Properties configuration.  We’re going to want to do the quick-and-easy method, which is to plug in the IP address of our iSCSI Target server and then hit the Quick Connect button.

Quick connect

Quick connect

If everything was set up correctly (it should be if you followed these directions, right?), you’ll get a connection properties box populated with the something similar to the image below.  The important part is the Login Succeeded in the Progress report box.  Click Done once you have confirmed you received something similar.  If you didn’t, well, I’m sorry.

Target connected

Target connected

After closing the quick connect box, we’re returned to the Targets tab of the configuration properties box.  Click the Devices button and we can see that we have a new device available to us for use.

Target devices

Target devices

Awesome!  Let’s visit the Volumes and Devices tab next.  On first visit, the Volume List: is empty (sad face).

Volumes list

Volumes list

Let’s make this not suck by clicking the magical Auto Configure button.  Voila (happy face)!

ICANHAZVOLUMEMOUNTPOINTDEVICEZ!

ICANHAZSTUFFZ!

Sweeeeeet!  We now have a new volume/mount point/device/kitchen sink added!  That’s it for initiator configuration too!  That’s a lot of exclamation points, so we must really be excited!  Click OK to close the properties box!  Our next configuration set may be a little more familiar to you.

Head to the Start button again, locate Computer, right-click, and choose Manage.

Computer management

Computer management

From the Computer Management console, go to Storage, and then Disk Management in the left-hand column.  You should immediately be presented with a prompt to initialize a new disk.  Unless your iSCSI VHD exceeds 2TB, just accept the defaults and click OK.

Initialize new disk

Initialize new disk

Once the disk has been initialized, there will be a new basic disk with unallocated space available.  Right-click the unallocated area and choose New Simple Volume.

Create volume

Create volume

Yes, this is just like adding a new drive to your system because, technically, we kinda are adding a new physical drive to the system.  Go ahead and format the partition, give it a volume label, and assign it a drive letter.  You can carve it up any way you like…just like it’s a newly installed physical HDD.

Create partition

Create partition

When done, behold!  A new Windows volume, ready for use!

Volume ready

Volume ready

Now that we have the drive prepared for use, we have our final step to complete – configure Media Center to use it as its recorded TV storage location.  Launch Media Center and continue to the next page.

When in Media Center, navigate to the Tasks strip, select settings, select TV, and then select Recorder.  In Recorder Storage, we’re going to change the default drive specified under Record on drive: to the new iSCSI target drive we just added.  Click the +/- until the drive populates in the field.  Mine is drive R:.

New recorder drive

New recorder drive

Configure the allotted recording space for the drive however you wish and then Save your settings.  That’s it.  You’re done.  It’s ready for use.

Once that is complete, the new iSCSI target drive will be used to record to and will also be the temporary recording file location.  Now, “Does it actually work?”, I suppose you’re wondering.  My answer, for my setup is, “Absolutely.”

I tested out several recordings – all 1080i CableCard content, so the highest possible bitrates were used.  Considering my tuner is an [amazon_link id="B004HKIB6E" target="_blank" ]HDHomeRun Prime[/amazon_link], my network connection should be heavily utilized since it is receiving the stream and recording over the wire via iSCSI protocol simultaneously.  I experience no hiccups, skips, or anything else out of norm of what I typically expect when watching Live TV.  I did not try multiple streams, however (recording one or two channels, while watching another).  I’ll try that and update this post at a later date.

For the sake of having something to look at, I decided to try an Atto Disk Benchmark against the iSCSI disk.  The results weren’t too bad.

Disk performance

Disk performance

As you can see, under heavier use, the disk can sustain around 70MB/s writes and 80MBs reads.  It’s not blazing, but it’s more than acceptable for live TV recording.  Your mileage may vary, depending on hardware used and the state of your network.  I can only say that it’s sticking around in my house.

I’ve got a little tweaking to do with it which mostly involves dedicating the second NIC to serving up the iSCSI target, but I’ll get to that a little later on.  I might also decide to dedicate individual drives to each VHD, as I have a couple of 146GB SAS drives available, and then use the 400GB to maintain snapshots.  I just have to decide if I really want to get into all of that or not.  I don’t really plan on recording much live TV, but it’s sure nice to have this if I ever want to.

I’d also like to mention that there is a free version of StarWind iSCSI SAN available.  I looked into StarWind initially since the 745N I had did not support the Microsoft iSCSI target software.  However, the StarWind software does support 32-bit platforms.  It did have a few limitations that made me opt to just go with the Microsoft implementation on the 2950 though.  One being that you’re limited to 128GB on your HA device.  That’s actually big enough for me, but I still figured I’d opt for Microsoft.  The free version is also limited to virtual disks only..again, same as Microsoft, but then why not just use Microsoft’s version?

I ordered a 4GB memory upgrade for the 745N and am bringing home an Intel P4 2.8GHz 800MHZ bus CPU with Hyperthreading today (has 2.8GHZ 533MHZ bus without HT now), so even being old, it still might see some action as my iSCSI head.  I already have 2008 Server Standard installed on a 160GB disk and it has 3 1TB SATA drives configured in RAID-5, so I kind of hate to see it go to waste.  It boasts dual Gbit NICs, so it might be a terrific dedicated iSCSI server if I throw that free version of StarWind on it.  It would provide enough recording storage for every HTPC in the house – plus snapshot space.  We’ll see.

I’ve been doing a lot of considering on the Intel NUC as my next HTPC platform, when needed.  The one thing that was really holding me back was the expense on the embedded SSD – which get quite expensive the larger you go.  If you have the infrastructure available, iSCSI makes for a very good option to provide a NUC the space it needs to be an option for recording Live TV via Media Center.

Update:

I was wrong about the free StarWind iSCSI SAN software – it does not have a 128GB virtual disk limitation.  I was just able to create and connect to a 256GB and 512GB virtual disk with no problem.  There is a high availability limitation of 128GB, which I do not need for simple TV recording.  Anyway, that makes it an excellent option for you that have are restricted to a 32-bit platform.

 

7 Comments »

How to get around lack of shortcut support in MB3.

Jon : July 29, 2013 12:30 pm : HTPC Tips and Tweaks, MediaBrowser3, Software Tips and Tweaks

Update:

Shortcut support has since been added to Media Browser 3, so this article has little worth aside from awesome reading.

/Update:

For those of you with kids, you may have been faced with organizing certain content that involved it existing in two places at once.  For example – The [amazon_link id="B004UQPM4E" target="_blank" ]Superman Anthology[/amazon_link], which I wanted in our movie collection, but also in our kids’ collection.  With MediaBrowser 2, all I had to do was create a shortcut to the original location (our collection) and place it in the kids’ movie collection…problem solved.  Well, with MB3, shortcuts are no longer supported and will cause you major headaches if you try them.  So what do you do for this type of scenario?  Read on…

more »

Leave a response »

Kids and HTPC power buttons.

Jon : February 6, 2013 10:24 am : HTPC Tips and Tweaks, OS Tips and Tweaks

If you have HTPCs and kids in your home, you can probably relate to what this little tip is about.  It’s nothing new, but I’m hoping some of you may just never have thought to do this before to save your HTPCs from experiencing an unexpected shutdown due to button-loving children.

more »

2 Comments »

Keep your HTPC awake during Media Browser refreshes (or other stuff).

Jon : August 24, 2012 2:52 pm : HTPC Tips and Tweaks, Software Tips and Tweaks

I rarely have to run a full refresh on Media Browser.  With the service running in the background all the time and new material being scraped in minutes after it’s added, it’s pretty self-sustaining.  However, there are occasions when my metadata and image caches just need a simple “oil change”, in which they need to be completely nuked and rebuilt from scratch.  Just to get that “new car” smell…ya’ know?  The problem I always run into is that with the size of my collection, the refresh always gets interrupted by the sleep timer I have set.  Today, I solved that.

more »

2 Comments »

Installing Windows on an old unRAID drive.

Jon : August 19, 2012 11:00 am : HTPC Tips and Tweaks, OS Tips and Tweaks

I thought I would share this since it caused me to scratch my head a bit.  I had to use a 1TB drive from a spare system of mine as an unRAID replacement after a drive failure last week.  Well, that system was my decommissioned desktop and I still used it to do encoding and other heavy work as I relocated it to the basement.  I just remote into it now.  Anyway, I found a couple of 500GB drives that were taken out of my unRAID server some time ago due to upgrades, so I went to use one of those as a new OS drive…except none of them were found during the disk selection phase.

more »

2 Comments »
« Page 1, 2, 3, 4, 5 »