GithubHelp home page GithubHelp logo

streamwall / streamdelay Goto Github PK

View Code? Open in Web Editor NEW
47.0 6.0 2.0 350 KB

A delay + dump button for live streams, allowing screening and redaction of explict content.

License: MIT License

JavaScript 100.00%
stream srt rtmp censor bleep delay gstreamer

streamdelay's Introduction

Streamwall

๐Ÿšง Early WIP release! ๐Ÿšง

Streamwall makes it easy to compose multiple livestreams into a mosaic, with source attributions and audio control.

Screenshot of Streamwall displaying a grid of streams

How it works

Under the hood, think of Streamwall as a specialized web browser for mosaicing video streams. It uses Electron to create a grid of web browser views, loading the specified webpages into them. Once the page loads, Streamwall finds the <video> tag and reformats the page so that the video fills the space. This works for a wide variety of web pages without specialized scrapers.

Prerequisites

  1. Node.js and npm. Download the LTS release from here - https://nodejs.org/en/

Setup

  1. Download streamwall. You can use git, or download and unzip https://github.com/chromakode/streamwall/archive/main.zip
  2. Open the streamwall directory in a console
    • In Windows, the LTS install from nodejs.org will install a program called "Node.js command prompt." Open this program; Command Prompt and Powershell may not have the correct environment variables. Once it's open, change directories to where you extracted the file, e.g., > cd c:\Users\<myname>\Downloads\streamwall\
    • On MacOS, you should be able to use the default system terminal or other terminals like iTerm2 as long as a sufficient version of Node is installed. With that open, change directories to where you extracted the file, e.g., > cd ~/Downloads/streamwall
  3. Run the following command: npm install

To Start Streamwall

  1. Using a terminal/console window as described above, go to the streamwall directory, and run npm run start-local
  2. This will open a black stream window and a browser window. The default username is "streamwall" and the default password is "local-dev".
  3. Use the browser window to load or control streams. The initial list will be populated from https://woke.net/#streams
  4. If you enter the same stream code in multiple cells, it will merge them together for a larger stream.

Configuration

Streamwall has a growing number of configuration options. To get a summary run:

npm start -- --help

For long-term installations, it's recommended to put your options into a configuration file. To use a config file, run:

npm start -- --config="../streamwall.toml"

See example.config.toml for an example.

Data sources

Streamwall can load stream data from both JSON APIs and TOML files. Data sources can be specified in a config file (see example.config.toml for an example) or the command line:

npm start -- --data.json-url="https://your-site/api/streams.json" --data.toml-file="./streams.toml"

Twitch bot

Streamwall can announce the name and URL of streams to your Twitch channel as you focus their audio. Use twitchtokengenerator.com to generate an OAuth token. See example.config.toml for all available options.

Hotkeys

The following hotkeys are available with the "control" webpage focused:

  • alt+[1...9]: Listen to the numbered stream
  • alt+shift+[1...9]: Toggle blur on the numbered stream
  • alt+s: Select the currently focused stream box to be swapped
  • alt+c: Activate Streamdelay censor mode
  • alt+shift+c: Deactivate Streamdelay censor mode

Troubleshooting

Unexpected token errors during npm install

We've observed this occur in cases where file corruption is an issue. The fix has been to clear the npm cache, remove the streamwall directory, and start from scratch.

The Streamwall Electron window only fits 2.5 tiles wide

Streamwall in its default settings needs enough screen space to display a 1920x1080 (1080p) window, with room for the titlebar. You can configure Streamwall to open a smaller window:

npm start -- --window.width=1024 --window.height=768

Credits

SVG Icons are from Font Awesome by Dave Gandy - http://fontawesome.io

streamdelay's People

Contributors

chromakode avatar tgreiser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

rnproj eisenyang

streamdelay's Issues

Errors trying to install

Trying to install on MacOS Monterey on a 2021 M1 MacBook Pro. Produces a wall of text I don't understand.

npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: this library is no longer supported
npm ERR! code 7
npm ERR! git dep preparation failed
npm ERR! command /opt/homebrew/Cellar/node/19.0.1/bin/node /opt/homebrew/lib/node_modules/npm/bin/npm-cli.js install --force --cache=/Users/mark/.npm --prefer-offline=false --prefer-online=false --offline=false --no-progress --no-save --no-audit
npm ERR! > [email protected] install
npm ERR! > node-gyp rebuild
npm ERR! npm WARN using --force Recommended protections disabled.
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | arm64
npm ERR! gyp info find Python using Python version 3.10.8 found at "/opt/homebrew/opt/[email protected]/bin/python3.10"
npm ERR! gyp ERR! UNCAUGHT EXCEPTION
npm ERR! gyp ERR! stack TypeError: Cannot assign to read only property 'cflags' of object '#<Object>'
npm ERR! gyp ERR! stack     at createConfigFile (/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:117:21)
npm ERR! gyp ERR! stack     at /opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:84:9
npm ERR! gyp ERR! stack     at FSReqCallback.oncomplete (node:fs:189:23)
npm ERR! gyp ERR! System Darwin 21.6.0
npm ERR! gyp ERR! command "/opt/homebrew/Cellar/node/19.0.1/bin/node" "/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /Users/mark/.npm/_cacache/tmp/git-clone-bc080093
npm ERR! gyp ERR! node -v v19.0.1
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! Node-gyp failed to build your package.
npm ERR! gyp ERR! Try to update npm and/or node-gyp and if it does not help file an issue with the package author.
npm ERR! npm ERR! code 7
npm ERR! npm ERR! path /Users/mark/.npm/_cacache/tmp/git-clone-bc080093
npm ERR! npm ERR! command failed
npm ERR! npm ERR! command sh -c node-gyp rebuild
npm ERR!
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR! npm ERR!     /Users/mark/.npm/_logs/2022-11-13T03_32_43_355Z-debug.log

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/mark/.npm/_logs/2022-11-13T03_32_44_131Z-debug.log

I tried to paste the debug log as well but it says my comment is too long.

If there was just a simple error message I could probably figure it out but these walls of text are overwhelming. I just need to use this software, I feel like I shouldn't have to be a computer programmer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.