For several months now, I’ve been a beta tester of DivX Connected. For those of you, who don’t know what DivX Connected is, it is a small (size of a cigar box) electronic device that sits on your TV-set and via (W)LAN connects your network PCs to your TV, enabling you to play any DivX video you got stored on your PCs. Additionally it does work as MP3 juke box and slide viewer for your family photos.
For a few weeks now the box is out of beta and can be bought through Amazon. Here’s a link with more detailed specs.
For me the solution is just great. Finally I can access all my files without having to burn them on disks, can comfortably zap through the movies with the included remote control without having to move my bottom from the sofa to change a disk. I could have had all this by simply connecting my pc to the TV of course, but after a while the sound of the fans in the pc turned out to be quite annoying.
The offside of the solution was (apart from the fact that I put on even more weight) that I had lost the capability to watch my none DivX media. Well, thanks to an info that SeaBass from DivX “leaked” on the Connected forum, these days are over!
For the last two versions of the Connected server software, DivX had implemented support for Windows Media files. Could well be that this was their part of the deal with MS, who have recently announced that they are going to support DivX in the Windows Media Extenders. To support WMV the server application simply decodes the Windows Media files with the help of the corresponding Direct Show filters, on the fly re-encodes them to DivX and streams them to the box. Mission accomplished, here is support for WMV!
“So,” me* thought to himself, “what is possible for WMV, should be possible for other media formats as well!”
So first of all let’s take a look at the configuration file that SeaBass posted on the forum, to see how WMV support is configured (BTW: Shouldn’t it be there already, it goes to “C:\Program Files\DivX\DivX Connected\Bin\DivX Connected”.
Open the file in a text editor and you will see that it’s simply an XML file.
The first entry in the config section is a specification that describes a demuxer. A demuxer is the part of a DirectShow graph that is able to split a video into its elementary parts, normally a video and an audio stream.
<demuxers>
<demuxer>
<formatId>ASF</formatId>
<formatId>WMV</formatId>
<formatId>WMA</formatId>
<demuxerGuid>
0x187463a0, 0x5bb7, 0x11d3, 0xac, 0xbe, 0x0, 0x80, 0xc7, 0x5e, 0x24, 0x6e
</demuxerGuid>
</demuxer>
</demuxers>
ASF, WMV and WMA are file extensions being used for Windows Media files. The GUID is a globally unique ID for the Microsoft’s WM ASF Reader filter that works as file source filter and demuxer for any Windows Media file. Globally unique means, you’re pretty save to use it anywhere on this planet, and it will specify this filter. Not sure though, what the Martians use!
So, if we wanted to use other files than Windows Media with our box, we would need something that can demux them. Probably the best demuxing filter around is Haali’s Simple Media splitter, as it supports splitting of almost any media file I came across so far. The Matroska (MKV) project relies on it as well. You can get it here. Download and install it.
But hey, what’s the GUID for Haali?
How do we find out? Best tool I could find is RadLight Filter Manager. It does list all filters that are currently installed on your system, and apart from offering the great opportunity to completely bleep up your computer’s Audio/Video setup it will tell you the CLSID (Class ID, other term for GUID) of each and every filter on your system. Get it here
If you’ve done like I told you and installed Haali’s Media Splitter, after opening RadLight, you should see a branch named DirectShow filters in the tree that it displays. Click on the plus-sign to expand it and scroll down to “Haali’s Simple Media Splitter”. Click on the entry and then click the Copy CLSID button.
If you paste it here, you’ll get {8F43B7D9-9D6B-4F48-BE18-4D787C795EEA}.
Hm. This looks different from what the entry for WM ASF Reader looked. Well, it is just a different notation really.
Remove the curly brackets and the hypens and you end up with
8F43B7D99D6B4F48BE184D787C795EEA
Now group the characters, to make them match the following scheme
8-4-4-2-2-2-2-2-2-2-2
=>
8F43B7D9 9D6B 4F48 BE 18 4D 78 7C 79 5E EA
Finally, to tell the system that these values are in hexadecimal notation, add a leading 0x (zero x) to each group and separate each group from the other by a comma.
You’ll end up with
0x8F43B7D9, 0x9D6B, 0x4F48, 0xBE, 0x18, 0x4D, 0x78, 0x7C, 0x79, 0x5E, 0xEA
Voila, that’s the GUID for our new additional splitter in a format that the XML file can deal with.
Now we only need to specify which file extensions we want to see supported by it. I added MKV, MOV MPG TS and VOB to my setup, as these were the files I wanted to be supported.
So the complete section for our new demuxer looks like this
<demuxer>
<formatId>MKV</formatId>
<formatId>MOV</formatId>
<formatId>MPG</formatId>
<formatId>TS</formatId>
<formatId>VOB</formatId>
<demuxerGuid>
0x8F43B7D9, 0x9D6B, 0x4F48, 0xBE, 0x18, 0x4D, 0x78, 0x7C, 0x79, 0x5E, 0xEA
</demuxerGuid>
</demuxer>
As we don’t want to loose the already existent support for WMV, we add it to the already existent demuxer for Windows Media. So the whole demuxer block will now look like this
<demuxers>
<demuxer>
<formatId>ASF</formatId>
<formatId>WMV</formatId>
<formatId>WMA</formatId>
<demuxerGuid>
0x187463a0, 0x5bb7, 0x11d3, 0xac, 0xbe, 0x0, 0x80, 0xc7, 0x5e, 0x24, 0x6e
</demuxerGuid>
</demuxer>
<demuxer>
<formatId>MKV</formatId>
<formatId>MOV</formatId>
<formatId>MPG</formatId>
<formatId>TS</formatId>
<formatId>VOB</formatId>
<demuxerGuid>
0x8F43B7D9, 0x9D6B, 0x4F48, 0xBE, 0x18, 0x4D, 0x78, 0x7C, 0x79, 0x5E, 0xEA
</demuxerGuid>
</demuxer>
</demuxers>
So we now implemeted the capability to demux our files. But in order to enable the server software to re-encode them to DivX, we need to decode them as well. Thus we need to add support for the according video and audio formats, that we want to play.
This could be a real PITA if we had to do this for each and every format. Fortunately there is a one in all decoder, you already might have heard of: ffdshow (Thank you DivX for making me look so bad on DivX Labs. Now I can proove what I’m really worth).
Get the latest tryout version from here (preferably get the latest nightly build from clsid) and install it.
To cut things a bit shorter:
The GUID for ffdshow video decoder is:
<guid>
0x04FE9017, 0xF873, 0x410E, 0x87, 0x1E, 0xAB, 0x91, 0x66, 0x1A, 0x4E, 0xF7
</guid>
The FOURCCs (IDs) for the video formats we want to add support for are as follows
DivX = DX50 (I needed it to support DivX video in Matroska container.)
H264 = avc1
MPEG-1 = MPG1
MPEG-2 = MPG2
So the block for the video decoder looks as follows:
<decoder type = "video">
<codecId>avc1</codecId>
<codecId>DX50</codecId>
<codecId>MPG1</codecId>
<codecId>MPG2</codecId>
<driver>dshow</driver>
<guid>
0x04FE9017, 0xF873, 0x410E, 0x87, 0x1E, 0xAB, 0x91, 0x66, 0x1A, 0x4E, 0xF7
</guid>
<module></module>
</decoder>
The guid for the ffdshow audio decoder is as follows:
<guid>
0x0F40E1E5, 0x4F79, 0x4988, 0xB1, 0xA9, 0xCC, 0x98, 0x79, 0x4E, 0x6B, 0x55
</guid>
Here’s a usefull table to find the ID’s of the different audio codecs.
My audio decoding part looks like this (Supports MP4, MPA and MP3 iirc)
<decoder type = "audio">
<codecId>0x50</codecId>
<codecId>0x55</codecId>
<codecId>0x706D</codecId>
<codecId>0x20434141</codecId>
<codecId>0x33706D2E</codecId>
<codecId>0x5500736D</codecId>
<codecId>0x4134504D</codecId>
<codecId>0x50434141</codecId>
<codecId>0x6134706D</codecId>
<codecId>0xFF</codecId>
<driver>dshow</driver>
<guid>
0x0F40E1E5, 0x4F79, 0x4988, 0xB1, 0xA9, 0xCC, 0x98, 0x79, 0x4E, 0x6B, 0x55
</guid>
</decoder>
AC3 decoding gave me some grief. I couldn’t get it to work with ffdshow. Can be that it is due to my surround setup. So I additionally downloaded and installed AC3Filter from here.
So I got an additional block responsible for AC3 decoding.
<decoder type = "audio">
<codecId>0x2000</codecId>
<driver>dshow</driver>
<guid>
0xA753A1EC, 0x973E, 0x4718, 0xAF, 0x8E, 0xA3, 0xF5, 0x54, 0xD4, 0x5C, 0x44
</guid>
</decoder>
Put these three decoder blocks (ffdshow Video, ffdshow Audio and AC3Filter) into the decoders section and you should be done.
If you prefer to try for yourself, if you can get AC3 to work with ffdshow, just take the <codecId>0x2000</codecId> line and add it to the block of codec ids supported through ffdshow. In that case you can then delete the complete AC3Filter decoder block.
A few hints for ffdshow and AC3Filter configuration should you have troubles getting it to work.
- Ensure that the audio output of the filter is set to stereo.
- Limit the output sample rate to 16Bit PCM
- Disable all audio/video postprocesing filters
- Make sure, that the codecs you are using through ffdshow aren’t disabled
And most off all, don’t try to do this on a 8.5 MHz XT CPU! Remember the server needs to transcode your videos on the fly to DivX!
For those of you, who hate typing as much as I do, here’s the modified config for download. It works on my setup. Doesn’t necessarily mean it'll work at your place!
Now, send the kids to play and the wife to do some shopping. Happy hacking and most of all enjoy the show.
Have a nice weekend!
P.S.: Thanks to the guys who made all this possible. You're my heroes!
- kamiwa's blog
- Log in to post comments
- 22746 reads

Comments
Nice!
Great Job and what an awesome guide! :D
Developers, developers
Well, it wouldn't have been possibly without the developers, who architected the server software to support it. So our thanks really should go to them.
As Steve Ballmer from Microsoft once put it:
So thanks to Hari and the rest of the crew!
advantageous clothing
Wow -- indeed, he wears ... a sweat shirt. :D
Please Help
I have gone through the above numerous times and still cant get it to work, have checked the settings and gone through the config file from start to finish, still no luck, i can see even basic WMV files let alone MKV etc I have all the software recomended installed and configured as it should be but get nothing but AVI and DIVX files when scanning
HELP PLEASE its driving me crazy!
Checklist
Here is a checklist. The rest of the thread contains more useful information! Let me know if this worked for you!
FF & RW problems
Hi
The patch works ok,but i have one problem,i cannot FF or RW when i'm playing a mkv file.
thanks
steve
Yeah, I know! It's a known
Yeah, I know! It's a known issue! Use virtual chapter points instead, till somebody at DivX fixes it!
can't get this to work... pls assist
Hey, this is absolutely fantastic what you have done with the config file however I am a bit lost as I'm trying to replicate it on my machine as well... (been a beta tester for connected for a while now).
First of all, what specific codecs do you have installed for connected? For example, I have the vista codec pack, the ffdshow codec, the .mkv codec, various other codecs and then the audio ones including the ac3 codec. I am having a feeling that all of this is conflicting somewhere and what I should do is just have the divx codec, the ones listed here and that's it. would that be correct? If so, I can modify. To confirm as well, the config file should go in the same directory as the file that has the same name but no .config at the end of it, right?
When this is all complete, with the server software, I am unable to update to the latest one due to vista problems with the server software however I can imagine that this should work with the 2nd last server update (1.0.0 build 46)... r u using 1.0.1 build 15?
if my server build works, then how do I have the software notice my .mpg, .vob, .mkv, etc files, it doesn't show in the list.
Sorry for the all the questions but because this piece of news is probably the most wanted hack and addition, I am really wanting this to work... If anyone can help me with this, that would be greatly appreciated.
Thanks so much for anyone that can assist.
MKV & MP4 Not Detected & Not Playing
I have added the new DCDshowPlaybackPlugin.config file by kamiwa, and I am now able to play .MPG files, but I can’t play .MKV files which do play in Widows Media Player if I select “Open With…”, or .MP4 files encoded with Nero which also play in Windows Media Player if I select “Open With…” Both .MKV and .MP4 show the ffdshow icons in the system tray when playing these formats with Windows Media Player. I added support for .MP4 files by adding <formatId>MP4</formatId> and
<codecId>H264</codecId>
<codecId>X264</codecId>
<codecId>BSSH</codecId>
<codecId>DAVC</codecId>
<codecId>PAVC</codecId>
<codecId>AVC1</codecId>
<codecId>NDSC</codecId>
<codecId>NDSP</codecId>
<codecId>NDSS</codecId>
<codecId>NDXC</codecId>
<codecId>NDXH</codecId>
<codecId>NDXP</codecId>
<codecId>NDXS</codecId>
Case Sensitive
At least for avc1 I know, that it must be lower case letters.
Perhaps this can be of additonal help: (Taken fronm the thread on http://connunity.com/forum/viewtopic.php?p=25)
Well, the reason for a file not showing up is normally the fact that the system needs to be able to decode both streams. So if either the codec for the audio stream or the video stream is missing the files won't show up at all.
On another case I came across here, it was the fact that the file additonally contained subtitles, which couldn't be decoded. The only way I got it to work, was to remux the file with mkvmerge without the subs.
Actually think that this is an issue the DivX devels will still have to look into. (Devels do you hear me?)
If your files show up but don't produce any sound, it means that both streams get recognized correctly and that the codecs to decode are there.
Normally it's the audio output configuration then. Check ffdaudio again, and make sure that the audio output is limited to 16bit (there are actually two places in the configuration where you can do this). And for the time being output must be limited to stereo as well.
If the audio is AC3, disable AC3 decoding in ffdshow and see if you can get a result with AC3Filter (again: configuration of AC3Filter must be Stereo and 16bit).
Whenever you change the configuration, close connected, restart the DivX Content Management service under Windows Services and then restart Connected and rescan. I know that this procedure is a PITA. But that's the only way to mke sure that every change will be picked up ok.
Thanks
Lower case fixed the problem.
MP4?
Hello, did you manage to get MP4 support in DivX Connected? Just like you I can play them in Windows Media Player using ffdshow, and have added the codes just like you mentioned above (small caps for avc1) but I still can't see mp4 files in DivX Connected ... any advise?
thanks
Paul
Solution
Regarding MP4 support: Look here!
Answers
1.) Config file goes to to the same directory, where DivXConnected.exe is located. Normally that is "C:\Program Files\DivX\DivX Connected\Bin\DivX Connected"
2.) Yes, you need the latest server build
3.) If, and only if, you got the same codecs installed as described in the guide, the config file will work for you. If not, it will be useless to you and can only be used as an example for what has to go where!
4.) If everything is configured correctly, the files will show up after you did a rescan!
PLEASE READ THE GUIDE! I did explain it, the best I can, and I can't do it any better here, by just repeating it.
MCE DVR-MS
Hi, I'm going to give this a go I think. One thing though, is it possible to get DVR-MS files streamed also? Sorry if that should be an obvious answer by looking at the rest of the thread.
Cheers
ED
MCE DVR-MS
I haven't tried, but in general anything that can be played through DirectShow should work. So if you've gotten a DirectShow filter installed that can decode your MCE DVR-MS files add it to the config and check it out.
Thank you very much
Thank you very much for making this possible.
One thing tough: I'm having problems including videofiles that are made with my crappy digital cam. The Videocodec is MJPG, Audio Codec is DVI ADPCM (0x0011). AVI as Container. Plays fine with fddshow on the PC but I coudn't edit the config file so that it would play on the DivX Connected box. Maybe you could help me out a little.
Thanks and keep up the good work (As I've seen you also kept the Dr. alive ;) ).
CodecID for MJPG
The tricky thing about it is to "guess" the right CodecID for the MJPG video.
According to the codec configuration page inside the ffdshow video codec, the supported FourCCs for MJPEG are
MJPG, LJPG, MJLS, AVRN, MJPA, SP5X and MJLS. These don't necessarily have to be uppercase, could be lowercase as well.
Fraid you have to try 'em out. Good luck! I keep fingers crossed. And let me know how it went!
MKV-files with DTS audio not recognized?
Perhaps someone can help me with this one --
A lot of the MKV-files I download are encoded with x264 for video and DTS instead of AC3 for audio. These files do not show up in the Connected server. How do I enable this -- is it a matter of setting the right configuration for ffdshow audio (tried, but can't find what I need to change) or do I need to edit the config file?
A bit of extra info: I
A bit of extra info:
I managed to get half my files working by toying around with GSpot. Turns out there are four types of MKV-files:
1: Video=AVC1, Audio=DOLBY_AC3
2: Video=AVC1, Audio=0x2001
3: Video=WVC1, Audio=DOLBY_AC3
4: Video=WVC1, Audio=0x2001
Files (1) worked from the get-go. Files (2) worked after I added a line in the .config that includes not only 0x2000 but also 0x2001 to be decoded with ffdshow. However, (3) and (4) are not working. For the record, I have a brand-new XP installation with WMP11.
I see there's a disclaimer in the config-file about WMV1, but the two sections listed right underneath are EXACTLY identical (or I'm blind). Is this an error in the config?
WVC1
dmo
0xc9bfbccf, 0xe60e, 0x4588, 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85
WVC1
dmo
0xc9bfbccf, 0xe60e, 0x4588, 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85
In order to get WVC1 working, do I need to change any of this around???
Connected and M4S2 video
Thanks for this great guide, kamiwa.
I was wondering if you could help me find an elegant way to playback video encoded in Microsoft ISO MPEG-4 version 1.1 (M4S2) in an .avi container. This is the format recorded by my digital camera. It is decoded on Windows machines only through a DirectShow filter. I have tried various adaptations of the XML file to no avail... yet it seems like it should be simple considering the support for WMV. Any thoughts would be greatly appreciated!
First of all, what specific
First of all, what specific codecs do you have installed for connected? For example, I have the vista codec pack, the ffdshow codec, the .mkv codec, various other codecs and then the audio ones including the ac3 codec. I am having a feeling that all of this is conflicting somewhere and what I should do is just have the divx codec, the ones listed here and that's it. would that be correct? If so, I can modify.
When it comes to codecs, less is often more. Basically the ones included in the All-In-One pack are enough to play 99.9% of the stuff you find out in the wilderness.
To confirm as well, the config file should go in the same directory as the file that has the same name but no .config at the end of it, right?
Yep, your assumption about the location of the config is correct as well.
Also I think I want to put an embedded player on my petition site so users can add youtube videos right into their petitions.
Feel free to do whatever you like with your site. It's all yours!