I wasted today and in the past months a lot of time on solving a problem that is actually very simple and if you would believe the advertisements than there shouldn't be a problem at all or a simple solution right around the corner. Well, that is obviously not the case.
Lets start with an explanation of what am I trying to accomplish.Part 1. The Simple IdeaI have multiple computers in a home network. They all see each other and permission are set that each computer can access resources and data on each of the other ones.
I also have a lot of media data. Music, Videos, Clip arts, Foley Sounds, Video Snippets etc. I converted most of my 300+ CDs to MP3's, but only converted a fraction of my 200+ DVDs for several reasons. Anyhow, what I already have is a lot and nothing that I could copy from A to B with a thumb drive or USB stick. I also don't want to have all those GB of data on each computer (which would not fit and does not make sense).
No problem, you can buy for a fair price something called Network-Attached Storage Devices, which are basically hard drives in a smart external casing that allows not only access to them via USB 2.0 or Fire-wire, but to hook them up into the network and make them visible via network share to any other computer in the same SUB-C class network, if it authenticates itself properly. Well done, now I have a nice network storage and all the data on it. I can browse it and play individual stuff.
Now I wanted to do the easy part (so I thought), creating a library with all that stuff in it. Nicely updated with the Meta Data that are already in the files themselves or from one of the large media databases on the Internet. Get the Album art for great looks, categorize stuff and can apply nice filters like "Show me all songs from artist XYZ that I have" or "Show me all the movies by director ABC".
Part 2. It Smells Like TroubleOkay, there was one tricky part that I was aware of, the various video formats and also the increasing number of audio formats that compete with MP3. While the "Codec" world is still a mess, is it still possible to get a solution. I was able to manage to teach my computer to play back virtually any media format that I threw at it. It took some searching and digging sometimes, but it is out there.
There are various players that work great, but only few offer a good library option. Most are limited to play-lists. Well, some developers rather spend time on the ability to change the "skin" and every single optical aspect of the player by the user than provide stuff that is actually useful, but there is obviously a market out there that proves them right and that this is the way were money is to be made (at least from a financial point of view).
If you start adding DRM protected content to the mix or live streaming, the options regarding players which can play back everything and also offers a decent library feature is becoming rather small.
Actually it seems that it is almost impossible to get stuff to work without Windows Media player being involved at some point. The latest installment is Version 11 and the only improvement that I found so far is the looks of it. In almost any other aspect did the user lose something that wasn't trivial, but very important, only not used on a daily basis. With Microsoft Vista is only WMP 11 available and for XP users is it also getting harder and harder not to be forced to an upgrade from version 9 or 10 up to 11.
Well, lets say that I am stuck at this point with Media Player 11 and try ever since I started my project to make things work, only with marginal success to this date, unfortunately. I learned a lot of crap that I don't care about and didn't wanted to know about either, because it did not have to do with my problem and what I tried to accomplish. Only because you want to watch a European movie on your American TV, do you not know and learn what FPS, the unit of frequency that is equal to one cycle per second (Hertz), number of DOTs on the screen and stuff like that, right? I mean you just want to watch the freaking movie that you heard about or saw during your last trip to Europe and a friends house or movie theatre. Oh, if you want to know though,
be my guest.
Lets start talking about the issues one by one.Part 3. It Does Not Only Smell like ... It Actually Is ...1st WMP 11 does not like network shares very much, also not the ones that are mapped to a local drive letter and reconnected to again, every time the computer is started. With XP is it possible to specify a mapped drive as path and WMP 11 automatically changes the drive letter to the path using the network share instead.
For example "Z:\My-Media\" on "Computer-A", which is share "Shared-Music" on "Computer-B" mapped as "Z:" will be changed to "\\Computer-B\Shared-Music\My-Media\".
This does not work so well under Vista from what I have heard and the solution some guys came up with sounded very similar to the one that I came up with myself for different reasons. More to that in a second. Okay, WMP 11 on Windows XP is always indexing your stuff using the network share. This might be better, if you do not map the share all the time to your computer, because Media Player would still be able to access the files from your library, as long as it can see the other computer in the network, but you cannot move the storage locations around or change the name of it, even if you mapped the drive to the same local drive letter and have the exact same file structure as on the previous storage location. The option to use either or would be the best for not only this simple reason, but others as well, which are much more severe.
The problem with WMP storing the network location instead of the local drive letter are that in some cases WMP can't playback videos with certain codec over the network share (\\share\) and in other cases is it able to play back, but the "seeking" does not work (WMV files). Both of those type of video files play back fine in WMP, if I browse to them via Windows Explorer and say "play with" and select Media Player, because it uses in that case the drive letters where I mapped the network shares to.
I found
this MS Knowledge base article regarding this issue with the Intel Indeo video codec, which is the most severe, because the play back via opening it with a network path as reference does not work at all, WMP shows an error that does not make sense and that's it.
However I got also other issues with videos that were encoded with TMPGEnc MPEG-1 video codec and MPEG-1 Audio Layer 2 audio codec for example. The "seek" function does not work, but it works fine again, when opened via browsing the mapped drive and opening it from there.
Lets start talking about the issues one by one.Part 4. A Solution that Creates Another Problem, Thanks YouMicrosoft's recommendation is to not use a network drive (which is out of the question) or to convert all those videos to a different format using a codec that does not have these kind of issues. Fine, I would like to do that in one afternoon or over night in a batch job. So give me the list with all videos that were encoded with those codecs and I will use a converter that I bought in a bundle with other nice tools to convert it to something of your liking. Oh, you can't tell me... that's ... "inconvenient". No, I did not look through the library one by one yet, because I also have other things to do than sorting data by hand in an excel spread sheet. Oh, Excel has a sort and a filter option.. sorry guys, nothing against you (today).
So I thought to myself what happens, if I can get Media Player somehow to index files with the local drive letter instead of the network path. The add to library interface converts automatically local letters to network paths, but what happens if I change it back to the letters where Media Player stores to remember the paths it should crawl and check for new media files.
Part 5. You can't Trust ... Didn't Do YourselfI found something. Search the registry (click "start", "run" and enter "Regedit.exe" , then press CTRL-F or F3) for "TrackFoldersDirectories" (it's different in Vista. See comments of users
at this forum thread for details and info)
It should find a match like this (note: the search might run a while, depending on your computer and what you have on it).
HKEY_USERS\[s-some big numbers-dashes]\
Software\Microsoft\MediaPlayer\Preferences\TrackFoldersDirectories
(line-break added for editorial reasons)
That value should contain as data a simple number. This number should be the number of folders that you configured to be scanned by WMP minus 1. So if you told WMP to check 10 directory locations where it should look for files, the data for "TrackFoldersDirectories" should say "9". There are circumstances where it does not match and shows a larger number, but that is nothing to get worried about.
Under the same key "Preferences" should you also find Values like TrackFoldersDirectories0, TrackFoldersDirectories1, TrackFoldersDirectories2 .... TrackFoldersDirectoriesXX. Each of them should be string and have as data one of the directory locations the library should check. If there are some that are empty, this would explain why the data for TrackFoldersDirectories shows a higher figure than the number of directories that you actually specified. "TrackFoldersDirectories" simply states what the highest value is for X as in "TrackFoldersDirectoriesX". It starts with "0", which explains why the number is less than the actual directory count. It seems that Media Player expects to find values from 0 to the data value of "TrackFoldersDirectories" in the registry. TrackFoldersDirectories = 4 would mean that you have to have entries for:
TrackFoldersDirectories0 = C:\DIR1
TrackFoldersDirectories1 = C:\DIR2
TrackFoldersDirectories2
TrackFoldersDirectories3
TrackFoldersDirectories4
TrackFoldersDirectories5 = \\computer\share\DIR3
Even if you only have 3 directories specified as in my example, but TrackFoldersDirectories shows 4 (=5 records), all 5 records must be there, even if they have no value. Just as a heads up, if you are going to mess with them as I did. I did exactly that, changed all paths etc. and WMP started indexing nicely files with z:\ etc.
Part 6. WTF?Then it started to fall back to the same old behavior again and the network share names started to appear again. When I removed the files that were wrong (and for the most part duplicate) I killed (or WMP did) too much entries and lost some good ones. Media Player won't index some of the files for the sake of it, even though I specified that it should re-add files that were previously removed. I guess only a full rebuild will work. See:
Rebuilding your Library after WMP 11 f*cked it up.
The odd thing is that when I click on "Add Folders" to see if WMP changed my z:\ settings back to the \\share one is that it still shows z:\ for the folder destinations to search in.
I contacted Microsoft about all this, but they didn't even know what I am talking about and played stupid. I even sent them illustrations and a step by step explanation of the problem with links to their various own articles that point out some of the issues, but offer no solution (convert stuff, don't create a centralized media archive with a network storage in a local network to be shared between your computers at home... yeah right).
Part 7. Enough is EnoughWhat ticks me of the most is the lack of the basic option to say "Add THIS file to my god damn library .. NOW!" Here is the Genre, Artist, Composer, Release year or whatever.. just go and add it. If I could do that with multiple files that would even be better or how about the content of a play-list? There it takes the local drive path all by itself, if loaded from the mapped drive via Windows Explorer. It stores the Network path, if you add it with Explorer from a network path. tsts. Well, this issue is still unsolved, but I was getting new ones during my quest to create centralized library.
I found this post, which explains how to get WMP 11 to create its library files on a removable storage device.
Now I got the idea that I want to move my library to the network as well to avoid the need that each computer has to index and monitor the same stuff. All have the same network shares mapped to the same drive = all paths are the same, but I am not so certain yet, what WMP says if he (maybe) realizes that his library files reside on a network share that is mapped to local drive letter Z: :)
Part 8. Drops of Water in the DesertI got my Media-player to be able to play back .MOV and .FLV files what made me very happy. You can find links with details and downloads at the end of this post.
Now I have the problem how I can tell this stupid Library to add them to itself, because it still thinks that it cannot do anything with it... the player does, but the two do not seem to talk to each other very often or at least not very clearly.
Part 9. Swiped by a SandstormYou cannot backup DRM licences with WMP11, which is also great. I had to reinstall my laptop because of some other Windows "features" and could not save the licences. I did fortunately not buy anything from Google Video, my vendor is still in business, however, I can now go and contact him to get licences again for every single file. I think its two vendors, but I will find out once I played all files at least once to see who I have to contact because of a missing licence that I bought 2 years ago on some website.
Part 10. Radical Changes are in OrderI am seriously looking for practical alternatives to WMP, something that can handle large amounts of audio and video (I own a lot and converted all into digital format and mostly purchase stuff only in digital format now), it also must support the various video formats or must be expandable to add the support via plug in (AVI, MP3, MPEG, WMV, ASF, MOV, FLI, DIVX, WMA, WAV and now also the new RAT format) and last but not least be able to handle all this DRM bs. I started to look for unprotected versions of my stuff to be able to actually use it without the need to contact people, convince (proof) to them that I actually purchased the stuff to them get the honor again to watch or listen to what I actually paid for.
This is unacceptable and big time bull! I started 16 years ago with MS DOS 5.0 and after all those years am I hearing that things get easier. This is simply not true. Back then I could fix stuff myself. This is today impossible, even as advanced user. It's a full time job to keep up with everything that can go wrong. The booming video/audio space is worse than most others and the current workarounds and tricks used by manufacturer to make it somewhat work is to sacrifice security and broadcast all your stuff virtually publicly to anybody who knocks on the door and asks for it. If you are "lucky" then they even let anybody "in" and take a stroll across your network and peek into your stuff on your computers.
Part 11. I Did NOT Trade Satan for the Devilp.s. I use XP and and did not switch to the heap of bugs and junk called Vista, so the share your videos does not work.. well I can share with anybody but myself, because WMP 11 on XP is unable to access other shares. That works "great" if you have three computers with Windows XP pro and WMP 11 on them.. doesn't it.
Part 12. ApologiesSorry for the rant. It feels much better now. I just had it. I spent obviously too much time on trying to find a solution for a relatively simple issue. The non-existence has nothing to do with "too complicated" or "too exotic", the Internet is full of forum threads that end nowhere a real solution. The missing options are because of greed and to protect businesses from "pirates".. the irony with that is that it only makes paying customers mad and turn to pirates to get fixes for the things that were artificially broken.
Part 13. Some Band-Aid for the Open WoundsOkay, I will finish this (looong) post with something good, a list of very useful tools and resources to windows, codecs and windows media player.
- Windows Media Player Resources collection from Microsoft's website on Google Docs & Spreadsheets
- RAT-DVD Tools, Encoder and Decoder. The new revolutionary tool that lets you convert DVD's to a video file that has only 20-25% of the size, without noticeable quality loss. It's free and also has a plug-in for Media Player to play back the RAT DVD's there.
- Combined Community Codec Pack Project, a free codec pack with tools and a very good support infrastructure, resources and guides, such as this very detailed troubleshooting guide.
- FourCC (Four Character Code Codecs) list for a complete list of available .AVI video and audio codecs.
- Sherlock Codec Detective (actual download like, short .EXE file), a free powerful tool that shows you all codecs that are installed in your system and their status.
- GraphEdit (7zip compressed) draws the entire filter chain for you to look at. Only recommended for more experienced users.
- Free FLVSplitter (7zip compressed), which is a Flash Video codec. The archive contains "FLVSplitter.ax" and no install program. To install it, copy the file to "C:\Windows\System32\" and register it to Windows via "Start", "Run", "Regsvr32 c:\windows\system32\FLVSplitter.ax".
Alternative: How to play FLV files Guide at Afterdawn.com.
- How to play .MOV (Apple Quicktime) files Guide at Afterdawn.com.
- How to get WMP 11 to create its library files on a removable storage device?
- Rebuilding your Library after WMP 11 f*cked it up.
- SolveigMM WMP Trimmer Plugin, is a nice plug-in that lets you cut and save parts of a movie from within media player. No need to fire up an external cutter tool while you are watching a movie and see a scene you want to cut out for other purposes. It cost $20 or so, but you can test it out for 30 days, free of charge (trial version download).
- Windows Media Player News Group at Microsoft's Windows XP Newsgroup. I guess I will pay those folks over there a visit and point them to my post here.
- Also nice to have handy, the list of Microsoft OEMs, computer manufacturers who deliver their PC's with a pre-installed Windows system (who doesn't?) May be they have some help available for your own issues, if you yell at them hehe.
Cheers!
Carsten aka Roy/SAC
Update 2/16/2008: I started working on the move of the Media Player library to a network location and share it between my computers. I found out the hard way, that there is by default no reference anywhere, including the registry, about the location of the media library. Media Player must look for the hard coded location
"(User Directory*)\Local Settings\Application Data\Microsoft\Media Player\CurrentDatabase_360.wmdb"
. The user directory is usually
"c:\documents and settings\(username)"
".
I found
this interesting thread at a user forum, which first started to talk about how to speed up media player, but then became a discussion about the media player library in general. Along the way did I learn about a useful tool called
Link Magic to create so called "Junctions" in NTFS (basically mounting a directory to another directoy). I also learned that you can (and how) create Mount Points instead of Junctions to get a similar effect from the disk manager of windows itself.
All that was not a good thing to mess around with when it came to moving the library to a network share.I already feared to reach another dead end, but then came the posr that saved my day. You can change the path of the library by
adding an undocumented string value to the Windows Registry.
Open RegEdit and go to
HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences
Create a new String Value called "
LibraryDatabasePath
" and then open it to specify the location of the library. I simply entered the local drive, which is a mapped network share on the machine and sub directory that I created for the shared libary. I copied into that folder the local Media Player library of another computer and moved my local one to somewhere else to make sure that Media Player cannot find it.
When I started Media Player, it did really load the library from the network drive. Now I have to check how it behaves if I do the same with a second and later on a third computer. Multiple people accessing the same library might cause issues. To keep the potential problems to a minimum I will probably disable the check for new media files on all but one of the machines who will be designated as the sole indexer of new content for the library and then take it from there.