Rygel not discoverable on Ubuntu 19.10 server

I have installed Rygel and it seems to be running ok but none of my DLNA clients can see it. They can see other DLNA devices.

Any suggestions on how to debug this?

Dave

1 Like

There are several things to check…

  • Are you operating any firewall?
  • After starting Rygel, do you get messages like “Plugin … now available”

Firewall - I don’t think i’m running one (e.g. ufw is not installed)

Here’s what I get during startup:

Oct 18 12:22:42 xxxxx systemd[1]: Started Rygel DLNA server.
Oct 18 12:22:42 xxxxx rygel[8683]: rygel-acl.vala:143: No ACL fallback policy found. Using “allow”
Oct 18 12:22:42 xxxxx rygel[8683]: Rygel v0.36.2 starting…
Oct 18 12:22:42 xxxxx rygel[8683]: New plugin “MediaExport” available
Oct 18 12:22:43 xxxxx mx-extract[8695]: rygel-media-export-extract.vala:180: Started with descriptors 3 (in) 4 (out)
Oct 18 12:22:43 xxxxx mx-extract[8696]: rygel-media-export-extract.vala:180: Started with descriptors 3 (in) 4 (out)

Is there a way of ‘pinging’ the service to see if it accessible from somewhere else on the network?

You can try running gssdp-device-sniffer from gssdp-tools and see if you see the announcements from your local IP

Hi, thanks, I tried that, and I get nothing, just a blank window.

Is there anything else I can do to debug the server or the client?

Yes, try starting the server with

G_MESSAGES_DEBUG=all rygel -g 5

It should spew a lot of output unfortunately. Don’t know if you can attach things here

Ok, I’ve tried that. I get a huge amount of output, most of it looks like definitions of different media formats.

The first and last few lines are:

(rygel:12091): RygelCore-DEBUG: 14:30:03.507: rygel-user-config.vala:228: Loaded system configuration from file '/etc/rygel.conf'
    (rygel:12091): RygelServer-DEBUG: 14:30:03.509: rygel-engine-loader.vala:45: Looking for specific engine named 'librygel-media-engine-gst.so
    (rygel:12091): RygelCore-DEBUG: 14:30:03.509: rygel-recursive-module-loader.vala:83: Searching for modules in folder '/usr/lib/arm-linux-gnueabihf/rygel-2.6/engines'
    (rygel:12091): gupnp-dlna-loader-DEBUG: 14:30:03.561: Loading DLNA profiles from /usr/share/gupnp-dlna-2.0/dlna-profiles
    (rygel:12091): gupnp-dlna-loader-DEBUG: 14:30:03.614: Loaded profile: WMABASE
    MIME: audio/x-ms-wma
audio caps: audio/x-wma, rate=(int)[ 0, 48000 ], bitrate=(int)[ 1, 192999 ], wmaversion=(int){ 1, 2 }
container caps: video/x-ms-asf
image caps: EMPTY
video caps: EMPTY
(rygel:12091): gupnp-dlna-loader-DEBUG: 14:30:03.614: Loaded profile: WMAFULL
MIME: audio/x-ms-wma
audio caps: audio/x-wma, rate=(int)[ 0, 48000 ], wmaversion=(int){ 1, 2 }
container caps: video/x-ms-asf
image caps: EMPTY
video caps: EMPTY
[.....snip about 6000 lines.....]
(mx-extract:12101): gupnp-dlna-loader-DEBUG: 14:30:04.506: Loaded profile: MPEG_PS_NTSC
MIME: video/mpeg
audio caps: audio/x-ac3, rate=(int)48000; audio/x-private1-ac3, rate=(int)48000; audio/ac3, rate=(int)48000; audio/mpeg, rate=(int)48000, mpegversion=(int){ 1, 2 }; audio/x-private1-lpcm, rate=(int)48000
container caps: video/mpeg, systemstream=(boolean)true, mpegversion=(int)2
image caps: EMPTY
video caps: video/mpeg, systemstream=(boolean)false, width=(int)720, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)480, framerate=(fraction)30000/1001; video/mpeg, systemstream=(boolean)false, width=(int)704, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)480, framerate=(fraction){ 24000/1001, 24/1, 30000/1001, 30/1, 60000/1001, 60/1 }; video/mpeg, systemstream=(boolean)false, width=(int)480, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)480, framerate=(fraction)30000/1001; video/mpeg, systemstream=(boolean)false, width=(int)544, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)480, framerate=(fraction)30000/1001; video/mpeg, systemstream=(boolean)false, width=(int)352, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)480, framerate=(fraction)30000/1001; video/mpeg, systemstream=(boolean)false, width=(int)352, profile=(string){ main, simple }, mpegversion=(int)2, level=(string){ low, main }, height=(int)240, framerate=(fraction)30000/1001

(mx-extract:12101): libmediaart-DEBUG: 14:30:04.508: Initializing media art processing requirements...

Then it stops, with no error message.

I see several other network devices on gssdp-device-sniffer (ip cameras etc) but nothing from the IP address where rygel is running.

My /etc/rygel.conf:
# Configuration file for Rygel

# General configuration options
[general]

# Set it to 'false' if you want to disable transcoding support.
enable-transcoding=false

# Where video files should be saved if allow-upload is true.
# Defaults to @VIDEOS@, the standard videos folder (typically ${HOME}/Videos).
video-upload-folder=@VIDEOS@

# Where music files should be saved if allow-upload is true
# Defaults to @MUSIC@, the standard music folder (typically ${HOME}/Music).
music-upload-folder=@MUSIC@

# Where picture files should be saved if allow-upload is true
# Defaults to @PICTURES@, the standard picture folder (typically ${HOME}/Pictures).
picture-upload-folder=@PICTURES@

# Default media engine to load. If not specified, the engine directory is
# searched recursively and the first engine found is loaded.
media-engine=librygel-media-engine-gst.so

# List of network interfaces to attach rygel to. You can also use network IP or
# even ESSID for wireless networks on Linux. Leave it blank for dynamic
# configuration.
interface=eth0

# The port to run HTTP server on. 0 means dynamic.
port=0

# Comma-separated list of domain:level pairs to specify log level thresholds for
# individual domains. domain could be either 'rygel', name of a plugin or '*'
# for all domains. Allowed levels are:
#
# 1=critical
# 2=error
# 3=warning
# 4=message/info
# 5=debug
log-level=*:5

# Allow upload of media files?
allow-upload=false

# Allow deletion of media folders and files?
allow-deletion=false

# Semicolon-separated list of device user-agents (or parts thereof) that need
# a downgrade in the UPnP device versions
# WARNING /!\: Only change this setting when told to do so or when you know
#              what you're doing. If you find that adding your device makes it
#              working with Rygel, please file a bug at
#              https://bugzilla.gnome.org/enter_bug.cgi?product=Rygel&component=IOP
#              so we can include it in future releases.
#force-downgrade-for=Allegro-Software-WebClient;SEC_HHP;SEC HHP;Mediabolic-IMHTTP/1;TwoPlayer;Reciva;FDSSDP;Portable SDK for UPnP devices;Darwin

# Plugin specific sections
#
# Some options are generic and some are specific to each plugin.
# The generic ones are:
#
# * enabled: As the name suggests, to enable or disable the plugin.
# * title: The title of the plugin to advertise to UPnP clients. This can
#          contain the following automatically substituted keywords:
#       * @REALNAME@: The real name of the user as returned by
#                     g_get_real_name() function of glib library.
#       * @USERNAME@: The user name of the user as returned by
#                     g_get_user_name() function of glib library.
#       * @HOSTNAME@: The host name of the machine rygel is running on, as
#                     returned by g_get_host_name() function of glib library.
#

# Options related to the used media backend.
# The options shown in this configuration file are specific to GStreamer.
[GstMediaEngine]

# List of active transcoders. To disable one, remove from list.
transcoders=mp3;lpcm;mp2ts;wmv;aac;avc

# Options that apply to the renderer framework in general
[Renderer]

# Default showtime in seconds to use for images in playlists if dlna:lifetime
# is not set. DLNA wants something between 5 and 15 seconds.
image-timeout = 15

[Tracker]
enabled=true
only-export-from=@MUSIC@;@VIDEOS@;@PICTURES@
share-pictures=true
share-videos=true
share-music=true
strict-sharing=false
title=@REALNAME@'s media on @PRETTY_HOSTNAME@

[LMS]
enabled=true
title=@REALNAME@'s media on @PRETTY_HOSTNAME@

[MediaExport]
enabled=true
title=Media on @PRETTY_HOSTNAME@
# List of URIs to export. Following variables are automatically substituted by
# the appropriate XDG standard media folders by Rygel for you.
#
#       * @MUSIC@: The standard music folder (typically ${HOME}/Music).
#       * @VIDEOS@: The standard videos folder (typically ${HOME}/Videos).
#       * @PICTURES@: The standard pictures folder (typically ${HOME}/Pictures).
#
uris=/data/media-local/itunes;/data/media-local/tv;/data/media-local/photos
extract-metadata=true
monitor-changes=true
monitor-grace-timeout=5
virtual-folders=true

[Playbin]
enabled=true
title=Audio/Video playback on @PRETTY_HOSTNAME@

[GstLaunch]
enabled=false
launch-items=audiotestsrc;videotestsrc;videotestoverlay
audiotestsrc-title=Audiotestsrc
audiotestsrc-mime=audio/x-wav
audiotestsrc-launch=audiotestsrc ! wavenc
videotestsrc-title=Videotestsrc
videotestsrc-mime=video/mpeg
videotestsrc-launch=videotestsrc ! avenc_mpeg2video ! mpegtsmux
videotestoverlay-title=Videotestsrc with timeoverlay 2
videotestoverlay-mime=video/mpeg
videotestoverlay-launch=videotestsrc ! timeoverlay ! avenc_mpeg2video ! mpegtsmux

[Test]
enabled=false

[ExampleServerPluginVala]
enabled=false

[ExampleServerPluginC]
enabled=false

[ExampleRendererPluginVala]
enabled=false

[ExampleRendererPluginC]
enabled=false

[MPRIS]
enabled=false

[External]
enabled=false

[Ruih]
enabled=false
title=Rygel Remote UI Server

My /etc/systemd/system:
[Unit]
Description=Rygel DLNA server
After=syslog.target

[Service]
User=rygel
Group=rygel
ExecStart=/usr/bin/rygel
# ExecStart=/usr/bin/wrap-dbus /usr/bin/rygel

[Install]
WantedBy=multi-user.target

Ah. That is a known issue. Please check if you have gvfs installed. If you have and it still happens, you need a DBus session bus.

Or wait for a newer release of libmediaart. Details are at https://gitlab.gnome.org/GNOME/rygel/-/issues/152

Ok. I don’t care much about media art. Can I disable that element and get it to work?

Only if you disable all metadata extraction completely.

At the moment rygel is unusable, so I’m ok with any behaviour that lets me browse and play files.

in /etc/rygel.conf I have tried setting
[MediaExport]
extract-metadata=false

then

sudo G_MESSAGES_DEBUG=all rygel -g 5 --config=/etc/rygel.conf

but no difference. it still stops at
Initializing media art processing requirements...

Can I disable libmediaart?

I don’t know how to start a DBus session bus, and I tried running https://gitlab.gnome.org/GNOME/rygel/-/blob/master/examples/service/wrap-dbus as root but the command returns with no output and I’ve no idea what it’s doing or whether it worked.

Thanks for your patience!

Right, the problem is in the lookup, not the extraction, I forgot that.

No, sorry.

wrap-dbus is a wrapper, so you would call

wrap-dbus rygel ...

Also, please, never run it as root.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.