feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
166
srs.conf
Normal file
166
srs.conf
Normal file
@@ -0,0 +1,166 @@
|
||||
# SRS Configuration for EasyStream Live Streaming
|
||||
# Works alongside Caddy for HTTP/HTTPS while handling RTMP
|
||||
|
||||
listen 1935;
|
||||
max_connections 1000;
|
||||
srs_log_tank file;
|
||||
srs_log_level info;
|
||||
srs_log_file ./objs/srs.log;
|
||||
|
||||
# HTTP API for stream management
|
||||
http_api {
|
||||
enabled on;
|
||||
listen 1985;
|
||||
crossdomain on;
|
||||
}
|
||||
|
||||
# HTTP server for HLS delivery
|
||||
http_server {
|
||||
enabled on;
|
||||
listen 8080;
|
||||
dir ./objs/nginx/html;
|
||||
crossdomain on;
|
||||
}
|
||||
|
||||
# Statistics for monitoring
|
||||
stats {
|
||||
network 0;
|
||||
disk sda sdb xvda xvdb;
|
||||
}
|
||||
|
||||
# RTMP server configuration
|
||||
vhost __defaultVhost__ {
|
||||
# Enable HLS
|
||||
hls {
|
||||
enabled on;
|
||||
hls_fragment 10;
|
||||
hls_window 60;
|
||||
hls_path ./objs/nginx/html/live;
|
||||
hls_m3u8_file [app]/[stream].m3u8;
|
||||
hls_ts_file [app]/[stream]-[seq].ts;
|
||||
}
|
||||
|
||||
# Enable HTTP-FLV for low latency
|
||||
http_remux {
|
||||
enabled on;
|
||||
mount [vhost]/[app]/[stream].flv;
|
||||
}
|
||||
|
||||
# Recording configuration
|
||||
dvr {
|
||||
enabled off; # Enable per stream as needed
|
||||
dvr_path ./objs/nginx/html/recordings/[app]/[stream]/[2006]/[01]/[02]/[stream].[timestamp].flv;
|
||||
dvr_plan session;
|
||||
dvr_duration 30;
|
||||
dvr_wait_keyframe on;
|
||||
}
|
||||
|
||||
# Transcoding for multiple qualities
|
||||
transcode {
|
||||
enabled off; # Enable per stream as needed
|
||||
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
||||
|
||||
engine hd {
|
||||
enabled on;
|
||||
vfilter {
|
||||
v quiet;
|
||||
vf scale=1280:720;
|
||||
}
|
||||
vcodec libx264;
|
||||
vbitrate 2500;
|
||||
vfps 25;
|
||||
vwidth 1280;
|
||||
vheight 720;
|
||||
vthreads 4;
|
||||
vprofile main;
|
||||
vpreset medium;
|
||||
vparams {
|
||||
g 50;
|
||||
keyint_min 25;
|
||||
sc_threshold 0;
|
||||
}
|
||||
acodec aac;
|
||||
abitrate 128;
|
||||
asample_rate 44100;
|
||||
achannels 2;
|
||||
aparams {
|
||||
}
|
||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_hd;
|
||||
}
|
||||
|
||||
engine sd {
|
||||
enabled on;
|
||||
vfilter {
|
||||
v quiet;
|
||||
vf scale=854:480;
|
||||
}
|
||||
vcodec libx264;
|
||||
vbitrate 1000;
|
||||
vfps 25;
|
||||
vwidth 854;
|
||||
vheight 480;
|
||||
vthreads 2;
|
||||
vprofile main;
|
||||
vpreset medium;
|
||||
vparams {
|
||||
g 50;
|
||||
keyint_min 25;
|
||||
sc_threshold 0;
|
||||
}
|
||||
acodec aac;
|
||||
abitrate 96;
|
||||
asample_rate 44100;
|
||||
achannels 2;
|
||||
aparams {
|
||||
}
|
||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_sd;
|
||||
}
|
||||
}
|
||||
|
||||
# Security and authentication
|
||||
refer {
|
||||
enabled off;
|
||||
all off;
|
||||
publish off;
|
||||
play off;
|
||||
}
|
||||
|
||||
# Bandwidth testing
|
||||
bandcheck {
|
||||
enabled off;
|
||||
key 35c9b402c12a7246868752e2878f7e0e;
|
||||
interval 30;
|
||||
limit_kbps 4000;
|
||||
}
|
||||
|
||||
# Security settings
|
||||
security {
|
||||
enabled off;
|
||||
seo {
|
||||
enabled on;
|
||||
summary "EasyStream Live Streaming";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Webhook callbacks to EasyStream
|
||||
http_hooks {
|
||||
enabled on;
|
||||
on_connect http://php:80/api/srs/webhook;
|
||||
on_close http://php:80/api/srs/webhook;
|
||||
on_publish http://php:80/api/srs/webhook;
|
||||
on_unpublish http://php:80/api/srs/webhook;
|
||||
on_play http://php:80/api/srs/webhook;
|
||||
on_stop http://php:80/api/srs/webhook;
|
||||
on_dvr http://php:80/api/srs/webhook;
|
||||
on_hls http://php:80/api/srs/webhook;
|
||||
}
|
||||
|
||||
# Heartbeat for monitoring
|
||||
heartbeat {
|
||||
enabled on;
|
||||
interval 9.9;
|
||||
url http://php:80/api/srs/heartbeat;
|
||||
device_id easystream-srs;
|
||||
summaries off;
|
||||
}
|
||||
Reference in New Issue
Block a user