Frequently Asked Questions about Galène

Server issues

Galène says Loopback test failed

This indicates that Galène couldn't reach any TURN servers. If you're running the built-in TURN server, this may very well happen if you're behind NAT and your NAT device doesn't support hairpinning. Please don't run Galène behind NAT, or use a better NAT device, or use a TURN server that is not behind NAT.

If you are running an external TURN server, this probably indicates that there's something wrong with the TURN configuration; please check your TURN server's logs. You might get additional hints by running

PION_LOG_TRACE=ice ./galene

Galène says File descriptor limit is XXXX, this is too low

At startup, Galène attempts to raise its file descriptor limit to 65535. If it doesn't have the permissions to do so, it displays this warning. Galène should still work fine, but it may start dropping streams under load.

Please arrange to raise the file descriptor limit before Galène is launched. If using a shell script, say "ulimit -n 65536". If using SystemD, use the LimitNOFILE directive.

The browser displays a scary security warning

In order to authentify and encrypt communication between the clients and the server, Galène needs a data structure called a TLS server certificate. If a TLS certificate is not found on disk, Galène will generate one itself. This ``self-signed'' certificate is not known to the browsers, who are therefore unable to verify that it belongs to a trusted entity, and end up displaying a big red warning.

(Which is silly. Browsers don't display the warning for plain HTTP, which is completely insecure, but do display the warning for encrypted communication using self-signed certificates.)

In order to avoid the warning, you will need to obtain an official certificate, registered with an entity that is trusted by the browsers, and make it available to Galène under data/cert.pem and data/key.pem; please see Galène's README for instructions. I get mine from Let's Encrypt.

A newly created group doesn't appear in the public groups list

Galene will notice the new group when it is accessed. In order to make this happen, it is enough to access the group's page (/group/whatever), there is no need to actually login.

Issues with specific browsers

Which browsers are supported?

We aim to support all recent browsers that support WebRTC, on both desktop and mobile. See the list of browsers supporting WebRTC.

Screen sharing doesn't work under Mac OS X 10.15 (Catalina)

Go to System PreferencesPrivacy and SecurityScreen Recording, and grant the required permissions to your browser.

Screen sharing doesn't work on mobile

None of the currently available browsers for mobile support screen sharing. See the the list of browsers supporting screen sharing.

Screen sharing is erratic on Safari (desktop)

Safari's support for screen sharing is incomplete. Please use Firefox or Chrome for screensharing on Mac OS.

(Safari is a fine browser, a pity it has these limitations.)

Playing from disk fails on Chrome/Chromium 88 and later

This is a known bug in Chrome. Workarounds include downgrading to Chromium 87, and disabling hardware acceleration for video in chrome://settings.

After I refuse access to the camera on Safari on mobile, I'm stuck

After you have refused access to the camera, Safari on mobile remembers your choice. You can get it to forget your choice by erasing the site's cookies (Settings⟶Safari⟶Advanced).

Safari on mobile refuses to connect to my server

Safari for iOS doesn't like self-signed certificates; you will need to use a TLS certificate signed by a CA trusted by iOS. See this issue for details.

Activity detection doesn't work on Firefox

Activity detection relies on the totalAudioEnergy statistic, which is not implemented in Firefox. Sorry.

How do I?

How do I display my slides?

Just pick your favourite PDF reader, scale it to a reasonable size, and share its window using the share screen button. I use µPDF. You may share multiple windows simultaneously (e.g. both a PDF with your slides and a drawing program or a text editor).

Alternatively, open the PDF in a second browser tab, and share that tab.

How do I check whether my microphone works?

Just open the same group in two browser windows. Choose Present in one but not the other. Make sure you are using headphones.

How do I use two cameras simultaneously?

Open the same group in two distinct browser windows (or tabs). In the second window, select your second camera, disable the microphone, and choose Receive: nothing.

How do I record my lecture?

Make sure allow-recording is set in your group configuration. Log-in as an operator, then say /record before you start your lecture. Don't forget to say /unrecord at the end. You will find your recordings under https://server.example.com/recordings/groupname/.

Other questions

What are subgroups?

Subgroup's are Galène's replacement for what other videoconferencing software calls break-out groups; we have found them to be useful for student practicals, where students work in groups of 2 or 3 people. A subgroup of a group G is simply a group with a name of the form G/H, i.e. the name of G followed by a slash followed by a string H. The administrator can get the list of all active (non-empty) subgroups of the current group with the command /subgroups.

There are two ways to create subgroups. The first is to create them manually, just like ordinary groups: the subgroup G/H is defined by the file groups/G/H.json, i.e. file H.json in a subdirectory G/ of the groups directory.

The second is to request that they be created automatically by specifying 'allow-subgroups': true in G's definition file. When this flag is specified, any subgroup of G will automatically be created whenever somebody attempts to join it. The automatically created subgroup's configuration is an (almost) exact copy of the supergroup's: identical usernames, passwords and permissions.

Why is my sound quality poor?

If you sound like you're under water, you are putting too much load on the echo suppressor. This is a problem on the sender side. Please use headphones; if that is not possible, reduce your speakers' volume or your microphone gain.

If your voice occasionally sounds like a robot in an old science-fiction movie (or a vocoder), then you're suffering from more packet loss than the concealement algorithm can handle. This could be a problem on the sender side, on the receiver side, or both. Please use a wired connection, or at least avoid having a bearing wall between you and your access point.

What does the Blackboard mode do?

It increases the resolution and attempts to preserve detail at the cost of framerate. Your blackboard will be legible, but your movements might become choppy.

My MacBook Air melts when I use Galene

Select Send: low and Receive: all (low) in the side menu.

If you don't need interoperability with Android devices and Debian Linux, you may switch to using the H.264 codec, which is implemented in hardware on Mac OS. Add the following to the group definition file:

codecs: ["opus", "h264"],

(The hardware in the Macbook Air has support for hardware-accelerated VP8, but apparently Mac OS doesn't use it.)

Can I manually set the resolution that I send manually?

Yes, but it's an undocumented, top-secret feature. In the chat window, type something like

/set resolution [1024, 768]
then restart your video (hit Enable then Disable).

Do you accept donations?

No, we don't (but thanks to all who asked). Please support your local homeless person, or make a donation to the charity of your choice, preferably a non-religious one.