Skip to content

v4_CN_SampleHlsCluster

Winlin edited this page Apr 4, 2022 · 7 revisions

HOME > CN > Edge Cluster

HLS Edge Cluster Example

Note: 如果觉得Github的Wiki访问太慢,可以访问 Gitee 镜像。

如何创建分发HLS的边缘集群,就像CDN一样分发HLS流。

假设服务器的IP是:192.168.1.170

第一步,获取SRS。详细参考GIT获取代码

git clone https://github.com/ossrs/srs
cd srs/trunk

或者使用git更新已有代码:

git pull

第二步,编译SRS。详细参考Build

./configure && make

第三步,编写SRS源站配置文件,生成HLS切片文件。详细参考HLS分发

将以下内容保存为文件,譬如conf/hls.origin.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/hls.origin.conf
listen              1935;
max_connections     1000;
pid                 objs/origin.pid;
srs_log_file        ./objs/origin.log;
http_server {
    enabled         on;
    listen          8080;
}
vhost __defaultVhost__ {
    hls {
        enabled         on;
    }
}

第四步,编写NGINX边缘配置文件,分发HLS文件。详细参考Nginx for HLS

将以下内容保存为文件,譬如conf/hls.edge.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/hls.edge.conf
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_key $scheme$proxy_host$uri;
        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_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_valid  200 302  60m;
        }
    }
}

第五步,启动SRS源站和NGINX边缘。

./objs/srs -c conf/hls.origin.conf &
./objs/srs -c conf/edge.conf &

第六步,启动推流编码器。详细参考RTMP分发Edge

使用FFMPEG命令推流:

    for((;;)); do \
        ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.flv \
        -c copy \
        -f flv rtmp://192.168.1.170/live/livestream; \
        sleep 1; \
    done

或使用FMLE推流:

FMS URL: rtmp://192.168.1.170/live
Stream: livestream

第七步,观看RTMP流。详细参考RTMP分发Edge

源站RTMP流地址为:rtmp://192.168.1.170:19350/live/livestream,可以使用VLC观看。或者使用在线SRS播放器播放:srs-player-19350

边缘RTMP流地址为:rtmp://192.168.1.170/live/livestream,可以使用VLC观看。或者使用在线SRS播放器播放:srs-player

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

Winlin 2014.3

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally