MediaTomb

FAQ

General

My UPnP player can not see MediaTomb, what is wrong?

Network related problems can be difficult to track, here are some most frequently encountered cases:

  • make sure that both, the player and the server are on the same subnet, otherwise UPnP will not work
  • check if you can ping the player from the server, if this is not possible then you have some general network issue
  • if you have several network interfaces, check that MediaTomb is running on the correct one (you can set the default interface in config.xml)
  • make sure that your firewall is not blocking the server, port 1900 has to be open as well as the port on which the server is running (i.e. web UI port), both TCP and UDP

Why is the port of the web UI changing when I restart the server?

If the port was not specified on command line or in the configuration, MediaTomb will choose the first available port, starting from 49152. When you shutdown the server the port may still be claimed by the system for a short amount of time, thus if you restart MediaTomb we will request port 49152, get back the information that it is not yet available, so the UPnP SDK will automatically try the next port until it finds a free one.

You can however specify a fixed port for the server, in this case we will apply a special reuse option to the socket and we will always listen on the specified port. This can be done by setting <port>number</port> the config.xml

MediaTomb crashes when importing data, I see something about libavformat or libavutil in the log...

Your ffmpeg library is probably buggy, update it to the latest version. Alternatively, recompile MediaTomb without ffmpeg support.

Note, that running ffmpeg -i filename on a file that causes the issue will reproduce the problem in the terminal. If you can reproduce the crash on the command line using ffmpeg, please consider reporting it to the ffmpeg developers.

How do I make MediaTomb start automatically ?

Debian
  • Edit the file /etc/default/mediatomb
  • Change NO_START=“yes” to NO_START=“no”
  • run “sudo /etc/init.d/mediatomb start”

Mediatomb should now be running, and will be started automatically at boot.

  • MediaTomb is now using /etc/mediatomb/config.xml , not the one in ~/.mediatomb.
  • MediaTomb runs as the user:group mediatomb:mediatomb now, so make sure the permissions on you files/dirs are set right.
Ubuntu

This SHOULD have worked on ubuntu too, but it doesn't. Since mediatomb gets started before Network Manager is done setting up all the network connections, mediatomb will fail to find a working networking device and exit.

Easiest way to fix it is to just launch mediatomb when you login.

  • Launch the Sessions Preferences program ( System→Preferences→Sessions )
  • Click “Add”
  • Name: Mediatomb , Command: mediatomb -d
  • Click “Add”

Now mediatomb will start when you log in. Your config file will be in your home dir, ~/.mediatomb/config.xml

This should work on any other distro using gnome too. There are similar methods of starting programs on login in kde/xfce/whatever too.

Player Quirks

My player wants a non-standard mimetype for my content, how do I change it?

Add a custom extension to mimetype mapping in config.xml.

For example, if you want that all .avi files get the video/x-divx mimetype, use the following mapping:

<map from=“avi” to=“video/divx”/>

The mapping is only triggered when the data is being imported, the setting will not affect content that is already in the database. If you want to update previously imported files you will have to reimport them: remove from the database and add them again.

My player supports some .avi movies, but not all (eg PS3)

A good example is the PS3: It supports many variations of the divx codec, but not the DIV3 version. (maybe others too).

The PS3 will say “the data is damaged” when trying to play such a movie.

I assume here the movie is in avi container. The solution is transcode this specific codec version based on the fourcc string. In the mimetype-profile-mappings section, put:

<transcode mimetype=“video/divx” using=“video-common”/>

You can take the video-common transcoding profile/script from various places, I won't repeat that here. Then, you must add this to your video-common transcoding profile:

<avi-fourcc-list mode=“process”> <fourcc>DIV3</fourcc> </avi-fourcc-list>

This makes sure you will not transcode any avi, except DIV3 (you can add more if you player doesn't support more)

You can still use this profile for non-avi movies also, the avi-fourcc-list block only accepts avi movies.

My Player is unable to play some MP3 files

If this is the case:

  • Your MP3 directory is set to the Inotify scan mode.
  • Your MP3 has an album art image in its ID3 tag.

Then you have hit the taglib problem where taglib opens the mp3 in read-write mode instead of read only.

There are two possible fixes:

  • Use the Timed scan mode on your MP3 directory instead of Inotify.
  • chmod your MP3 file to read only.

This problem has been reported to taglib but it's unlikely we will see a fix any time soon.

Scripting

I modified the import.js script, but I see no changes when importing data, what's wrong?

You probably forgot to change the virtual layout type from builtin to js in config.xml:

<virtual-layout type=“js”>

Also, make sure the line:

<import-script>/etc/mediatomb/import.js</import-script>

Points to the correct location where your import.js resides.

Debugging

How do I check what XML is offered to the UPnP devices?

Get the Cidero control point from http://www.cidero.com (free download), run the MediaController application. Open the debug window: Options→Debug Window…

In the main window click on the MediaTomb icon, you will be presented with the content (i.e. with the content layout which you can also see on your UPnP device). Each time you click on a container in the tree you will see a “MediaTomb: Browse Status: OK” entry in the debug window. Click on this line in the Debug Window and you will see the XML of the browse response below.

Jin asked me for a wireshark capture, what do I do?

First of all, make sure that you make the capture on the machine where your MediaTomb server is running. Download and install wireshark on that machine, start wireshark. Make sure to select the correct network interface for the capture - it must be the interface on which MediaTomb is running. Start the capture, start MediaTomb, then start your UPnP player. Reproduce the problem which you are debugging, then stop the capture and save it in pcap format.

 
faq/faq.txt · Last modified: 2008/12/01 12:56 by jin