First, add me as one of those for which things just work. Anything that does not play directly works fine through transcode.

But I think I have noticed one thing that could be improved, at least on windows. It appears that reading from disk is not using buffering. While transcoding this is not so noticeable when the buffer have filled up but it looks like the -cache option to mencoder makes it even less noticeable when I test.

For serving of simple files it feels much more noticeable (especially when copying files) and the way I read the code (not knowing how DNLA works) it looks like every request for a set of bytes from a file is served by creating a new FileInputStream (opening the file), seeking to the asked for position and then reading the amount of bytes requested followed by discarding the input stream? Keeping a BufferedInputStream around along with the File should help with that, but of course you then have to maintain that in some way with timeouts or lists or something.