All Projects → jordansegalman → Streamcaster

jordansegalman / Streamcaster

Live streaming platform built with Node.js and React

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Streamcaster

E Commerce 2 django
Guest register, user register, user login, user logout, account home page, product view history, change password, reset password, change name, send activation email when register, resend activation email, add shipping address, add billing address, add nickname to the addresses, edit shipping address, edit billing address, view list of your addresses, reuse shipping addresses when order products, reuse billing addresses when ordeer products, show sales analytics if staff or admin only using -chart.js-, get analytics data with Ajax, receive marketing email, change if user will receive marketing email or not by admin, send contact message with Ajax, products list, product detail, download product detail as a PDF file, download digital product files -if the user purchased that digital product only-, orders list, list of digital products files, order detail, download order detail as a PDF file, verify order ownership with Ajax -to secure order detail page-, show cart products, add or remove product from cart, checkout page, thanks page when order placed successfully, add or reuse payment method, add or reuse payment method with Ajax, search products by title, search products by description, search products by price, search products by tag title, write tags for products -by admin only-, auto fill contact email, full name if user logged in.
Stars: ✭ 20 (+0%)
Mutual labels:  restful-api, mysql
Ghchat
📱A chat application for GitHub. React + PWA + Node(koa2) + Typescripts + Mysql + Socket.io
Stars: ✭ 791 (+3855%)
Mutual labels:  mysql, socket-io
Opman Django
💯✅自动化运维平台:CMDB、CI/CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理
Stars: ✭ 539 (+2595%)
Mutual labels:  mysql, nginx
Vagrant Php Dev Box
PHP 7 vagrant development box with nginx, php-fpm, MySQL, Symfony, Laravel, ... on Ubuntu 16.04
Stars: ✭ 473 (+2265%)
Mutual labels:  mysql, nginx
Php Interview
PHP后端开发面试指南。
Stars: ✭ 26 (+30%)
Mutual labels:  mysql, nginx
Php Docker Boilerplate
🍲 PHP Docker Boilerplate for Symfony, Wordpress, Joomla or any other PHP Project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
Stars: ✭ 503 (+2415%)
Mutual labels:  mysql, nginx
Laravel Ubuntu Init
A shell script for setting up Laravel Production environment on Ubuntu 14.04 & Ubuntu 16 & Ubuntu 18 system.
Stars: ✭ 695 (+3375%)
Mutual labels:  mysql, nginx
Docker Laravel
🐳 Build a simple laravel development environment with docker-compose.
Stars: ✭ 415 (+1975%)
Mutual labels:  mysql, nginx
Jale
Jale is a blazing fast local development environment for MacOS written in Typescript.
Stars: ✭ 24 (+20%)
Mutual labels:  mysql, nginx
React Express Fullstack
Full stack (mostly unopinionated) starter pack with React+Redux and Expressjs
Stars: ✭ 23 (+15%)
Mutual labels:  mysql, nginx
Ezhttp
The bash shell script stack for installation of Nginx OpenResty Tengine lua_nginx_module nginx_concat_module nginx_upload_module ngx_substitutions_filter_module Apache-2.2 Apache-2.4 MySQL-5.1 MySQL-5.5 MySQL-5.6 MySQL-5.7 PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 ZendOptimizer ZendGuardLoader Xcache Eaccelerator Imagemagick IonCube Memcache Memcached Redis Mongo Xdebug Mssql Memcached PureFtpd PhpMyAdmin Redis Mongodb PhpRedisAdmin MemAdmin RockMongo Jdk7 Jdk8 Tomcat7 Tomcat8
Stars: ✭ 443 (+2115%)
Mutual labels:  mysql, nginx
Netkiller.github.io
Netkiller Free ebook - 免费电子书
Stars: ✭ 861 (+4205%)
Mutual labels:  mysql, nginx
Ansible Playbooks
Ansible playbook collection that have been written for Ubuntu. Some of the playbooks are Elasticsearch, Mesos, AWS, MySql, Sensu, Nginx etc..
Stars: ✭ 429 (+2045%)
Mutual labels:  mysql, nginx
Blog
Jiajun的编程随想
Stars: ✭ 528 (+2540%)
Mutual labels:  mysql, nginx
Vue2 blog
使用vue2.x + vue-cli +vue-router+ vuex + axios + mysql + express + pm2 + webpack+nginx构建的具有登录,注册,留言,用户发帖,用户评论等功能的SPA Blog。注意,注意,注意,后端API全部自己手写,很适合刚学习vue以及express的小伙伴学习,喜欢请Star鼓励一下我,谢谢!项目预览:
Stars: ✭ 417 (+1985%)
Mutual labels:  mysql, nginx
Perfect Ssm
🍇更完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis)
Stars: ✭ 606 (+2930%)
Mutual labels:  restful-api, mysql
Notebook
🍎 笔记本
Stars: ✭ 381 (+1805%)
Mutual labels:  mysql, nginx
Shell
Infrastructure Management Shell - Linux
Stars: ✭ 381 (+1805%)
Mutual labels:  mysql, nginx
Docker Testing
Stars: ✭ 18 (-10%)
Mutual labels:  mysql, nginx
Springbootunity
rabbitmq、redis、scheduled、socket、mongodb、Swagger2、spring data jpa、Thymeleaf、freemarker etc. (muti module spring boot project) (with spring boot framework,different bussiness scence with different technology。)
Stars: ✭ 845 (+4125%)
Mutual labels:  mysql, nginx

Streamcaster

Streamcaster is a live streaming platform that anyone can sign up for to live stream whatever content they choose using popular live streaming software such as Open Broadcaster Software (OBS). People can view these live streams and participate in chat with other viewers if they choose to sign up. The server is built primarily with Node.js and the client is built with React. Account information is stored in a MySQL database. Nginx is used as a reverse proxy for the Node.js server and to ingest RTMP streams from software like OBS. These streams are authenticated with a stream key which can be found on the account page after logging in. Once authenticated, the streams are then transcoded into multiple HLS variants of different resolutions and frame rates using FFmpeg and a custom Bash script, which also periodically generates stream thumbnails. The React client integrates with the server RESTful API to get stream information, such as thumbnails, and accesses the HLS fragments on the server using Video.js to display streams to viewers. Socket.IO provides real-time stream chat and viewer count.

Server Setup Instructions

Prerequisites

  • Node.js 9.11.1
  • npm 5.8.0
  • MySQL 5.7.22
  • nginx-rtmp-module 1.2.1
  • Nginx 1.13.12
    • configure arguments: --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_v2_module --add-module=nginx-rtmp-module
  • FFmpeg 3.0.11
    • configure arguments: --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree

Installation

  1. Build the versions of Nginx and FFmpeg listed above with the specified configure arguments

  2. Setup the MySQL database

CREATE DATABASE database;
USE database;
CREATE TABLE accounts (uid VARCHAR(16) NOT NULL, username VARCHAR(32) NOT NULL, password VARCHAR(64) NOT NULL, stream_key VARCHAR(64) NOT NULL, PRIMARY KEY (uid), UNIQUE KEY uid (uid), UNIQUE KEY username (username), UNIQUE KEY stream_key (stream_key));
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON database.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
  1. Install Node.js dependencies
npm install
  1. Create the .env file and add the variables PORT, DB_HOST, DB_USER, DB_PASS, DB_NAME, COOKIE_NAME, COOKIE_SECRET, and COOKIE_DOMAIN to it

  2. Create the thumbnails directory in the server directory

mkdir thumbnails

Running

  1. Make sure MySQL is running

  2. Create all necessary directories and run Nginx with the nginx.conf that is in the server directory

  3. Run the Node.js server

node index.js

Client Setup Instructions

Prerequisites

  • npm 5.8.0
  • create-react-app 1.5.2

Installation

  1. Install dependencies
npm install

Running

  1. Run the React app in development mode
npm start

Screenshots

Live

Home

Account

Login

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].