surging 基于流媒体服务如何集群分流

下面以上图流媒体集群分流的例子,看看是如何研发运行的。

以部署两台服务提供者为例,服务A,通过下载surging企业版(非商业用户不能用于商业,只能用于学习),通过以下配置来修改surgingSettings.json文件

复制代码
{
“Surging”: {

"Port": "${Surging_Server_Port}|81",
 
"Ports": {
  "HttpPort": "${HttpPort}|28",
  "WSPort": "${WSPort}|96",
  "MQTTPort": "${MQTTPort}|97",
  "GrpcPort": "${GrpcPort}|95"
},

“LiveStream”: {
“RtmpPort”: 77, //rtmp 端口
“HttpFlvPort”: 8081, //HttpFlv 端口
“EnableLog”: true, //是否启用log
“EnableHttpFlv”: true,
“RouteTemplate”: “live1”, //直播服务路由规则名称,可以根据规则设置,比如集群节点2,可以设置live2, 集群节点3,可以设置live3
“ClusterNode”: 2 //集群节点数里,会根据routetemplate 转推流
}
}
复制代码

服务B,通过以下配置来修改surgingSettings.json文件

复制代码
{
“Surging”: {

"Port": "${Surging_Server_Port}|82",
 
"Ports": {
  "HttpPort": "${HttpPort}|281",
  "WSPort": "${WSPort}|961",
  "MQTTPort": "${MQTTPort}|971",
  "GrpcPort": "${GrpcPort}|951"
},

“LiveStream”: {
“RtmpPort”: 76, //rtmp 端口
“HttpFlvPort”: 8080, //HttpFlv 端口
“EnableLog”: true, //是否启用log
“EnableHttpFlv”: true,
“RouteTemplate”: “live1”, //直播服务路由规则名称,可以根据规则设置,比如集群节点2,可以设置live2, 集群节点3,可以设置live3
“ClusterNode”: 2 //集群节点数里,会根据routetemplate 转推流
}
}
复制代码
然后可以通过ffmpeg或者obs进行推流,以ffmpeg 工具为例,可以输入以下命令

ffmpeg -re -i D:/大H包.HDTC1280高清国语中字版.mp4 -c copy -f flv rtmp://127.0.0.1:76/live1/livestream2
通过以下代码我们创建httpflv 的html 文件,url配置为:http://127.0.0.1:8080/live1/livestream2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

flv.js demo
<style>
    .mainContainer {
        display: block;
        width: 1024px;
        margin-left: auto;
        margin-right: auto;
    }

    .urlInput {
        display: block;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        margin-top: 8px;
        margin-bottom: 8px;
    }

    .centeredVideo {
        display: block;
        width: 100%;
        height: 576px;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: auto;
    }

    .controls {
        display: block;
        width: 100%;
        text-align: left;
        margin-left: auto;
        margin-right: auto;
        margin-top: 8px;
        margin-bottom: 10px;
    }

    .logcatBox {
        border-color: #CCCCCC;
        font-size: 11px;
        font-family: Menlo, Consolas, monospace;
        display: block;
        width: 100%;
        text-align: left;
        margin-left: auto;
        margin-right: auto;
    }
</style>
<div class="mainContainer">
    <video name="videoElement" class="centeredVideo" id="videoElement" controls width="1024" height="576" autoplay>
        Your browser is too old which doesn't support HTML5 video.
    </video>

</div>

<script src="https://cdn.bootcdn.net/ajax/libs/flv.js/1.5.0/flv.min.js"></script>
 
<script>
    (function () {
        if (flvjs.isSupported()) {
            startVideo()
        }

        function startVideo() {
            var videoElement = document.getElementById('videoElement');
            var flvPlayer = flvjs.createPlayer({
                type: 'flv',
                isLive: true,
                hasAudio: true,
                hasVideo: true,
                enableStashBuffer: false,
                url: 'http://127.0.0.1:8080/live1/livestream2'
            });
            flvPlayer.attachMediaElement(videoElement);
            flvPlayer.load();
            window.setTimeout(function () { flvPlayer.play(); }, 500);

        }

        videoElement.addEventListener('click', function () {
            alert('是否支持点播视频:' + flvjs.getFeatureList().mseFlvPlayback + ' 是否支持httpflv直播流:' + flvjs.getFeatureList().mseLiveFlvPlayback)
        })

        function destoryVideo() {
            flvPlayer.pause();
            flvPlayer.unload();
            flvPlayer.detachMediaElement();
            flvPlayer.destroy();
            flvPlayer = null;
        }

        function reloadVideo() {
            destoryVideo()
            startVideo()
        }
    }) (document)
</script>
USB Microphone https://www.soft-voice.com/ Wooden Speakers https://www.zeshuiplatform.com/ 亚马逊测评 www.yisuping.cn 深圳网站建设www.sz886.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值