Screen sharing for Linux users
-
Hi there,
I’ve just installed Farplay for Ubuntulinux (deb package), and everything seems to be ok but for screensharing feature. Actually, after having selected the proper option, there appear no screen to share at all. Is there any particular permissions to set somewhere?
-
Thank you for your question. To check, when you “selected the proper option,” you clicked the camera icon in the FarPlay Video window and then looked for Share desktop screen at the bottom of the menu that appears, is that right?
If the “Share desktop screen” item doesn’t appear for you, can you send a screenshot similar to the one above? Thanks!
Here’s
1-the screenshot you asked.
2-the one after clicking on “share desktop screen”.
3-the one after resizing the window, in order to see why it’s everything black.Attachments:
Thank you for the screenshots! When you see the “Screen Sharing Active” message and the black screen, can you please click on the Options menu in the FarPlay Video and check that “Show my shared screen” is checkmarked?
If the “Show my shared screen” option is checked, but your screen is not shown, can you send a screen shot? Thanks!
- This reply was modified 11 months ago by David Liao. Reason: adjusted image size
Well, there’s no option at all.
Attachments:
But, trying to resize the window, suddenly the option appears, and if I check it, there you can see the little window showing the possibility to click the screen to share, but actually it can’t be checked, and the other member of the session can’t see my screen at all.
Attachments:
Differently, if the other member (Rita, in this case), which is a windows user, tries to share her screen, I can see it normally.
Attachments:
Well, it seems that screen sharing is indeed not working properly for you. It is strange, I don’t think it should require any additional permissions on Linux and it was tested on Ubuntu and Debian (I am personally using Debian Linux all the time). What particular version of Ubuntu are you using?
Also, it would be really helpful if you send us terminal output from FarPlay when you start screen sharing. All you need for this is to run FarPlay from a terminal (open Terminal app and run
farplay
command there; then start a session, open video and start screen sharing). Then just select all and copy the content of the terminal window (it may be lengthy but it’s ok).Hi,
I’m using Ubuntu Jammy Jallyfish 22.04 LTS
here’s what you asked (seems there’s a “permission denied somewhere):salvatore@salvatore-22-h020el:~$ farplay
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
dir exists: 1
FpAppSingleton::start
FpAppSingleton::locked 1
FpAppSingleton::start connecting to server
FpAppSingleton::onError: QLocalSocket::connectToServer: Connection refused
FpAppSingleton::start finished
FpAppSingleton::startServer
FpAppSingleton::stop
recordsDir=/home/salvatore/.local/share/FarPlay/farplay.client/records
is absolute == 1
FpClient::onApiResponse
FpXmppClient::onConnected
presence (1): joined DC1C36
Session created: DC1C36
FpMainWindow::onSessionJoined session=DC1C36 session_caps=0 is_new=1
openAudioDev, fpp = 128 rate = 48000
successfully opened 0
Open input jack;;PulseAudio JACK Sink: 0x560d2ac71c60 2
openAudioDev, fpp = 128 rate = 48000
successfully opened 1
Open output jack;;PulseAudio JACK Source: 0x560d2ab53740 2
FpMediaStreamManager sendProc thread = 0x560d2af3b910
debug_config_path=
changed: mirroring is 1
void FpVideoWin::requestLayoutUpdate()
changed: filling is 0
void FpVideoWin::requestLayoutUpdate()
selected camera format: /dev/video2 | rawvideo | yuyv422 | 640×360 | 30,000000 |
selected camera format: /dev/video0 | rawvideo | yuyv422 | 640×480 | 30,000000 |
void FpVideoWin::requestLayoutUpdate()
FpVideoWin::applyVideoOptions size=640×480
void FpVideoWin::updateLayout()
frame widget:
context version: 4.6
context profile: 2
VAO: 1
glsl version: 460void FpVideoWin::updateLayout()
FpMediaStreamManager::startVideo
selected camera format: :0 | rawvideo | (null) | 1920×1080 | 30,000000 |
selected camera format: :0 | rawvideo | (null) | 1920×1080 | 10,000000 |
void FpVideoWin::requestLayoutUpdate()
camera status: FpCaptureStatus::Stopped FpCaptureStatus::Starting
void FpVideoWin::updateLayout()
FpVideoWin::onCameraStatus: 1
camera status: FpCaptureStatus::Starting FpCaptureStatus::Started
void FpVProcessor::Private::startEncoder()
FpVideoWin::onCameraStatus: 2
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
void FpVideoWin::requestLayoutUpdate()
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
T FpAvResult<T>::ok() [with T = FpAvPacket*]: : error: Permesso negato
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
ignore packet error
void FpVideoWin::requestLayoutUpdate()
void FpVideoWin::updateLayout()
void FpVideoWin::updateLayout()
void FpVideoWin::requestLayoutUpdate()
void FpVideoWin::updateLayout()
FpMediaStreamManager::stopVideoWell, the most likely cause is that it seems that you use Wayland window manager (I believe it is the default in Gnome now). Unfortunately, currently we support screen sharing on Linux only for traditional X11/Xorg sessions. You should be able to select the type of the session at your Ubuntu login page (you need to select “Ubuntu on Xorg” or something like that to start Xorg session).
Here is a screenshot with Ubuntu login page with session type menu.
Attachments:
Well, you’re right. Now it works correctly. Thank you.
But there is another small problem: normally I have to use Wayland, because a few months ago Xorg started having problems starting the session, i.e. it takes almost 2 minutes and 30 seconds from typing the login password to have the desktop correctly visible, compared to 15 sec. of Wayland. I don’t know how it happened, but one day I came across this delay problem, and while searching the web for a solution I only found the possibility of changing the graphic environment, from Xorg to Wayland. There must probably be some problem with dependencies, and reinstalling the operating system it could be solved, but it would take me too long. Excuse me.
Now I know that if I want to use Farplay I have to start my session with Xorg, and unfortunately wait those 2 minutes. and a half to be functioning regularly.
Thanks again for your excellent help.Attachments:
Waiting 2 minutes for login sounds like crazy. I think it should be some config issue, not the expected Xorg behavior. I hope at some point we will add support for screen capturing on Wayland, but for now it’s not in the short list of our priorities. Sorry about that.
- You must be logged in to reply to this topic.