Rygel
Contents
|
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. |
The user story
How does this all affect the user? For a starters there is plenty of DLNA/UPnP devices already out in the market these days: Sony Playstation 3, Nokia's series60 and maemo-based phones, Microsoft XBox 360 (not even real UPnP device but we must support it due to high demand), DLNA speakers, Sony Bravia TV and some other DLNA TVs from Sony & Samsung. Moreoever, the number of DLNA devices in the market is expected to grow and not shrink. Now suppose a user has a PS3 or one of the DLNA TVs, a laptop or destkop PC running GNOME, one of the DLNA speakers and one of the next generation of Maemo Phones. She would like to be able to:
- Browse her media collection on her PC running GNOME (mobile) from her TV or PS3 and be able to play any of her media. She should even be able to play it even if the original content is in a format that her TV or PS3 is incapable of playing, i-e the media server should be able to transcode on the fly.
- Easily search for the desired media using her phone and be able to play it either on the phone or play it on her TV and/or the PC, while retaining full control over the playback from her phone.
- Before or while watching a movie on her PC, redirect the sound output to her DLNA speakers using her phone.
Important facts and features
Specifically designed for GNOME and GNOME Mobile and is therefore planned to be one of the key new features of GNOME 3.0 and Maemo platform in the Harmattan release.
Based on GUPnP.
written completely in Vala language
- APIs to ease the implementation of UPnP AV devices:
MediaServer v 2.0 specification
MediaRenderer v 2.0 specification
- Export of on-disk media:
Tracker plugin.
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. NOTE: This plugin uses gupnp-dlna's APIs directly to extract metadata from media and thus does ""not"" use Tracker.
Export of online media from 2nd German TV station.
Export of media hierarchies provided by external applications through implementation of D-Bus MediaServer spec. Applications that utilize this feature are:
DVB Daemon: Provides live TV (DVB) channel streams.
- Export of GStreamer pipelines as media items on the network, specified through gst-launch syntax in the user configuration.
- 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.
Standalone MediaRenderer plugin based on GStreamer playbin2 element.
Export of media players that implement MPRIS2 D-Bus interface, as MediaRenderer devices.
Requirements
- Build-time:
- Core:
- gupnp
- gupnp-av
- dbus-glib
- gstreamer
- gst-plugins-base
- gstreamer-pbutils (part of gst-plugins-base source package)
- gio (part of glib source package)
- libgee
- libuuid
- libsoup
- vala (not if building from release tarballs)
- gupnp-vala (not if building from release tarballs)
- Preferences UI:
- gtk+
MediaExport plugin:
- sqlite3
- gupnp-dlna
- Core:
- Run-time:
- Might be needed (depending on your usage and media collection):
- gst-plugins-good
- gst-ffmpeg
- gst-plugins-bad
- gst-plugins-ugly
- shared-mime-info
- Might be needed (depending on your usage and media collection):
Development
Development takes place GNOME git repository that can be viewed here. To clone the latest development version run the following command:
git clone git://git.gnome.org/rygel
Instructions for building Rygel and its dependencies can be found here
See the CodingStyle page for style conventions used in Rygel development.
Here you can see a nice and short visualization of development history till 13th of March 2011.
Download
The latest stable release of Rygel is 0.12.7 and it was released on 19th of Jan 2012. Previous stable release of Rygel was 0.12.6.
The latest unstable release of Rygel is 0.13.0 and it was released on 23rd of Nov 2011.
Download source tarballs of releases from here.
FAQ
A (short) list of frequently asked questions is available here.
Bugs
No matter how perfect a software is, there are always bugs in it. If you find any, file it here.
Mailing List and IRC
We have our separate mailing list but for IRC we just use #gupnp channel on irc.gimp.org for now.
User counter
If you use Rygel, we would appreciate it if you could bump-up our user counter by simply clicking on "I USE THIS" button at our ohloh page.
Interoperability (IOP) with different UPnP/DLNA hardware
Our aim will be to make Rygel (as MediaServer) 100% DLNA-compliant and that should help a lot in assuring basic IOP with many UPnP/DLNA hardware available in the market. However world is not perfect and we will need to do some magic to assure IOP with many devices (think XBox). That is why we'll maintain this page to document observations against each device.