视频监控系统

SRS环境搭建

2019-03-08  本文已影响277人  末世狂人

SRS系统详解

srs的安装

获取SRS

git clone https://github.com/ossrs/srs
cd srs/trunk

编译SRS

./configure && make

开放端口

注意: 新增端口时确保防火墙是开启状态,否则无法开放端口

查看防火墙状态
systemctl status firewalld

开启端口 
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT 

8080:http流媒体服务
srs监听端口(系统默认):1935
srsAPI端口:1985

查看打开的端口
/etc/init.d/iptables status

关闭防火墙和selinux

防火墙操作

临时关闭防火墙
systemctl stop firewalld

防火墙开机不启动
systemctl disable firewalld

临时打开防火墙
systemctl start firewalld

防火墙开机启动
systemctl enable firewalld

selinux操作

临时关闭SELinux
setenforce 0

临时打开SELinux
setenforce 

开机关闭SELinux
编辑/etc/sysconfig/selinux文件,将SELINUX的值设置为disabled  :SELINUX=disabled

系统重启(防火墙和selinux修改后,服务器重启才能生效)

重启系统:sudo init 6

修改配置文件

配置文件路径
vi /usr/local/srs/conf/srs.conf
#基本配置如下:

listen            1935;
max_connections    1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
http_api {
    enabled    on;
    listen        1985;
}
http_server {
    enabled    on;
    listen        8080;
    dir        ./objs/nginx/html;
}
stats {
    network    0;
    disk        sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
    min_latency    on;
    mr {
        enabled    off;
    }
    mw_latency    100;
    gop_cache    off;
    queue_length    10;
    tcp_nodelay    on;
}

说明

HLS\FLV\HDS相关配置请参考SRS官网api
https://github.com/ossrs/srs/wiki/v2_CN_Home

http_hooks配置(回调)

在srs.conf中的vhost __defaultVhost__下加入
http_hooks {
        enabled        on;
        on_connect        http://[ip]:[port]/[name];
        ...
    }

如:配置回调接口为的机子,配置如下*

http_hooks {
        enabled         off;
        on_connect      http://IP:8080/dev/apis/srs/v1/srs/on_connect;    #当客户端连接到指定的vhost和app时
        on_close        http://IP:8080/dev/apis/srs/v1/srs/on_close;      #当客户端关闭连接,或者SRS主动关闭连接时
        on_publish      http://IP:8080/dev/apis/srs/v1/srs/on_publish;    #当客户端发布流时,譬如flash/FMLE方式推流到服务器
        on_unpublish    http://IP:8080/dev/apis/srs/v1/srs/on_unpublish;  #当客户端停止发布流时
        on_play         http://IP:8080/dev/apis/srs/v1/srs/on_play;       #当客户端开始播放流时
        on_stop         http://IP:8080/dev/apis/srs/v1/srs/on_stop;       #当客户端停止播放时。备注:停止播放可能不会关闭连接,还能再继续播放。
        on_dvr          http://IP:8080/dev/apis/srs/v1/srs/on_dvr;        #当DVR录制关闭一个flv文件时
    }

注意:回调函数的接口必须为POST方式,否则会报错

详细说明:https://github.com/ossrs/srs/wiki/v2_CN_HTTPCallback

修改配置文件之后,需要重启srs服务

注意:

启动SRS

/etc/init.d/srs start

ffmepg推流

./objs/ffmpeg/bin/ffmpeg-i [推流地址] -c copy -f flv [拉流地址]

列:ffmpeg -i rtsp://admin:admin123456@172.30.140.210:554/h264/ch33/sub/av_stream -c copy -f flv rtmp://172.30.140.208:1935/live/livestream2

注意:

推流地址:该地址为音视频源地址,如摄像头访问地址,音视频文件地址等

拉流地址:通过srs系统向用户暴露出去的访问地址

SRS相关操作

查看SRS状态:
    /etc/init.d/srs status
    
启动SRS:
    /etc/init.d/srs start
    
停止SRS:
    /etc/init.d/srs stop
    
重启SRS:
    /etc/init.d/srs restart
    
Reload SRS:
    /etc/init.d/srs reload

web端调用接口

timo_srs服务为前端提供摄像头数据拉取,摄像头信息存储等功能。

http://[IP]:8080/dev/apis/srs/v1/swagger-ui.html

put:/video 添加或修改视频信息

VideoSourceModel {
id (integer, optional): ID ,
playBackAdd (string, optional): 视频回放地址 ,
stream (string, optional): stream ,
videoName (string, optional): 视频名称 ,
videoPlayAdd (string, optional): 视频播放地址 ,
videoSourceAdd (string, optional): 视频源地址
}

get:/video/list 获取视频列表

get:/video/play-back 获取指定视频的回放地址

id: 视频ID
startDate:回放开始时间

get:/video/play/{id} 播放指定视频

id:视频ID

get:/video/stop 停止播放指定视频

id:视频ID

SRS_Service 回调接口,不需要对接方进行调用

上一篇 下一篇

猜你喜欢

热点阅读