From 40f16b9357f9e9a22a59bb6739f9255ddd9774ed Mon Sep 17 00:00:00 2001 From: eneller Date: Mon, 3 Feb 2025 08:56:15 +0100 Subject: [PATCH] chore: add 'stream' option --- README.md | 15 +++++++++++++-- vlcstream | 11 ++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e6f86f8..5949f5e 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,20 @@ Either run the script locally from the same folder or move it to your PATH. vlcstream: Stream from this device to a computer running vlcslave. Available Arguments: - screen [slave-address] Stream your current screen. Useful for streaming from a browser. + screen [slave-address] Stream your current screen. Useful for streaming from a browser. + file [slave-address] [file] Stream a file. Use for media that is saved locally. - file [slave-address] Stream a file. Use for media that is saved locally. + stream [slave-address] [url] Just tell the slave to listen for an already existing stream on the network. ``` +## Dependencies +- [VLC](https://www.videolan.org/vlc) for streaming and receiving the stream +- [bash](https://www.gnu.org/software/bash/) for running the client script +- [curl](https://curl.se/) for the request from client to server + +## Installation +1. Place the server executable on your server and create a [systemd service](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html) for it. +2. Copy the `vlcstream` script to your client(s) +3. Ensure your client and server are on the same network +4. Run script with the address of your server \ No newline at end of file diff --git a/vlcstream b/vlcstream index f203f0c..3a9e2bc 100755 --- a/vlcstream +++ b/vlcstream @@ -3,11 +3,12 @@ help="vlcstream: Stream from this device to a computer running vlcslave. Available Arguments: - screen [slave-address] Stream your current screen. Useful for streaming from a browser. + screen [slave-address] Stream your current screen. Useful for streaming from a browser. + file [slave-address] [file] Stream a file. Use for media that is saved locally. - file [slave-address] Stream a file. Use for media that is saved locally. -" + stream [slave-address] [url] Tell the slave to listen for an already existing stream on the network. + " err() { echo "❌ Error: $1"; @@ -21,12 +22,16 @@ fi if [ "$#" -eq "2" ]; then case $1 in + # use local vlc to create a stream of the current screen screen) #TODO ;; + # use local vlc to create a stream from a file file) #TODO ;; + # just pass a URL to a stream that should be opened by the vlc slave + stream) *) err "Illegal Argument"; exit 2;