Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
The following is a list of frequently asked questions for Universal Media Server. Click on the questions below to see the answer. You can then click on the name of the question above its answer to go back to the menu.
Yes, and it always will be.
UMS was started with the belief that more can be achieved with a fresh start with new people and new ideas.
Donations are very appreciated, they help us with server costs. You can use the button below:
Another way to contribute is to donate hardware so we can test it ourselves, so if you are upgrading to a new device and have no need for the old one please consider it.
When using the default options in UMS, no codecs are needed. The only time you need codec is to use the AviSynth engine. In that case we recommend using K-Lite Mega Codec Pack. If you already have codecs or a codec pack installed, uninstall them first and restart the computer before installing K-Lite. In the installer options select "Lots of stuff", the rest can be left at defaults.
There are three ways to set up UMS for custom profiles:
You can select a custom profile (i.e. UMS.conf) or create a new one by launching UMS via the "Universal Media Server (Select Profile)" Start Menu shortcut on Windows and Linux. A similar shortcut/launcher may be available in builds on other platforms.
A profile can be loaded by navigating to a directory with a saved .conf file and selecting it.
A profile can be created either by navigating to a directory without a UMS.conf file (the profile will be saved there as UMS.conf), or navigating to any directory and manually adding the profile filename (with a .conf extension) after the directory in the file name field.
Note: new profiles should be saved via the Save button in the GUI if they are to be reused, and each profile should use a different port if it needs to run at the same time as other profiles.
To distinguish between different profiles in the renderer, set the name option (this must currently be set manually in the .conf file) e.g.:
name = My Profile
If no name is specified, the hostname is used. 2. Environment Variable (Advanced):
UMS also supports multiple profiles by means of the UMS_PROFILE environment variable.
If this variable is unset, the default profile directory is used to locate UMS.conf (and WEB.conf, if used).
If UMS_PROFILE is an absolute or relative (to the working directory) path pointing to an existing directory, then UMS.conf is loaded from and saved to that directory. If UMS_PROFILE is set, but doesn't point to an existing directory, it is assumed to be a relative or absolute path to a profile file. Note: while the file doesn't need to exist, the directory containing it must exist if the file is to be saved.
UMS_PROFILE=UMS.conf ./UMS.sh UMS_PROFILE=relative/path/to/profile.conf ./UMS.sh UMS_PROFILE=/absolute/path/to/myprofile.conf ./UMS.sh
- Property (Advanced):
The profile file/directory can also be set via the ums.profile.path property e.g.
java -Dums.profile.path=/path/to/UMS.conf net.pms.PMS
This can often be fixed by uninstalling Java, restarting the computer, then installing it again.
Usually this is due to wireless connections being too slow. To make the videos use less bandwidth you can go to the Transcoding Settings tab and select a new value in the "Video quality settings" option. Try moving down the list until your video plays smoothly.
Make sure your language is in your priority list. You can do this by going to the "Transcoding Settings" tab, then selecting the "Subtitles settings" tab on that page, and add your language to the "Subtitles language priority" input box. If that doesn't fix it, the subtitle probably doesn't exist for your language.
The most likely reason is that your priority settings are not what you would prefer. You can see your priority settings on the Transcoding Settings tab, in the Subtitles settings section of that tab.
The default value for the "Audio/subtitle language priority" setting for English users is:
Which means: If the audio is English, turn subtitles off. If the audio is anything else, display either English or Undefined subtitles.
If you would like to always display subtitles, you can change it to something like:
Or just leave it blank.
In the future, there will be a more graphical way to choose your priorities.
My device is not supported by UMS. How can I create a custom renderer.conf to make UMS recognize my device?
UMS contains a directory "renderers" which contains the renderer configuration profiles for all devices that are supported. Every configuration profile serves two purposes:
- Allow UMS to recognize a specific renderer when it tries to connect - Define the possibilities of that renderer
When UMS does not recognize your device properly, it means none of the renderer configuration profiles (or the wrong one) matches your device. The result is that UMS displays an "Unknown Renderer" or an unrelated device, and since it does not know the possibilities of your renderer, it cannot provide optimized output for your device.
Solution: You can try creating your own renderer configuration file. For a detailed description of all available options in a configuration file, examine the file "DefaultRenderer.conf". The steps below explain how to create a basic .conf file.
Shut down UMS.
Create a directory named "backup" and copy all .conf files in the "renderers" directory to it.
Remove all .conf files from the "renderers" directory.
Choose the .conf file that matches your device most. For example, if your Samsung TV is not recognized, "Samsung.conf" might be a good place to start from. If you do not know which one to choose, pick "DefaultRenderer.conf" as starting point.
Copy the chosen .conf file to the "renderers" directory and rename it as your device.
Open your .conf file with your favorite text editor. Look for the line that defines "UserAgentSearch" and change it to:
UserAgentSearch = This should not match anything
Look for "UserAgentAdditionalHeader" and "UserAgentAdditionalHeaderSearch" as well, make sure they are empty:
UserAgentAdditionalHeader = UserAgentAdditionalHeaderSearch =
- Start UMS
- Connect your device to UMS. If possible, try to browse UMS and play some media as well. Chances are it does not work at all. This is fine, since we are only after logging information.
- Open the file "debug.log". If you do not know where it lives on your file system, there is a button "debug.log" on the "Traces" tab in UMS that will open an editor.
- Shut down UMS
- Look for lines containing "User-Agent" in your "debug.log" and examine the "Received on socket" lines, for example:
[New I/O server worker #1-1] TRACE 11:05:50.702 Received on socket: Date: Sun, 02 Oct 2011 09:12:22 GMT [New I/O server worker #1-1] TRACE 11:05:50.702 Received on socket: Host: 192.168.0.16:5001 [New I/O server worker #1-1] TRACE 11:05:50.703 Received on socket: User-Agent: UPnP/1.0 [New I/O server worker #1-1] TRACE 11:05:50.703 Received on socket: X-AV-Client-Info: av=5.0; cn="Sony Computer Entertainment Inc."; mn="PLAYSTATION 3"; mv="1.0";
These lines were captured from a PlayStation 3 trying to connect to UMS and play some media files. The first two lines are not relevant, but the last two are interesting. They identify the device to UMS.
When you search the "debug.log", you might find that the identifying information is not always the same for each request.
For example (edited for readability):
Received on socket: User-Agent: PLAYSTATION 3 ... Received on socket: User-Agent: UPnP/1.0 Received on socket: X-AV-Client-Info: av=5.0; cn="Sony Computer Entertainment Inc."; mn="PLAYSTATION 3"; mv="1.0"; ... Received on socket: User-Agent: UPnP/1.0 DLNADOC/1.50 Received on socket: X-AV-Client-Info: av=5.0; cn="Sony Computer Entertainment Inc."; mn="PLAYSTATION 3"; mv="1.0";
As you can see, the device does not always send the same "User-Agent" information. Now you need to integrate this knowledge into your .conf file: 12. Extract all different "User-Agent" snippets from the "debug.log" and copy them into your .conf file as a mental note. For example:
PlayStation 3 uses the following strings:
User-Agent: PLAYSTATION 3 --- User-Agent: UPnP/1.0 X-AV-Client-Info: av=5.0; cn="Sony Computer Entertainment Inc."; mn="PLAYSTATION 3"; mv="1.0"; --- User-Agent: UPnP/1.0 DLNADOC/1.50 X-AV-Client-Info: av=5.0; cn="Sony Computer Entertainment Inc."; mn="PLAYSTATION 3"; mv="1.0";
- Edit the "UserAgentSearch" so it matches the headers that you discovered. If there are extra headers that can help with identification, use the "UserAgentAdditionalHeader" and "UserAgendAdditionalHeaderSearch" settings as well. For the PS3, this results in:
UserAgentSearch = PLAYSTATION UserAgentAdditionalHeader = X-AV-Client-Info UserAgentAdditionalHeaderSearch = PLAYSTATION
These lines should be interpreted as [i]"if the 'User-Agent' header contains 'PLAYSTATION' or if the 'X-AV-Client-Info' header contains 'PLAYSTATION' we have a definite match with the PS3"[/i].
Note that we did not try to match "UPnP/1.0". That string is too generic; another device might use the same string and UMS would wrongly identify it as a PS3. Hence the match for 'PLAYSTATION', which is very specific for the PS3 and no other device. Be sure to look for a specific match for your device as well.
Now UMS will be able to positively match your device to your .conf file. From now on, it will use your .conf file to determine what the device is capable of. Try to determine what formats your device supports, using its manual or Google.
- Configure the .conf file for your device. Refer to "DefaultRenderer.conf" for a detailed description of each option. At the very least, make sure you configure these settings:
Video Audio Image MediaInfo TranscodeVideo TranscodeAudio
You can uncomment other settings if you are not sure they would work for your device.
Tip: If you define
MediaInfo = true and do not define any "Supported" lines, UMS is forced to transcode everything. This is the best way to find out the correct values for
TranscodeVideo = and
TranscodeAudio = for your device.
- Start UMS and connect your device to it. UMS should recognize it now. If your device is not recognized, return to step 14
- Try to open media. If it does not work, try different settings for the "TranscodeVideo" and "TranscodeAudio" options in your .conf file. See "DefaultRenderer.conf" for a detailed description of the options.
From there on, you can tune your .conf file by adding "Supported" lines and configuring more options. Use the backup .conf files of similar devices for inspiration.
Restart UMS every time you want to view the results.
Be sure to share your working results on the Alternative Media Renderers forum.
This is a bug caused by a PS3 firmware update and was first reported in early June 2012. You can fix it by reverting to an older version of the PS3 firmware or just by restarting your PS3.
Read carefully your DefaultRenderer.conf and UMS.conf configuration files, and tweak your renderer as necessary to satisfy your needs.
Please, consider taking the time to report your enhancements to UMS community. Thank you ;-)
Disable the firewall(s) and anti-virus running on your computer, your router should protect you but if you are scared you can disconnect your computer from Internet access while doing that test, and then run UMS for a new try.
After that, if it work as expected, you will just need to configure your firewall / anti-virus correctly.
If that didn't helped, consider edit your UMS.conf file found into your profile folder, and add this line:
chromecast_extension = false
Then run a new time UMS for an other try.
Note: macOS users will find their UMS.conf file following this path: /home//Library/Application Support/UMS