The following command on the server 192.168.1.154 starts a daemon waiting for incoming video stream to display :
server$ netscreend 192.168.1.154 3868
The following command on the client sends a video stream of the current screen to the server 192.168.1.154 :
client$ netscreen 192.168.1.154 3868
A web interface is also started on the server (default port 8080) with server status and instructions on how to stream from clients:
usage: netscreen [-h] [-k] [-c] [-v] ip port [source]
netscreen client, captures entire screen or single window and stream it
over the network to a netscreend instance.
netscreen <ip> <port> : Stream the entire primary monitor
netscreen <ip> <port> HDMI-1 : Stream the entire HDMI-1 monitor
netscreen <ip> <port> list-mon : List active monitors
netscreen <ip> <port> select : Select interactively a window to stream
netscreen <ip> <port> 93273232 : Stream window ID 932732
netscreen <ip> <port> list-win : List all windows
positional arguments:
ip netscreend server IP address
port netscreend server port
source monitor name, list-mon, X window ID, list-win, select, focus
optional arguments:
-h, --help show this help message and exit
-k Kill running netscreen
-c Hide mouse cursor
-v Print verbose messages
sudo make install-client
The following software must be installed:
- python3, language in which the client is written
- ffmpeg, video software used for screen streaming and whole screen capture
- gstreamer, only used for capturing a single window
- python xlib, library for display configuration
You can install all the dependecies on Ubuntu with the following commands:
apt install python3 ffmpeg gstreamer1.0-plugins-good
pip3 install python-xlib python-libxdo
$ netscreend -h
usage: netscreend [-h] [-f] [-k] [-v] [-w WEB_PORT] [-B] listen_ip listen_port
netscreen daemon, listens for a video stream and displays it. it also runs a
small web interface.
positional arguments:
listen_ip Listen IP address
listen_port Listen port for ffmpeg
optional arguments:
-h, --help show this help message and exit
-f Run in foreground for debugging (default: False)
-k Kill running server (default: False)
-v Print verbose messages (default: False)
-w WEB_PORT Listen port for web interface (default: 8080)
-B Use black background in web interface (default: False)
sudo make install-server
The following software must be installed:
- python3, language in which the server is written
- ffmpeg, video software used for screen streaming
- python Quart, a web framework (asyncio equivalent of flask)
- python libtmux, a tmux scripting library
- python psutil, a library for retrieving information on running processes and system utilization
- python daemonize, library for writing system daemons
You can install all the dependecies on Ubuntu with the following commands:
apt install python3 ffmpeg
pip3 install Quart libtmux psutil daemonize