Skip to content
/ xcast Public

Simple command-line program for sharing the display image on a local network.

License

Notifications You must be signed in to change notification settings

vcucek/xcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XCast

is a simple server/client command line program for sharing screen under X.

With XCast you have the ability to either pull the display from a remote server or push a local display to a remote server, simply by specifying the IP address. The application is ment to be used in a local network or VPN environment (like office) for quickly sharing displays between coleges.

The initial implementation was made for streaming a Linux PC display to a RaspberryPI, connected to a TV. That was more then five years ago, before I bought the HDMI cable. With a bit of tinkering this functionality should work or is still working (make file includes rPI build target and ARM dependencies), but has not been tested since then.

The aplication is using FFmpeg for ecoding and decoding video. FFmpeg is licensed under the LGPLv2.1 and its source can be downloaded here.

OpenGL on EGL is used for rendering the remote video stream which facilitates implementation of image/display compositing or any other post-processing transformations.

Usage

Start XCast in the listening mode on machine A:

xcast --listen

On machine B, show machine A desktop:

xcast --pull <machine A IP address>

On machine B, show machine B desktop on machine A:

xcast --push <machine A IP address>

It is also possible to start the xcast server when loged in through the SSH by setting the $DISPLAY environment variable. For example:

export DISPLAY=:0
xcast --listen

Installation

Make sure that following dependencies are installed:

  • ffmpeg
  • xorg

On a tipical Linux desktop machine the xorg dependency is probably installed and used by the desktop environment. You can check this by executing:

if [ $DISPLAY ]; then echo "X is running"; else echo "X is not running"; fi

If you get X is not running, your desktop environment is using the Wayland display protocol which is currently not supported.

When all dependecies are met you can install the program:

git clone git@github.com:vcucek/xcast.git
cd xcast
make
sudo make install

This builds the application into a single executable and copyes it to the /usr/local/bin folder.

TODO:

  • implement screen zooming, panning..
  • implement keyboard/mouse capture and sharing
  • add Wayland support
  • test RaspberryPI support

About

Simple command-line program for sharing the display image on a local network.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published