Files
easystream-main/srs.conf
SamiAhmed7777 0b7e2d0a5b 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
2025-10-21 00:39:45 -07:00

166 lines
4.4 KiB
Plaintext

# 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;
}