微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流

2024-03-25 01:50

本文主要是介绍微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于srs直播群集架构之一路rtmp推流,多rtmp拉流

一、架构设计

1、基础网络设施架构

2、一台目标推流的服务器,负责直播的源存储转发(origin)

3、一台loadbalance服务器,负责边界拉流服务器的负载调度(loadbalance)

4、两台realserver服务器,参与负载调度的边界拉流服务器(edge)

5、参与负载调度的服务器可以横向扩展

6、架构设计图,见下图

a09aefb4e6a5f3f6cdb2abf83a89bccb.png

二、环境说明

所有服务器系统:centos-6.7-x86_64 Linux内核2.6.32

推流系统:网络摄像头作为视频源(rtsp),obs采集视频并推流(rtmp)

直播服务器软件: srs(simple-rtmp-server) SRS-CentOS6-x86_64-2.0.205.zip

loadbalance软件: ipvsadm-1.26-4.el6.x86_64 && keepalived-1.2.13-5.el6_6.x86_64

三、系统实现

1、推流服务器配置,即srs-origin

网卡配置:eth2:172.16.1.207/24

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim origin.conf

listen              1935;

max_connections     1000;

pid                 objs/origin.pid;

srs_log_file        ./objs/origin.log;

vhost __defaultVhost__ {

gop_cache       off;

queue_length    10;

min_latency     on;

mr {

enabled     off;

}

mw_latency      100;

tcp_nodelay     on;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为origin.conf

c.启动srs服务

service srs start

推流和拉流测试rtmp://172.16.1.228/live/livestream

2、loadbalance服务器配置,即loadbalance

网卡配置eth2:172.16.1.208/24  eth2:0:172.16.1.200/24

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1

安装调度器软件ipvsadm&&keepalived :yum install ipvsadm keepalived -y

配置keepalived:vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

}

notification_email_from keepalived@localhost

#smtp_server 192.168.200.1

#smtp_connect_timeout 30

#router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eth2

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

172.16.1.200

}

}

virtual_server 172.16.1.200 1935 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 172.16.1.211 1935 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 172.16.1.207 1935 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

启动服务和保存配置:service network restart  service ipvsadm start   service keepalived start

3、realserver1服务器配置,即srs-edge1

网卡配置:eth2:172.16.1.211/24  lo:0:172.16.1.200/32

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1  添加                                                                                                                   net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

添加本地路由:route add -host 172.16.1.200 dev lo:0

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim edge.conf

listen              1935;

max_connections     1000;

pid                 objs/edge.pid;

srs_log_file        ./objs/edge.log;

vhost __defaultVhost__ {

mode            remote;

origin          172.16.1.228:1935;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为edge.conf

c.启动srs服务,并重启网卡服务

service srs start  service network restart

4、realserver2服务器配置,即srs-edge2

网卡配置:eth2:172.16.1.207/24  lo:0:172.16.1.200/32

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1  添加                                                                                                                   net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

添加本地路由:route add -host 172.16.1.200 dev lo:0

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim edge.conf

listen              1935;

max_connections     1000;

pid                 objs/edge.pid;

srs_log_file        ./objs/edge.log;

vhost __defaultVhost__ {

mode            remote;

origin          172.16.1.228:1935;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为edge.conf

c.启动srs服务,并重启网卡服务

service srs start  service network restart

四、系统测试

最终群集结果:

单路推流服务器地址:rtmp://172.16.1.228/live/streamlive

多路拉流服务器地址:rtmp://172.16.1.200/live/streamlive

这篇关于微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843488

相关文章

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署