An open API service indexing awesome lists of open source software.

https://github.com/intellabs/llsrp


https://github.com/intellabs/llsrp

Last synced: 17 days ago
JSON representation

Awesome Lists containing this project

README

          

Intel(R) Low Latency Streaming Research Platform (LLSRP)
=================================================

Please read carefully before using! This code is for research purposes only.
Our recommendation is to run the tool inside a private secured network.
Use at your own risk with no expectation of privacy or security.

For avoidance of doubt,

* Data is transferred unencrypted through an open protocol

* Users should expect that potential attackers could get root privileges on both the server and client

Linux library dependencies
--------------

x264: https://x264.org

avcodec, avdevice: https://www.ffmpeg.org

X11, Xext, Xi, Xtst: https://www.freedesktop.org

pthread

popt

isal

Linux setting up environment for LLSRP (you will need sudo privileges)
--------------

* Install.sh

Installs all required libs if missing.

If there is no libisal2 for your Linux - download, build and install from:
https://github.com/intel/isa-l.git

Linux building LLSRP
--------------

* Make: GNU 'make'

* Compiler: gcc

On client side (where user is controlling):
make client

On server side (where game or some application running):
make server

Linux running LLSRP
--------------

For help:

On client side (to print help):
* sudo ./client --help

On Server side (to print help):
* sudo ./server --help

To test client side:
* make clientMouse
* ./clientMouse

To start Server on a running network interface (for example eth0, 4 links, ports 5910, 5911):
Interface name could differ from "eth0". You can look up the name(s) using "ifconfig".

* sudo ./server eth0:5910 eth0:5911 -n=5 -d=2 -l=2 -r=2 -D=:12 -s=4

This will start server that expect 4 links:2 local (-l=2) and 2 remote (-r=2);
All transmitters will be at "eth0", 2 on port 5910, 2 on port 5911;
An encoding to prevent packet loss will be with 2 redundant packets (-d=2) per 5 real (-n=5);
A display ":12" (-D=:12) square from 0, 0 to 1024, 768 will be grabbed with 60fps (-s=4) and send to network;
Other modes are 1920x1080 60fps (-s=0)... full list is in help "./server --help"

To start Client:

WARNING! When connection established client will grab mouse and keyboard control.
To exit client and server (if Ctrl^C does not work): hold left mouse button, then press ESC.

To switch to relative mouse: hold left mouse button, then press left shift.

To switch to absolute mouse: hold left mouse button, then press right shift.

* sudo ./client eth0 eth0 [server.ip.address]:5910 [server.ip.address]:5911 -l=2 -r=2 -n=5 -d=2 -g

This will start client that will try to initiate connection with server using
network interface "eth0" with server at [server.ip.address] and ports 5910, 5911
All receivers will be at "eth0". Client will expect 4 links: 2 local (-l=2) and 2 remote (-r=2);
An encoding to prevent packet loss will be with 2 redundant packets (-d=2) per 5 real (-n=5);
The client will start in game mode (-g) meaning window with server content will pop up
in the center, mouse will not be able to exit the window, only relative mouse coordinates
will be used.

Windows library dependencies
--------------

avcodec, avdevice: https://www.ffmpeg.org

sdl 2.0: https://libsdl.org

isal: https://github.com/intel/isa-l.git

Windows setting up environment for LLSRP
--------------

Install to some folder:

isal from: https://github.com/intel/isa-l.git

avcodec, avdevice (https://www.ffmpeg.org) and SDL 2.0 (https://libsdl.org)

Windows building LLSRP
--------------

* Compiler: Microsoft or Intel compiler for Windows

set REPO to folder where you installed all libs from above

To build client: compile.bat

Server is not supported on Windows

To build test: compile_test.bat

Windows running LLSRP
--------------

For help:

On client side (to print help):
* Client.exe --help

To test client side:
* ClientTest.exe

To start Client:

WARNING! When connection established client will grab mouse and keyboard control.

* Make sure all library paths are added (for the installed libraries)

* Client ethernet_0 ethernet_0 [server.ip.address]:5910 [server.ip.address]:5911 -l=2 -r=2 -n=5 -d=2 -g

This will start client that will try to initiate connection with server using
network interface "ethernet_0" with server at [server.ip.address] and ports 5910, 5911
All receivers will be at "ethernet_0". Client will expect 4 links: 2 local (-l=2) and 2 remote (-r=2);
An encoding to prevent packet loss will be with 2 redundant packets (-d=2) per 5 real (-n=5);
The client will start in game mode (-g) meaning window with server content will pop up
in the center, mouse will not be able to exit the window, only relative mouse coordinates
will be used.

License
--------------

Apache 2.0

http://www.apache.org/licenses/LICENSE-2.0