I thought I would compile the information found in
this thread and a few others so it is easier to find for new users and they can avoid common mistakes. The biggest reason that I use My Movies is that I can keep vista media center as my frontend, but use an external player for the actual video playback. External players offer many things over media center for playback. It is much easier to define which codec will be used and utilize the GPU for playback. There is also much broader codec support without attempting hacks and tweaks. Support for alternative modern containers (.mkv) is much stronger. External players are also much more current and up to date than media center playback. There are many more pros, but those are enough for me. If you control your HTPC using a remote you will most likely require IR software to control the external player. This can be accomplished using
eventghost which is free.
--Limitations--
The biggest limitation to using an external player from My Movies is HD content. Whenever My Movies sees a blu-ray or HDDVD file structure it will use the integrated HD player and not the external player that is specified in the registry or media center interface. I don’t see anyway around this other than muxing your HD content into a container like .mkv which you can then play in whatever player you like. You can also mount ISOs for playback in external players(see end), but I can't test it for HD stuff because I don't have a drive.
--Basic Setup--
If you would like to use an external player TheatreTek is the easy option to integrate from within the My Movies MCE interface. Navigate down to settings and then to “DVD – Playback and Copying”. Check the “Use TheaterTek DVD for playback” option and save. I have never used TheaterTek so I will just assume that this works.
--Other options--
To use the player of your choice you will need to go into the registry and make some changes. If you are not comfortable with the registry or are asking yourself “where do I find the registry?”, then you probably shouldn’t go any further. If you are comfortable then go into the registry and navigate to the “HKEY_CURRENT_USER\Software\My Movies” key. Once there find the DefaultPlayer value and modify the data to whatever you like. This data is not specific to your player and can be anything. As long as this value is populated with data My Movies will call up whatever application you have specified at the “ExternalPlayerPath” value.
Next find the “ExternalPlayerPath” value and change it to your external player’s path. An example might be “C:\Program Files\mplayerc_homecinema\mplayerc.exe”, but without the quotes. Once you have done this you should check the "ExternalPlayerParms" value and make sure the data there is “{0}” without the quotes. The {0} passes the path of your video file based on how you have it entered in collection management under “Disc(s)”. The only other option that I am aware of here is to also use {1} which will pass the aspect ratio. Other than that you are not allowed to enter your own commandline parameters like /F or –fullscreen. Once you’ve made your changes close the registry and your standard def movies will now launch using the external player you entered in the registry.
If you made an error while typing in the “ExternalPlayerPath” data or your player’s .exe was moved you will see an error stating “TheaterTek DVD was not found on your computer.” If this is the case you need to check the “ExternalPlayerPath” data and make sure it is correct. It doesn’t matter what player or path you are using it will always refer to TheaterTek not being found. The limitations with this method depend on the player that you are using. Some players will not receive command line arguments and this will prevent them from functioning as an external player. You should do a search for your player and command line arguments to find out which ones, if any, it will support.
An important note is that if you enter “DVD – Playback and Copying” in the MCE interface and save, even without changing the “Use TheaterTek DVD for playback” option, it will wipeout any settings in the registry that you made for the external player and you will have to enter them again.
--Advanced Option--
Because you can point My Movies to an external player you can also point it to any application you want. This will allow you to get past the restriction of command line parameters you can pass to your external player from the registry. It will also let you use multiple external players for different file types. I made a small script, ExternalLauncher.exe, in AutoHotkeys that will pass the parameter My Movies passes (your video filename and path) to an ExternalLauncher.bat file. The batch file is executed minimized and you can custom edit it for your setup. There is nothing special about the script and how it integrates with My Movies. It is simply sending the video filename onto a batch file that you can use to customize your playback. If My Movies doesn’t use the “ExternalPlayerPath” when you click watch, like in HD folder structures, it won’t execute the ExternalLauncher.exe and your ExternalLauncher.bat file won’t get executed.
A good way to trouble shoot is to see if the command prompt window is minimized in the taskbar when you choose “watch” in My Movies. That is why I left it minimized instead of just hiding it completely. The command prompt window should be minimized to the taskbar the whole time your video is playing back. When you exit your player this closes the command prompt window and signals to the ExternalLauncher.exe to activate or maximize the media center window depending on which ExternalLauncher.exe you are using.
--ExternalLauncher Setup--
Download the zip file containing ExternalLauncher.exe, ExternalLauncher.bat and MyMoviesExternalLauncher.reg. I place the ExternalLauncher.exe and batch file in the C:\Program Files\MCE\My Movies folder, but this is not necessary and they can be placed anywhere you like. Then you have to modify the registry to point to the ExternalLauncher.exe. If you placed it in the default C:\Program Files\MCE\My Movies folder then you can just add the MyMoviesExternalLauncher.reg. file to your registry by double clicking it. If you placed it in a different location you will need to modify the “ExternalPlayerPath” value manually to point to the ExternalLauncher.exe file. If you made an error while typing in the “ExternalPlayerPath” data or your player’s .exe was moved you will see an error stating “TheaterTek DVD was not found on your computer.” If this is the case you need to check the “ExternalPlayerPath” data and make sure it is correct. It doesn’t matter what player or app you are using it will always refer to TheaterTek not being found.
There are two ExternalLauncher.zip files attached one will leave media center fullscreen and launch your player which should play on top of media center. If the audio to your player starts, but you don’t see the video try the ExternalLauncher.exe in the ExternalLauncher Minimize MC.zip. This one will minimize media center before executing your batch file so that if your player was launching behind media center it will now be on top.
--ExternalLauncher Batch File—
There are tons of ways to setup your batch file and you can really do anything you want with it. I will show a few examples, but you can really do anything you want. A few things to point out in the batch file. %1 is the argument that My Movies passed us. It is usually the folder location unless you chose online file in collection management. It will normally look like this if you use online folders and .mkv files
"\\Antec_Server\Movies\Bourne Supremacy\Bourne Supremacy.mkv"
By adding modifiers to %1 we can break it down into its components as described
here.
%~n1 will be the name of the folder or file depending on what My Movies is passing us
%~x1 will be the extension of the file if a filename was passed by My Movies
%~sdpnx1 will be the short(s) drive(d), path(p), name(n) and extension(x) of the file passed.
So the %1 shown above when modified like this, %~sdpnx1, would become
\\Antec_Server\Movies\BOURNE~2\BOURNE~1.mkv
Examples:
Here is a simple batch file that can be used just to pass extra command line options to a single player.
Code:@echo off
"C:\Program Files\Zoom Player\zplayer.exe" %~sdpnx1 /F /Q /PLAY
Exit
Here is a batch file that will play .mkv in zoom player and video_ts structure in totalmedia theatre and all other files in VLC
Code:@echo off
If Exist %~sdpn1\Video_TS.IFO goto TotalMediaTheatre
If /i %~x1 EQU .mkv goto Zoom
"C:\Program Files\VideoLAN\VLC\vlc.exe" %~sdpnx1 –f –-play-and-exit
Exit
:Zoom
"C:\Program Files\Zoom Player\zplayer.exe" %~sdpnx1 /F /Q /PLAY
Exit
:TotalMediaTheatre
"C:\Program Files\Arcsoft\TotalMedia Theatre\uMCEDVDPlayer.exe" "%~sdpn1\VIDEO_TS.IFO"
Exit
Here is a batch file that will select a random clip from “M:\Movie Intros” and create a playlist with the clip and your movie and start it in zoom player.
Code:@echo off
setlocal enabledelayedexpansion
set IntroLocation=M:\Movie Intros
set count=0
set x=0
Echo. > %~sdp0MovieList.m3u
for /r "%IntroLocation%" %%a in (*.*) do (
set INTRO_!count!=%%~a
set /a count+=1
)
set /a x="%random% %% count"
Echo !INTRO_%x%! >> %~sdp0MovieList.m3u
If Exist %~sdpn1\Video_TS.IFO (
Echo %~dpn1\Video_TS.IFO >> %~sdp0MovieList.m3u
) ELSE (
Echo %~dpnx1 >> %~sdp0MovieList.m3u
)
"C:\Program Files\Zoom Player\zplayer.exe" %~sdp0MovieList.m3u /F /Q /PLAY
Exit
As you can see there are many options when using the ExternalLauncher.bat files so create whatever you like and share. If you want to see the parameter that My Movies is passing you for a particular movie just add
to the beginning of your batch script and it will pause the script showing you what the parameter is. Just pull up the window from the taskbar to see it. This has helped me troubleshooting the right way to modify a parameter for a particular player.
--ExternalLauncher ISO workaround—
You can mount standard def ISOs and watch them outside of media center. As for the HD ones I am not sure, because I don’t have a drive yet. This requires extra work, but can be done. What I did was create an empty file called “ExternalISO.extiso” Then I copied this file into the folders that contained ISOs. Then in collection management I chose online(file) instead of online(folder) for the ISO movies and pointed to the ExternalISO.extiso. This way My Movies would see the ExternalISO.extiso and call the ExternalLauncher.exe instead of mounting the ISO image in the folder. One caveat is that you have to use the ExternalLauncher.exe that minimizes media center instead of the regular one. I set the autoplay for DVDs to take no action and used the following for my batch file to mount the ISO, play it in zoom player and unmount it. If an .extiso file was not passed then zoom player would start in normal mode and play whatever file it was passed.
Code:@echo off
If /i %~x1 EQU .extiso goto Mount
"C:\Program Files\Zoom Player\zplayer.exe" %~sdpnx1 /F /Q /PLAY
Exit
:Mount
for /f "tokens=* delims= " %%a in ('dir/b/a-d "%~dp1*.iso"') do (
"C:\Program Files\DAEMON Tools Lite\Daemon.exe" -mount 0,"%~dp1%%a"
)
"C:\Program Files\Zoom Player\zplayer.exe" /F /DVD /CD:Q /PLAY /Q
"C:\Program Files\DAEMON Tools Lite\Daemon.exe" -unmount 0
Exit
I know this was ridiculously long, but hopefully it was helpful and others can take advantage of it. I wish I could have found a document like this when I first started using My Movies earlier this year and fought my way through all this.
File Attachment(s):
ExternalLauncher.zip (199kb) downloaded 1,880 time(s).
ExternalLauncher Minimize MC.zip (199kb) downloaded 4,518 time(s).