An easy-to-use media server for your home network

Media Distributor

Article from Issue 233/2020

Home media servers like Kodi or LibreELEC are feature-rich but difficult to set up. Serviio promises to make things simpler.

A media center is a computer or computer-like system that plays multimedia content to a playback device. Many media centers are configured to stream media files (music, video, or images) to a home television set, but you can also use a media center to stream to a game console, mobile device, or computer. The FOSS universe includes several Linux distributions that are designed to serve in the media center role – including Kodi and LibreELEC – but some users consider these tools too complicated for a casual home environment. The complex functions of the common media center can overwhelm many users and often require advanced knowledge.

If you are looking for a media server for your home network that sets up quickly, is immediately ready for operation, and streams content to any computer or DLNA-compatible TV, game console, or MP3 player, then Serviio [1] might be the right choice for you. The Java-based Serviio media server comes from a fairly young company, Six Lines Ltd., based in the county of Northamptonshire in England.

The Serviio software is subject to a proprietary license. You can choose between a free version and a commercial Pro version, which costs a one-off fee of $25. Serviio Pro has some additional functions not available in the free version, such as a web-based media browser and an app for Android devices. Serviio uses free libraries, such as FFmpeg, x264, and the LAME MP3 encoder.

The Serviio server also supports less common video and audio formats and understands popular image, playlist, and subtitle formats. You can pick up the server as a tar archive of only about 30MB from the project's website. The download version is the Pro edition, but it will automatically switch to the free version after 15 days if you do not purchase a license.


First unpack the downloaded Serviio tarball in a subdirectory of your choice. Then change to the serviio-2.0/bin/ directory, where you need to call the ./ script. As a prerequisite, you need to have installed the FFmpeg libraries and a Java Runtime Environment. If these components are not in place, the script terminates and displays an error message; otherwise the server starts – but without reporting successful completion.

Now, switch to your web browser, and then enter the following in the address bar to launch the configuration interface:


If you replace localhost with the IP address of the server, you can access the dashboard from any other computer on the network (Figure 1).

Figure 1: Using the dashboard to configure the Serviio media server.

The command center is tidy and has a modern, split interface. Choose a menu option on the left, and the various settings associated with the menu item appear on the right.


To make your content available via the server, select the Library option in the menu on the left of your screen. Choose Shared folders to add the local subdirectories where your multimedia content will reside.

To add the subdirectories, click on Add and, under Media Type, first define whether you mean pictures, movies, or music. If the directory contains mixed media content, you can enable multiple media types. Then click on Browse… to the right of the folder display below to open a file manager in which you can select the folder on your system you wish to share. A click on OK enters it in the folder display. Please note that Serviio also recursively adds the subfolders. To make sure that more meaningful names appear in the list instead of the directory names, assign a suitable name in Display name.

After entering all the folders, click on Save at bottom center in the window; Serviio now refreshes the display. If you want to make modifications to a folder setting or delete individual folders, click the small triangular icon to the right of the list entry next to Edit. From the list, select whether you want to edit or delete the folder; deletion happens without a prior confirmation prompt. If you delete accidentally, you can undo the action by clicking on Reset at the bottom of the window.

By default, the software permanently checks the contents of the defined directories for up-to-dateness and refreshes the display if necessary. If you don't want this, uncheck the boxes for Update shared files and Update library automatically. The server is then ready for streaming (Figure 2).

Figure 2: Serviio manages the contents of local directories in Library and makes them available for streaming.

To integrate online services, use the Library option in the Library menu. After calling the Add option, you can integrate sources from RSS feeds or HTTP streams in Serviio. To integrate online sources, you just need to save the URL, including the media type. A meaningful name and a preview for the display round off the options.

Serviio also offers you the option of restricting access to the content. Choose the Users group on the left side of the main window. The corresponding settings menu on the right side of the window lets you define users and passwords. In the directory settings, check the boxes to determine which users are granted access to what content. The users then need to log on to the server in a login dialog if they want to access the shared data directories.


For those devices on the network that do not support the file format of the source streamed by Serviio, the server offers the option of transcoding the content on the fly. However, this option is only possible for devices for which Serviio has its own profile, usually TVs and game consoles (see the box entitled "Profiled"). PCs that work with DLNA-compatible software do not benefit from transcoding.


Serviio comes with profiles for various end devices, which means that it cooperates without any problem with many TV sets, as well as with popular gaming consoles. If the end device does not play a file format supported by Serviio, the server detects this from the profile and transcodes the file during the streaming process so that the device receives a playable data stream.

If no profile exists for the playback device, you can create a separate profile for it in the config/profiles.xml of the server installation directory. The manufacturer provides detailed instructions for creating a profile [2]; however, the tutorial does presuppose advanced knowledge of codecs and playback devices.

By default, content transcoding is enabled. You can set individual options for this in the Distribution | Transcoding dialog. Specify the storage path for the temporary files and the number of CPU cores you want to dedicate to transcoding. Some settings can also be made for audio tracks. Note that, for high-definition videos, sufficient storage capacity must be available for the temporary files. Otherwise, the stream might be interrupted due to capacity bottlenecks, especially if you are streaming high-res movies.

The Subtitles and Languages menu items let you set different options for handling multilingual movies and movies with subtitles. Serviio reads both fixed and variable subtitle tracks. In the language settings, you can define the preferred language selection for multilingual video films, both for audio and subtitle tracks. Note that for fixed subtitle tracks, Serviio will always retranscode when you switch tracks.

The Metadata group lets you use preview images to make the list of your content clearer and more attractive. The server loads the preview images, which might include DVD or Blu-ray covers, from various online databases as required.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More