微信多群直播服务器,基于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

相关文章

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

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防火墙开启的情况下,遇到的错误如下:无法与