下面以上图流媒体集群分流的例子,看看是如何研发运行的。
以部署两台服务提供者为例,服务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
<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