Clone
30
v2_CN_SampleHttpFlvCluster
winlin edited this page 2022-01-06 11:57:15 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

HOME > CN > HTTP FLV Cluster

SRS-HTTP-FLV集群部署实例

SRS支持HTTP FLV直播流集群分发详细参考HTTP FLV

SRS的HTTP FLV边缘只能使用单进程如何做到多进程呢可以使用HTTP反向代理SRS提供了go-sharp支持根据SRS边缘的负载均衡以及心跳检测。参考go-sharp

本例子部署了三个SRS侦听不同的端口实际可以部署到不同的机器侦听同一个端口一个作为Origin源站两个作为Edge边缘。推RTMP流到源站或者边缘后可以通过任何Edge观看和RTMP的效果一样集群的延迟在0.8-3秒。

假设服务器的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源站配置文件。详细参考HTTP FLV

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

# conf/http.flv.live.conf
listen              1935;
max_connections     1000;
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
vhost __defaultVhost__ {
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
        hstrs       on;
    }
}

第四步编写SRS边缘配置文件。详细参考HTTP FLV

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

# conf/http.flv.live.edge1.conf
listen              19351;
max_connections     1000;
pid                 objs/srs.flv.19351.pid;
srs_log_file        objs/srs.flv.19351.log;
http_server {
    enabled         on;
    listen          8081;
    dir             ./objs/nginx/html;
}
vhost __defaultVhost__ {
    mode remote;
    origin 127.0.0.1;
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
        hstrs       on;
    }
}

第五步启动SRS。详细参考HTTP FLV

./objs/srs -c conf/http.flv.live.conf &
./objs/srs -c conf/http.flv.live.edge1.conf &
./objs/srs -c conf/http.flv.live.edge2.conf &

第六步,启动推流编码器。详细参考HTTP FLV

使用FFMPEG命令推流

    for((;;)); do \
        ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
        -vcodec copy -acodec copy \
        -f flv -y rtmp://192.168.1.170/live/livestream; \
        sleep 1; \
    done

或使用支持FMLE推流

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

源站,生成的流地址为:

  • RTMP流地址为rtmp://192.168.1.170/live/livestream
  • HTTP FLV: http://192.168.1.170:8080/live/livestream.flv

边缘1生成的流地址为

  • RTMP流地址为rtmp://192.168.1.170:19351/live/livestream
  • HTTP FLV: http://192.168.1.170:8081/live/livestream.flv

边缘2生成的流地址为

  • RTMP流地址为rtmp://192.168.1.170:19352/live/livestream
  • HTTP FLV: http://192.168.1.170:8082/live/livestream.flv

第七步观看RTMP流。详细参考HTTP FLV

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

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

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

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

第八步观看HTTP流。详细参考HTTP FLV

源站HTTP FLV流地址为 http://192.168.1.170:8080/live/livestream.flv可以使用VLC观看或者使用在线SRS播放器播放jwplayer-flv

边缘1的HTTP FLV流地址为 http://192.168.1.170:8081/live/livestream.flv可以使用VLC观看或者使用在线SRS播放器播放jwplayer-flv-8081

边缘2的HTTP FLV流地址为 http://192.168.1.170:8082/live/livestream.flv可以使用VLC观看或者使用在线SRS播放器播放jwplayer-flv-8081

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

Winlin 2014.4