diff --git a/README.md b/README.md index 5a921aff6..022dcd187 100755 --- a/README.md +++ b/README.md @@ -89,18 +89,20 @@ Fast index for Wikis: * Overview? ([CN](https://github.com/ossrs/srs/wiki/v4_CN_Home), [EN](https://github.com/ossrs/srs/wiki/v4_EN_Home)) * How to deliver RTMP streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMP), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMP)) +* How to deliver WebRTC streaming? ([CN](https://github.com/ossrs/srs/wiki/v4_CN_WebRTC), [EN](https://github.com/ossrs/srs/wiki/v4_EN_WebRTC)) +* How to covert RTMP to HTTP-FLV streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlv), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlv)) +* How to covert RTMP to HLS streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHLS), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHLS)) +* How to deliver low-latency streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleRealtime), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleRealtime)) * How to build RTMP Edge-Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMPCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMPCluster)) * How to build RTMP Origin-Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleOriginCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleOriginCluster)) -* How to deliver HTTP-FLV streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlv), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlv)) -* How to deliver HLS streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHLS), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHLS)) -* How to deliver low-latency streaming?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleRealtime), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleRealtime)) -* How to use WebRTC? ([CN](https://github.com/ossrs/srs/wiki/v4_CN_WebRTC), [EN](https://github.com/ossrs/srs/wiki/v4_EN_WebRTC)) +* How to build HLS Edge-Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHlsCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHlsCluster)) Other important wiki: -* Usage: How to delivery DASH(Experimental)?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleDASH), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleDASH)) +* Usage: How to deliver DASH(Experimental)?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleDASH), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleDASH)) * Usage: How to transode RTMP stream by FFMPEG?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleFFMPEG), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleFFMPEG)) -* Usage: How to delivery HTTP FLV Live Streaming Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlvCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlvCluster)) +* Usage: How to deliver HTTP FLV Live Streaming Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlvCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlvCluster)) +* Usage: How to deliver HLS by NGINX Cluster?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHlsCluster), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHlsCluster)) * Usage: How to ingest file/stream/device to RTMP?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleIngest), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleIngest)) * Usage: How to forward stream to other servers?([CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleForward), [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleForward)) * Usage: How to improve edge performance for multiple CPUs? ([CN](https://github.com/ossrs/srs/wiki/v4_CN_REUSEPORT), [EN](https://github.com/ossrs/srs/wiki/v4_EN_REUSEPORT)) diff --git a/trunk/conf/hls.edge.conf b/trunk/conf/hls.edge.conf new file mode 100644 index 000000000..84e1dc5bc --- /dev/null +++ b/trunk/conf/hls.edge.conf @@ -0,0 +1,37 @@ + +worker_processes 3; +events { + worker_connections 10240; +} + +http { + # For Proxy Cache. + proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=srs_cache:8m max_size=1000m inactive=600m; + proxy_temp_path /tmp/nginx-cache/tmp; + + server { + listen 8081; + # For Proxy Cache. + proxy_cache_valid 404 10s; + proxy_cache_lock on; + proxy_cache_lock_age 300s; + proxy_cache_lock_timeout 300s; + proxy_cache_min_uses 1; + + location ~ /.+/.*\.(m3u8)$ { + proxy_pass http://127.0.0.1:8080$request_uri; + # For Proxy Cache. + proxy_cache srs_cache; + proxy_cache_key $scheme$proxy_host$uri$args; + proxy_cache_valid 200 302 10s; + } + location ~ /.+/.*\.(ts)$ { + proxy_pass http://127.0.0.1:8080$request_uri; + # For Proxy Cache. + proxy_cache srs_cache; + proxy_cache_key $scheme$proxy_host$uri; + proxy_cache_valid 200 302 60m; + } + } +} + diff --git a/trunk/conf/hls.origin.conf b/trunk/conf/hls.origin.conf new file mode 100644 index 000000000..5eaab957b --- /dev/null +++ b/trunk/conf/hls.origin.conf @@ -0,0 +1,15 @@ + +listen 1935; +max_connections 1000; +daemon off; +srs_log_tank console; +http_server { + enabled on; + listen 8080; +} +vhost __defaultVhost__ { + hls { + enabled on; + } +} + diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index bfaa89442..7eb1f55b2 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -8,6 +8,7 @@ The changelog for SRS. ## SRS 5.0 Changelog +* v5.0, 2022-04-04, Support NGINX HLS Cluster, see [CN](https://github.com/ossrs/srs/wiki/v4_CN_SampleHlsCluster) or [EN](https://github.com/ossrs/srs/wiki/v4_EN_SampleHlsCluster). v5.0.28 * v5.0, 2022-03-30, Support DigitalOcean [Droplet SRS 1-Click](https://cloud.digitalocean.com/droplets/new?appId=104916642&size=s-1vcpu-1gb®ion=sgp1&image=ossrs-srs&type=applications). v5.0.27 * v5.0, 2022-03-12, Merge [#2943](https://github.com/ossrs/srs/pull/2943): SRT: Fix typo in libsrt build options. v5.0.26 * v5.0, 2022-03-09, Merge SRS 4.0 for bugfix. v5.0.25 diff --git a/trunk/src/core/srs_core_version5.hpp b/trunk/src/core/srs_core_version5.hpp index e78f720f5..d25598115 100644 --- a/trunk/src/core/srs_core_version5.hpp +++ b/trunk/src/core/srs_core_version5.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 0 -#define VERSION_REVISION 27 +#define VERSION_REVISION 28 #endif