Sign inSign up

deamos/openstreamingplatform

By deamos

•Updated over 6 years ago

Open Streaming Platform (OSP) is an open-source, RTMP streaming solution.

Image
13

100K+

deamos/openstreamingplatform repository overview

Open Streaming Platform (OSP) ** Now Deprecated For More info See: https://open-streaming-platform.readthedocs.io/en/latest/install/install.html#docker-install⁠ **

For More Information Visit the Gitlab page at https://gitlab.com/Deamos/flask-nginx-rtmp-manager⁠

Open Streaming Platform (OSP) is an open-source, RTMP streamer software front-end for Arut's NGINX RTMP Module. OSP was designed a self-hosted alternative to services like Twitch.tv, Ustream.tv, and Youtube Live. OSP is still considered Beta and is not complete

Features

  • RTMP Streaming from an input source like Open Broadcast Software (OBS).
  • Multiple Channels per User, allowing a single user to broadcast multiple streams at the same time without needing muiltiple accounts.
  • Video Stream Recording and On-Demand Playback.
  • Per Channel Real-Time Chat for Video Streams.
  • Manual Video Uploading of MP4s that are sourced outside of OSP
  • Real-Time Chat Moderation by Channel Owners (Banning/Unbanning)
  • Admin Controlled Adaptive Streaming
  • Protected Streams to allow access only to the audience you want.
  • Live Channels - Keep chatting and hang out when a stream isn't on
  • Webhooks - Connect OSP to other services via fully customizable HTTP requests which will pass information
  • Embed your stream or video directly into another web page easily
  • Share channels or videos via Facebook or Twitter quickly
  • Ability to Customize the UI as a Theme for your own personal look

Planned Features

  • Connect to the Open Streaming Platform Hub, an upcoming central service showing all videos, streams, and creators who opt-in to participate and connect their OSP Servers.

Tech

Open Streaming Platform uses a number of open source projects to work properly:

  • [Python 3]
  • [Gunicorn] - Python WSGI HTTP Server, Acts as a Reverse Proxy for Flask
  • [Flask] - Microframework for Python based on Werkzeug & Jinja 2
  • [Flask SQL-Alchemy] - Provide the Database for OSP
  • [Flask Security] - Handle User Accounts, Login, and Registration
  • [Flask Uploads] - Manage User Uploads, such as Pictures
  • [Flask-RestPlus] - Handling and Documentation of the OSP API
  • [Bootstrap] - For Building responsive, mobile-first projects on the web
  • [Bootstrap-Toggle] - Used to Build Toggle Buttons with Bootstrap
  • [NGINX] - Open-Source, high-performance HTTP server and reverse proxy
  • [NGINX-RTMP-Module] - NGINX Module for RTMP/HLS/MPEG-DASH live streaming
  • [Socket.io] - Real-Time Communications Engine Between Client and Server
  • [Flask Socket.io] - Interface Socket.io with Flask
  • [Video.js] - Handles the HTML5 Video Playback of HLS video streams and MP4 Files
  • [Font Awesome] - Interface Icons and Such
  • [Animista] - Awesome CSS Animation Generator
  • And OSP itself is open source with a public repository on Gitlab.

Docker Info

Due to the way NginX, Gunicorn, Flask, and Docker work, for OSP to work properly, the Frontend must be exposed using Port 80 or 443 and the RTSP port from OBS or other streaming software must be exposed on Port 1935. This accomplished easily by using a reverse proxy in Docker such as Traefik. However, Port 1935 will not be proxied and must be mapped to the same port on the host.

A Redis Instance is required for Beta 4 and above.

Environment Variables

REDIS_HOST: Sets the Redis Instance IP/Hostname (REQUIRED)

REDIS_PORT: Sets the Redis Instance Port

  • Default: 6379

REDIS_PASSWORD: Sets the Redis Instance Password, if needed

DB_URL: Sets the SQLAlchemy URL String for the used DB.

FLASK_SECRET: Flask Secret Key

  • Format: "CHANGEME"

FLASK_SALT: Flask User Salt Value

  • Format: "CHANGEME"

OSP_ALLOWREGISTRATION: Sets OSP to allow users to create accounts

  • Default: True

OSP_REQUIREVERIFICATION: Sets New OSP user accounts to verify their email addresses

  • Default: True

Recommended Volumes/Mount Points

  • /var/www - Storage of Images, Streams, and Stored Video Files
  • /opt/osp/db/ - SQLite DB Location (if used)
  • /usr/local/nginx/conf - Contains the NginX Configuration files which can be altered to suit your needs (HTTPS without something like Traefik)

Tag summary

Content type

Image

Digest

Size

372.7 MB

Last updated

over 6 years ago

docker pull deamos/openstreamingplatform