如何快速构建一套稳定、高效、可靠的网页无插件监控、直播、点播解决方案

2023-03-29 15:34:04 浏览数 (1)

如何快速构建一套稳定、高效、可靠的网页无插件直播点播系统?

目前直播流媒体市场已经比较成熟,比较出名的流媒体直播点播服务器有:

代码语言:txt复制
1. 开源流媒体服务SRS
2. 基于NGINX的RTMP直播点播开源流媒体服务器NGINX-RTMP-MODULE
3. SkeyeVSS RTSP/RTMP/FLV/WS-RTSP/HLS流媒体服务器

SRS开源流媒体服务

SRS 简介

SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS,

包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、

转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、转封装成HDS、录制成FLV。

SRS包含支大规模集群如CDN业务的关键特性,譬如RTMP

多级集群、源站集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群、Kafka对接。此外,SRS还提供丰富的应用接口,包括HTTP回调、

安全策略Security、HTTP API接口、RTMP测速。SRS在源站和CDN集群中都得到了广泛的应用Applications。

官方说明

SRS特点

代码语言:txt复制
1、简单,足够稳定。
代码语言:txt复制
2、高性能,高并发,SRS是单线程、事件/st-线程驱动。最大可支持6k客户端。官网性能介绍: 性能测试
代码语言:txt复制
3、可以作为rtmp源服务器,也可作为节点对接CND,从其他rtmp服务器上推/拉流。
代码语言:txt复制
4、支持Vhost 及defaultVhost配置。
代码语言:txt复制
5、核心功能是分发RTMP,主要定位就是分发RTMP低延时流媒体,同时支持分发HLS流。
代码语言:txt复制
6、服务Reload 机制,即在不中断服务时应用配置的修改。达到不中断服务调整码率,添加或调整频道。
代码语言:txt复制
7、cache 一个GOP ,达到播放器能快速播放的效果。(gop_cache配置项)
代码语言:txt复制
8、可监听多个端口,支持长时间推拉流。
代码语言:txt复制
9、forward配置项,可在服务器间转发流。
代码语言:txt复制
10、支持转码,可以对推送到SRS的RTMP流进行转码,然后输出到其他RTMP服务器。可对指定的流配置是否转码。内置了FFMPEG.同时会提供FFMPEG的部分功能:输出纯音频、加文字水印、剪切视频、添加图片LOGO等。
代码语言:txt复制
11、支持http回调,提供了客户端连接接口、关闭连接接口、流发布、流停止、流播放、停止播放等接口,方便再封装的应用跟踪流信息。内置也有一个http服务器,可直接调用api接口。
代码语言:txt复制
12、内置流带宽测试工具、完善的日志跟踪规则。
代码语言:txt复制
13、脚本管理,提供init.d系统脚本,也可通过调用api 控制服务状态。
代码语言:txt复制
14、采集端支持:设备、本地文件,RTSP摄像头、rtmp等。官方意思是,能拉任意的流,只要FFMPEG支持,不是h264/aac都没有关系,FFMPEG能转码。SRS的接入方式可以是“推流到SRS”和“SRS主动拉流”。
代码语言:txt复制
15、支持将RTMP流录制成flv文件。FLV文件的命名规则是随机生成流名称,上层应用可通过http-callback 管理流信息。
代码语言:txt复制
16、SRS日志很完善,支持打印到console和file,支持设置level,支持连接级别的日志,支持可追溯日志。

推荐大家使用SkeyeVSS综合安防视频云服务:

  • 1,复杂的安防系统简单化,一键安装一键部署,一键启动,SkeyeVSS部署简单,不管是windows还是linux系统,分分钟就可以完成部署;支持横向互联,纵向级联,流媒体集群化部署。
  • 2,SkeyeVSS配置简单,安装完成后,如果不考虑流媒体和接入服务集群,单台设备即可自动完成各服务组件的自动接入和配置,我们只需要关心设备接入和业务配置即可。
  • 3,功能齐全,支持多网域、多地域监控视频资源接入系统进行统一管理,SkeyeVSS涵盖了无插件直播、无插件回放、设备控制、报警管理、服务器集群等方方面面,其独有的ws-rtsp流媒体技术,可以无缝对接安防监控系统。
  • 4,稳定可靠,系统低耦合,采用分布式微服务架构,可灵活配置安防系统中的各个子系统服务,SkeyeVSS支持7*24小时运行,各服务组件运行时均有看门狗监控服务,保证各服务节点的稳定运行。
  • 5,高效的流媒体分发和超低延迟的直播技术,保障网页无插件直播的实时行和高可用性;兼容传统安防流媒体的同时,不需要安装插件等。
  • 6,低廉的价格,为了便于系统推广,6路以下的设备接入直接永久免费试用,几千块钱即可构建一套功能强大、稳定、高效、可靠的网页无插件直播点播系统。

基于NGINX的RTMP直播点播开源流媒体服务器

一、安装加载nginx-rtmp-module模块的nginx

1、到nginx.org 下载稳定版本的nginx

2、到 https://github.com/arut/nginx-rtmp-module 下载rtmp模块(git clone https://github.com/arut/nginx-rtmp-module.git)

解压nginx的tar包;nginx 和trmp模块在同一目录

nginx-1.12.2 nginx-1.12.2.tar.gz nginx-rtmp-module

3、到nginx解压目录配置编译参数

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module.1.1.4 --with-http_ssl_module

4、make && make install 安装

如果已安装nginx可以在已有nginx上面增加模块:参考https://www.cnblogs.com/zhangmingda/p/12622590.html

二、配置nginx rtmp直播功能nginx.conf

代码语言:txt复制
 server {
代码语言:txt复制
    listen 8080;
代码语言:txt复制
        #配置RTMP状态一览HTTP页面=========================================
代码语言:txt复制
        location /stat {
代码语言:txt复制
            rtmp_stat all;
代码语言:txt复制
            rtmp_stat_stylesheet stat.xsl;
代码语言:txt复制
        }
代码语言:txt复制
        location /stat.xsl {
代码语言:txt复制
            root /opt/rtmp/nginx-rtmp-module/;
代码语言:txt复制
        }
代码语言:txt复制
        #配置RTMP状态一览界面结束==========================
代码语言:txt复制
     #HTTP协议访问直播流文件配置
代码语言:txt复制
        location /hls {  #添加视频流存放地址。
代码语言:txt复制
                types {
代码语言:txt复制
                    application/vnd.apple.mpegurl m3u8;
代码语言:txt复制
                    video/mp2t ts;
代码语言:txt复制
                }
代码语言:txt复制
                #访问权限开启,否则访问这个地址会报403
代码语言:txt复制
                autoindex on;
代码语言:txt复制
                alias /usr/share/nginx/html/hls;#视频流存放地址,与下面的hls_path相对应,这里root和alias的区别可自行百度
代码语言:txt复制
                expires -1;
代码语言:txt复制
                add_header Cache-Control no-cache;
代码语言:txt复制
                #防止跨域问题
代码语言:txt复制
                add_header 'Access-Control-Allow-Origin' '*';
代码语言:txt复制
                add_header 'Access-Control-Allow-Credentials' 'true';
代码语言:txt复制
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
代码语言:txt复制
                add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';  
代码语言:txt复制
            }
代码语言:txt复制
    }
代码语言:txt复制
}
代码语言:txt复制
#点播/直播功能实现配置rtmp协议
代码语言:txt复制
rtmp {
代码语言:txt复制
    server {
代码语言:txt复制
        listen 1935;
代码语言:txt复制
        chunk_size 4000;
代码语言:txt复制
        application vod {
代码语言:txt复制
            play /usr/share/nginx/html/vod/flvs/;#点播媒体存放目录
代码语言:txt复制
        }
代码语言:txt复制
        application live {
代码语言:txt复制
            live on;
代码语言:txt复制
        }
代码语言:txt复制
      #HLS直播配置
代码语言:txt复制
        application hls {
代码语言:txt复制
            live on;
代码语言:txt复制
            hls on;
代码语言:txt复制
            hls_path /usr/share/nginx/html/hls;#视频流存放地址
代码语言:txt复制
            hls_fragment 5s;
代码语言:txt复制
            hls_playlist_length 15s;
代码语言:txt复制
            hls_continuous on; #连续模式。
代码语言:txt复制
            hls_cleanup on;    #对多余的切片进行删除。
代码语言:txt复制
            hls_nested on;     #嵌套模式。
代码语言:txt复制
        }
代码语言:txt复制
    }
代码语言:txt复制
}

SkeyeVSS RTSP/RTMP/FLV/WS-RTSP/HLS流媒体服务器

SkeyeVSS综合安防视频云服务, 提供一站式私有化部署视频安防综合管理系统解决方案。SkeyeVSS秉持网络化、集成化、智能化的理念,采用先进的软硬件开发技术,解决了综合安防系统集中管理、多级联网、信息共享、互联互通、多业务融合等问题。

SkeyeVSS其独创的ws-rtsp流媒体直播技术,兼容传统安防流媒体的同时,不需要安装浏览器插件,解决互联网接入安防监控延迟高、起播慢等问题;支持全平台终端H5直播点播(PC、Web、Android、iOS)。

0 人点赞