If you have ever tried to purchase a device to stream digital video files (downloaded movies, home movies, converted movies – ex. DVD/BlueRay rips) to your television, you know that ever device is different, has limited file type support, and limited capabilities.  For example, Windows Media Extenders (ex. products from Linksys, HP) do no support 1080p and only support a limited number of video types (mostly geared towards Microsoft’s WMV format). 
 
Networked Media Tank (NMT) is designed to bring extensibility, standardization, and reliability to this problem.  Owned by the company Syabas, NMT is basically a set of hardware standards and a regularly updated firmware (software the hardware will run).  The firmware allows for playback of a ton of formats (including 1080p video), provides a common experience for users between devices (even between devices produced by different companies), and provides an easy way to the companies to update their devices (basically this is outsourced to Syabas).  The hardware standard ensures that no matter what company and device, the firmware will run successfully (ex. video playback will be successful).  Companies can however extend their devices past these standards as they see fit (ex. some devices hard DVD drives, some have interbal hard drives, some are have none of thay and are really small and slient, etc).
 
Bottom line is that the devices produced are low powered, fast, reliable, and dependable that output all the high definition video file types I need at full 1080p (you can see the device I use here - but the benefit of NMT is that I can buy and use any NMT device, from any company and get the same experience and utilize the solution I outline in this article).  This article outlines how to configure your Windows Home Server to be able to serve the web pages that index your video files as well as stream the video files (more on both of this later).
 
1. Set up the IIS Web Site
NMT typically uses web pages to display a slick interface where you can browse your video files to determine which to play.  Later in this article, I’ll explain the automated program to index your videos and create these web pages.  These web pages along with the corresponding video files are both stored on a remote location of your choosing (ex. NAS, computer, etc) and are streamed from these locations to the NMT device.  Here, I use Windows Home Server as the remote location to store the files and IIS (the built in web server) as the application to stream them. 
 
Note: Some people use lightpd instead of IIS.  In my testing, I noticed no CPU or memory change between the two and did notice IIS accessing video files noticeably faster than lighttpd.
 
1. Place your HD Video files
Place your HD Video files in a Windows Home Server share (ex. Videos).  This will also be where the web pages mentioned above will be stored.
 
2. Setup the IIS web site:
  1. Remote desktop (terminal service) to the home server
  2. Open Control Pael | Administrative Tools | Internet Information Services (IIS) Manager
  3. Expand Internet Information Services | YourHomeServerName (local computer)
  4. Create the application pool
    1. Right click on the Application Pools folder and select New | Application Pool
    2. Provide an application pool name (ex. HDVideosAppPool) and  leave the default selected
    3. Click OK.  This application pool will allow the new website to run in its own memory space and not create conflicts with the remote acces site or any other site for that matter.
  5. Create the web site
    1. Right click on the Web Sites folder and select New | Web Site
    2. Enter a description of the web site (ex. HDVideos)
    3. Enter a TCP port of 8001 (Important security note – ensure your router does not have port 8001 open, otherwise anyone from the Internet will be able to access your videos)
    4. Under path, enter the UNC path of the location of your HD videos (ex. \\YourHomeServerName\Videos) and leave anonymous checked
    5. When prompted for permissions, select Read and Browse
    6. Click finish
  6. Configure the web site
    1. Right click on the site and select Properties
    2. Select the Web Site tab and ensure “Enable logging” is not checked (no need to log access of these files, which should slightly improve performance here)
    3. Select the HTTP Headers tab and then “Mime Types”
    4. Enter “*” for the extension and “application/octet-stream” for the Mime Type (of course, both NOT in quotes).  This allows IIS to stream any type of video file you have.
    5. Select the Directory Security tab and click on the first Edit button
    6. Ensure only “Enable anonymous access is checked” – so that the NMT device can access this web site
    7. Click on the Home Directory tab and set the application pool to the one we just created
    8. Click OK

3. Install upnp2http
upnp2http is a UPNP wrapper for HTTP.  It allows the web site to automatically appear as a menu item from the NMT’s home screen. 

  1. Download and extract upnp2http to c:\upnp2http
  2. The upnp2http.conf is what upnp2http uses to inform your NMT device of what menu text to display and what link to go to once clicked.  Erase all the contents of this file and enter the following (Modify to properly reflect your desired menu item text and the IP address of your home server):
    YourMenuText = YourHomeServerIPAddress:8001
  3. Run the following command to install upnp2http
    “c:\upnp2http\upnp2http.exe” -I
  4. That’s it.  upnp2http will now run as a Windows service and your NMT device should automatically display your new menu item.

4. Install MovieJukebox
MovieJukebox is a command line, java tool that can scan your video files, automatically lookup and download their information (ex. IMDB, TVDB), download image posters and movie trailers, and create a beautiful web page interface which easily allows you to find and access your video files.  To install:

  1. Ensure you have java installed.
  2. Download and extract the latest version of MovieJukebox to c:\moviejukebox
  3. Download and extract the latest version of MediaInfo – Command Line to C:\MovieJukebox\mediainfo
  4. Edit C:\MovieJukebox\moviejukebox.properties
    1. Find and modify the “Apple Trailers plugin parameters” section to have MovieJukebox automatically download movie trailers (pretty cool – I originally suggested this to the MovieJukebox team and they finally implemented)

5. Setup the index job
Finally, you need to setup a job that will regularly index your movies (so you can simply add your video files to the share and later the job will kick in and index your new files).  This will cause moviejukebox to download information and files and ultimatley create the associated web page interface.  To setup the job:

  1. Create a text file called videos.xml, in the root share where your video files are stored, with the following content (Modify to properly reflect the IP address of your home server):
    <?xml version=”1.0″ encoding=”utf-8″?>
    <libraries>
      <library>
         <path>b:</path>
         <nmtpath>http://YourHomeServerIPAddress:8001/</nmtpath>
      </library>
    </libraries>
  2. Create a text file called Index.bat, in the root share where your video files are stored, with the following content (Modify to properly reflect the name of your home server videos share):
    @ECHO OFF
    NET USE B:
    \\YourHomeServerName\YourVideosShare
    c:
    cd c:\moviejukebox
    CALL c:\moviejukebox\MovieJukebox “B:\videos.xml” -o “B:\Jukebox”
    NET USE B: /D
  3. Create a scheduled task (see instructions here) that will run index.bat on the scheduled of your choosing (I have mine run daily, 7AM).  When creating the task, ensure you have it run under the Windws Home Server adinistrator account so the scheduled task can access the video files and create the web pages.

RELATED POSTS:

  1. Converting videos for the iPad
  2. Controlling your home server from your iPhone
  3. Change the default Acer Aspire easyStore H340 home page
  4. YouTube throttling on the iPhone 4
  5. AspireHome My Computer Link Application