Tag Archives: rygel

Lately, in Rygel land…

In General

I know I have been quite silent about Rygel in general lately because I was quite busy with my day job. Since Zeeshan left Nokia after the MeeGo turmoil I took over his task of bringing Rygel in good shape to form the basis for Harmattan’s DLNA functionality.

These efforts, started long ago by Zeeshan, are finally coming to a close and entering the wild. With the release of PR1.2 beta for the N950, the alert reader might have spotted the release note entry “Media sharing with DLNA compatible devices”. You can probably guess what that’s powered by 😉

One of the goals that we’d set ourselves has already been reached. The device is UPnP certified. The DLNA compatibility is in really good shape as well.

That is one of the reasons why the upstream Rygel development looks kind of stalled. The other one is that we’ve been focusing on ironing out the rough edges with emphasis on stability. Naturally, all of the patches that resulted here have been upstreamed, either to Rygel, GUPnP or libsoup.

On the device

So what’s on the device? A more or less pristine upstream snapshot taken several commits after 0.11.3 with later patches cherry-picked and some minor adjustments to adapt ourselves to the environment, like different device details and icons.

What can it do?

It implements a M-DMS, a mobile media server, enabling you to share the media content of your phone in your home network.
In addition to the rather useless mandatory media formats defined by DLNA we have decided to include a LPCM transcoder and the necessary profiles to share all the videos and images you’re going to take or already have taken on the device.
The server runs in a strict sharing mode where only media files that conform to one of the supported DLNA profiles are shared. This is configurable and we plan to release a “tweaking app” later to help the average end user to fine-tune and undo some of the limitations that had to be done due to the DLNA guidelines.
So, to all that already can, enjoy Rygel on your mobile phone.

Slides from DLNA talk

Last week I did a talk about DLNA, what it is and how it relates to UPnP during a DeveloperGarden event hosted in Berlin’s famous hacker space c-base.
Here are the german slides and a link to the video. I’m told that the slides are quite readable through Google Translate if you ignore the occasional denglish.
Note: Both talk and slides are in German. I will also be giving a short talk about Rygel on this year’s FOSDEM in Brussels.

Rygel & pulseaudio

Looks like we have found and fixed the recent issues in the PulseAudio MediaServer2 implementation that led to weird behavior when trying to browse the PA server; it is available in PulseAudio master.
So after applying this, streaming from PA should be possible again if your client natively supports LPCM. If not, then most likely not. There seems to be an issue in setting up the transcoding (this includes the XBox e.g.)

Debunking Rygel myths

Somehow Rygel seems to have gained some interest by users lately, a number of new users show up on mailing list, IRC and Bugzilla. But it seems there are some misinformations flowing around:
Rygel is a UPnP server
Well yes, that’s how it started out. But since then, we’ve evolved to be a UPnP/DLNA framework or even SDK providing easy means of implementing servers and renderer.
Speaking of renderer, we not only have one renderer to offer but actually a multitude. Rygel is a consumer of the MPRIS2 D-Bus specification which means it can turn any player, like Banshee or Rhythmbox, which implements this specification into a UPnP/DLNA media renderer.
Rygel is Gnome-only
While being part of Gnome, using its infrastructure, there’s no reason not to use Rygel as a system service. You might, however, experience some minor drawbacks since some of the plug-ins heavily make use of D-Bus. People already have contributed init scripts to ease this part.
Rygel is badly documented
Hm, yes. That one is actually true. Its documentation is a bit scattered in our wiki at http://live.gnome.org/Rygel and the man-pages. On the other hand we hope that Rygel working out of the box for most people out there.
Hope that sheds some light.
Ps: Hello Planet Gnome! Great to be here finally.

101 secret Rygel tips

With the release of Rygel 0.7.3 I thought I should bring up some sort of FAQ for Rygel and especially the MediaExport plugin, since it has some features and behavior changes that might lead to confusion for long-time (and new) users:

Plugin concurrency

With the release of 0.7.4 you cannot enable both tracker and MediaExport plugins at once. If you do so, the MediaExport plugin will be shut down in favor of the tracker plugin.

Meta-data extraction

Speed
Since 0.7.3 Rygel now uses the gunp-dlna package for meta-data extraction. This is based on the gst-discoverer work by Arun and Edward from Collabora Multimedia. It is significantly faster on video files than the old home-grown meta-data extraction stuff.
Filters
Rygel no longer blindly tries to extract meta-data from everything it sees in the directories. Instead it uses a positive list of file extensions to include. In the default configuration these are:

  • Audio formats
    .mp3, .oga, .ogg, .mp4, .flac, .wav, .wma
  • Video formats
    .ogv, .ogg, .mkv, .avi, .mp4, .mpeg, .mpg, .ts. .wmv, .asf
  • Image formats
    .jpeg, .jpg

If your favorite format is missing, don’t hesitate to file a bug

Folder hierarchy

Since Rygel 0.5.2 there has been support for user-defined virtual folders in the MediaExport plugin. It allowed the user to browse through his media by artist and album e.g. With Rygel 0.7.3 the possibility to define those folders yourself is gone. The configuration syntax wasn’t really intuitive and easy to get wrong. We defined a set of build-in folders which resemble the folders provided by the Tracker plugin.
And since the addition of this default folders made the view of the root folder even more cluttered, I decided to move all every non-virtual folder that directly corresponds to a file-system folder into its own subfolder. In an upcoming release a configuration option to disable the display of this folder will be added.

If we missed out a folder you really need, please file a bug for it.

Simple web-radio sharing with rygel

One easy method to share any web radio via UPnP on your network is to use the gst-launch plugin. This is a simple rygel.conf snippet to expose NDR Info to your DLNA enabled devices. For other services I’d first try to replace the uri and the content-type accordingly.

[GstLaunch]
enabled=true
launch_items=ndrinfo
ndrinfo_title=NDR Info
ndrinfo_mime=audio/mpeg
ndrinfo_launch=souphttpsrc location=http://ndr.ic.llnwd.net/stream/ndr_ndrinfo_hi_mp3