Skip to content

alex4108/StreamMachine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StreamMachine

Build Status Docker Pulls GitHub issues GitHub forks GitHub stars GitHub license GitHub contributors Discord

Join Us in Discord

Why is this here

  • Stream higher quality than free tiers of popular streaming platforms (1080p, 4K, 8K?)
  • Not subject to content guidelines of other streaming platforms

Screenshots

Screenshot_25

Screenshot_26

Setup

Before you start

  • Stream Keys are your Unique ID used on the streaming server to identify your stream from another stream. I usually set this to my username, eg Alex

Start normally

docker-compose up -d

Run Container with a local config file

Simply modify web/config.php and then rebuild, src web && docker build -t alex4108/streammachine:web ., then start normally

Your streaming client

  1. Use OBS or similar stream software to publish a stream to the container at URL rtmp://host_ip/live/ with any non empty stream key.
  2. You should be able to see your stream in the "Online Streams" list in the left bar of the app

What does it do

  • Runs a Node-Media-Server who accepts RTMP streams.
  • Runs a website (php) for users to view the streams

Configuration Guidelines

Configuration of the config.php file isn't required. Streams will be accepted using any stream key, and will immediately show as Online in the webapp.

To enabled additional features, such as Discord join links, the Titan widget, or to list your key in the offline streams list, you must modify the config.php configuration file and rebuild the container.

Production Deployment Notes

  • Simply docker-compose up -d to bring the environment online
  • This will open 1935/tcp for inbound streams.
  • This will open 80/tcp via haproxy, and properly proxy requests from the outside to node media server for stream viewers. All other requests will be proxied to the php web server.
  • You may want to add your own proxy to terminate HTTPS connections.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Known Issues

  • Cross-Site cookies are forbidden by default in the browser. This prevents the chat widget from loading.
  • Video player may "bounce" in the browser. This can be resolved by zooming out
  • There is an ~10 second delay between frames coming in to node-media-server and frames being retrieved by viewers.

Support

Join the Discord Server

Credits