README.md 2.84 KB
Newer Older
1
What is Rygel?
2
=============
3

4 5 6 7 8 9
Rygel is a home media solution that allows you to easily share audio, video and
pictures, and control of media player on your home network. In technical terms
it is both a UPnP AV MediaServer and MediaRenderer implemented through a plug-in
mechanism. Interoperability with other devices in the market is achieved by
conformance to very strict requirements of DLNA and on the fly conversion of
media to format that client devices are capable of handling.
10 11 12

Important facts and features
============================
13

14
  * Based on GUPnP.
Jens Georg's avatar
Jens Georg committed
15 16
  * Written largely in Vala language.
  * Provides APIs to ease the implementation of AV devices.
17
  * Export of on-disk media:
18
    * Tracker plugin.
Jens Georg's avatar
Jens Georg committed
19
    * MediaExport plugin: Recursively exports folders and files specified in the user configuration. This plugin supports all types of URIs that gio/gvfs and gstreamer can handle.
20
  * Export of media hierarchies provided by external applications through
21
    implementation of D-Bus MediaServer spec. Applications that utilize
22
    this feature are:
23 24
    * DVB Daemon
    * Rhythmbox
25 26
  * Export of GStreamer pipelines as media items on the network, specified
    through gst-launch syntax in the user configuration.
27 28 29 30
  * Audio and Video Transcoding: source format could be anything GStreamer's
    decodebin2 can handle but output formats are currently limited to: mp3, PCM
    and MPEG TS. Fortunately the transcoding framework is flexible enough to
    easily add more transcoding targets.
Jens Georg's avatar
Jens Georg committed
31
  * Standalone MediaRenderer plugin based on GStreamer playbin element.
32
  * Export of media players that implement MPRIS2 D-Bus interface, as
33 34 35
    MediaRenderer devices. Known implementing applications are:
    * Rhythmbox
    * VLC
36

37 38 39 40 41 42 43 44 45 46 47
Requirements
============

  * Build-time:
    * Core:
      * gupnp
      * gupnp-av
      * gstreamer
      * gio (part of glib source package)
      * libgee
      * libsoup
Jens Georg's avatar
Jens Georg committed
48
      * libmediaart
49 50 51 52 53
      * vala (not if building from release tarballs)
    * Preferences UI:
      * gtk+
    * MediaExport:
      * sqlite3
Jens Georg's avatar
Jens Georg committed
54
      * gupnp-dlna
55 56 57
  * Run-time:
    * Definitely needed:
      * gst-plugins-base
58
      * shared-mime-info
59 60
    * Might be needed (depending on your usage and media collection):
      * gst-plugins-good
Jens Georg's avatar
Jens Georg committed
61
      * gst-libav
62 63
      * gst-plugins-bad
      * gst-plugins-ugly
Jens Georg's avatar
Jens Georg committed
64

65
To build without gstreamer, use ```--with-media-engine=simple``` during configure time.
66
This will also disable any plugins that use gstreamer.
67

68 69 70 71 72 73 74 75 76
References
==========

  * http://www.dlna.org
  * http://www.upnp.org
  * http://www.gupnp.org
  * http://www.vala-project.org
  * http://www.wikipedia.org/wiki/Media_server
  * http://www.upnp.org/specs/av/UPnP-av-MediaServer-v2-Device-20060531.pdf
77 78 79
  * https://wiki.gnome.org/Projects/Tracker
  * https://wiki.gnome.org/Projects/DVBDaemon
  * https://wiki.gnome.org/Projects/Rygel/MediaServer2Spec
80
  * http://www.mpris.org/2.0/spec/
81