Gerbera is a UPnP media server which allows you to stream your digital media through your home network and consume it on a variety of UPnP compatible devices.
Pull requests are very welcome and reporting issues is encouraged.
Gerbera was originally based on MediaTomb
View our documentation online at http://docs.gerbera.io.
- Browse and playback your media via your network on all kinds of devices.
- Web UI with a tree view of the database and the file system, allowing to add/remove/edit/browse your media
- Metadata extraction from MP3, OGG, AAC, M4A, FLAC, JPG (and many more!) files.
- Media thumbnail support
- Highly flexible media format transcoding via plugins / scripts
- Automatic directory rescans (timed, inotify)
- User defined server layout based on extracted metadata
- Supports last.fm scrobbing
- On the fly video thumbnail generation
- Support for external URLs (create links to internet content and serve them via UPnP to your renderer)
- Runs on Linux, BSD, Mac OS X, and more!
- Runs on x86, ARM, MIPS, and more!
Head over to the docs page on Installing Gerbera.
Gerbera uses CMake.
# Assuming Ubuntu base
git clone https://github.com/gerbera/gerbera.git
mkdir build
cd build
cmake ../gerbera -DWITH_MAGIC=1 -DWITH_MYSQL=1 -DWITH_CURL=1 -DWITH_JS=1 \
-DWITH_TAGLIB=1 -DWITH_AVCODEC=1 -DWITH_FFMPEGTHUMBNAILER=1 -DWITH_EXIF=1 -DWITH_LASTFM=1
make -j4
sudo make install
Alternatively, the options can be set using a GUI (make sure to press "c" to configure after toggling settings in the GUI):
git clone https://github.com/gerbera/gerbera.git
mkdir build
cd build
cmake ../gerbera
make edit_cache
# Enable some of the WITH... options
make -j4
sudo make install
- The default
cmake
is too old. We need to install the latest:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
| gpg --dearmor - \
| sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
sudo apt-get install cmake
- Install GCC 9:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-9
libspdlog-dev
is built with an internal version oflibfmt
. It needs to be re-built withSPDLOG_FMT_EXTERNAL
so it doesn't conflict with gerbera'slibfmt
.libspdlog
1.7.0 requireslibfmt
5.3.0 (apt install libfmt-dev
installs version 4.0.0), gerbera requireslibfmt
7.0.0 theapt
installed version is too old.
sudo apt-get install autoconf uuid-dev libtool libpugixml-dev \
libsqlite3-dev duktape-dev libcurl4-openssl-dev libtaglib-cil-dev \
libtag1-dev libmagic-dev libexif-dev libebml-dev zlib1g-dev
sudo ./scripts/install-pupnp.sh
sudo ./scripts/install-fmtlib.sh
sudo ./scripts/install-spdlog.sh
env CXX=g++-9 CC=gcc-9 cmake .. -DWITH_MYSQL=0 -DWITH_MATROSKA=0
apt-get install uuid-dev libsqlite3-dev libmysqlclient-dev \
libmagic-dev libexif-dev libcurl4-openssl-dev libspdlog-dev libpugixml-dev
# If building with LibAV/FFmpeg (-DWITH_AVCODEC=1)
apt-get install libavutil-dev libavcodec-dev libavformat-dev libavdevice-dev \
libavfilter-dev libavresample-dev libswscale-dev libswresample-dev libpostproc-dev
The following packages are too old in 16.04 and must be installed from source:
taglib
(1.11.x), and libupnp
(1.12.x).
libupnp
must be configured/built with --enable-ipv6
. See
scripts/install-pupnp.sh
for details.
The Gerbera Team maintains a Homebrew Tap to allow for easy installation of Gerbera Media Server on macOS.
https://github.com/gerbera/homebrew-gerbera
Lib | Version | Required? | Note | Compile-time option | Default |
---|---|---|---|---|---|
libupnp | >=1.12.1 | XOR libnpupnp | pupnp | ||
libnpupnp | >=4.0.11 | XOR libupnp | [nppupnp] | ||
libuuid | Depends on OS | On *BSD native libuuid is used, others require e2fsprogs-libuuid | |||
pugixml | Required | pugixml | |||
libiconv | Required | ||||
sqlite3 | Required | Database storage | |||
zlib | Required | ||||
fmtlib | 7.0.0 | Required | |||
spdlog | 1.7.0 | Required | |||
duktape | 2.1.0 | Optional | Scripting Support | WITH_JS | Enabled |
mysql | Optional | Alternate database storage | WITH_MYSQL | Disabled | |
curl | Optional | Enables web services | WITH_CURL | Enabled | |
taglib | 1.11.1 | Optional | Audio tag support | WITH_TAGLIB | Enabled |
libmagic | Optional | File type detection | WITH_MAGIC | Enabled | |
libmatroska | Optional | MKV metadata | WITH_MATROSKA | Enabled | |
ffmpeg/libav | Optional | File metadata | WITH_AVCODEC | Disabled | |
libexif | Optional | JPEG Exif metadata | WITH_EXIF | Enabled | |
libexiv2 | Optional | Exif, IPTC, XMP metadata | WITH_EXIV2 | Disabled | |
lastfmlib | 0.4.0 | Optional | Enables scrobbling | WITH_LASTFM | Disabled |
ffmpegthumbnailer | Optional | Generate video thumbnails | WITH_FFMPEGTHUMBNAILER | Disabled | |
inotify | Optional | Efficient file monitoring | WITH_INOTIFY | Enabled |
GPLv2
Copyright (C) 2005
Gena Batyan <bgeradz at mediatomb dot cc>
Sergey Bostandzhyan <jin at mediatomb dot cc>
Copyright (C) 2006-2008
Gena Batyan <bgeradz at mediatomb dot cc>
Sergey Bostandzhyan <jin at mediatomb dot cc>
Leonhard Wimmer <leo at mediatomb dot cc>
Copyright (C) 2016-2020
Gerbera Contributors