利用Simple-RTMP-Server(SRS)来进行直播

简介: 1、下载SRS 官方地址:http://www.ossrs.net/srs.release/releases/ 百度地址:http://pan.baidu.com/s/1kV8WQpx   2、编译安装SRS tar zxvf srs-2.0-b2.tar.gz cd srs-2.0-b2 mv trunk/ /usr/local/srs cd /usr/local/srs  ./configure --full     #--full,开启SRS所有的功能。

1、下载SRS

官方地址:http://www.ossrs.net/srs.release/releases/

百度地址:http://pan.baidu.com/s/1kV8WQpx

 

2、编译安装SRS

tar zxvf srs-2.0-b2.tar.gz

cd srs-2.0-b2

mv trunk/ /usr/local/srs

cd /usr/local/srs 

./configure --full     #--full,开启SRS所有的功能。

make

注意:官方说需要关闭防火墙和selinux

 

3、修改配置文件

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 {
        enabled    on;
        hls_path    ./objs/nginx/html;
        hls_fragment    3;
        hls_window    12;
    }
    dvr {
        enabled    on;
        dvr_path    ./objs/nginx/html/[app]/[stream].[timestamp].flv;
        dvr_plan    session;
        dvr_duration    30;
        dvr_wait_keyframe    on;
        time_jitter    full;
    }
    http_hooks {
        enabled        on;
        on_connect        http://10.10.3.62/kgdxpr;
    }
}

说明:

hls配置节(hls分发)

enabled:是否开启HLS

hls_fragment:指定ts切片的最小长度(单位:秒)

hls_window:指定HLS大小,即m3u8中ts文件的时长之和,超过总时长后,丢弃第一个m3u8中的第一个切片,直到ts的总时长在这个配置项范围之内。即SRS保证下面的公式:
hls_window >= sum(m3u8中每个ts的时长)

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

dvr配置节(录制成FLV)

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

http_hooks配置节(回调)

on_connect  当客户端连接到指定的vhost和app时回调

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

lua用ngx.var.request_body获取回调传的数据

 

#启动分发hls(m3u8/ts)的nginx

/usr/local/srs/objs/nginx/sbin/nginx

#启动srs服务

/usr/local/srs/objs/srs -c /usr/local/srs/conf/srs.conf

 

4、利用OBS推流和用VLC播放

例如推流地址:rtmp://10.10.3.62:1935/live/livestream

确定后,开始推流

由于设置了HLS分发和录制FLV,所以在nginx目录下(/usr/local/srs/objs/nginx/html/live)会有m3u8/ts和flv文件

有一个文件是:livestream2.1479218641365.flv.tmp,是由于正在推流当停止推流后就变成真正的FLV文件

ts文件的长度和个数是根据配置文件的hls_fragment和hls_window属性配置出来,详细请参看:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS

 

用VLC来播放HLS或RTMP

rtmp播放地址:rtmp://10.10.3.62:1935/live/livestream

hls播放地址:http://10.10.3.62/live/livestream.m3u8

 

相关文章
|
Java API 网络架构
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码
2910 0
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
|
算法 JavaScript 前端开发
彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法(下)
至于分发?我们可以参考一下市面上已有的一些概念做一下对比,下面是笼统的一个网络服务器的TPS预估值,也就是说彩票服务器在1秒内可以处理的最大请求数:
|
消息中间件 Ubuntu Java
SpringBoot整合MQTT实战:基于EMQX实现双向设备通信
本教程指导在Ubuntu上部署EMQX 5.9.0并集成Spring Boot实现MQTT双向通信,涵盖服务器搭建、客户端配置及生产实践,助您快速构建企业级物联网消息系统。
3347 1
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
1547 7
|
机器学习/深度学习 vr&ar
深度学习笔记(十):深度学习评估指标
关于深度学习评估指标的全面介绍,涵盖了专业术语解释、一级和二级指标,以及各种深度学习模型的性能评估方法。
914 0
深度学习笔记(十):深度学习评估指标
|
存储 缓存 Ubuntu
Ubuntu apt-get 命令大全
【7月更文挑战第12天】
1658 6
Ubuntu apt-get 命令大全
|
Java 数据安全/隐私保护
Java使用PDFBox开发包实现对PDF文档内容编辑与保存
Java使用PDFBox开发包实现对PDF文档内容编辑与保存
845 7
|
Web App开发 移动开发 视频直播
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
1、前言 2017 年 12 月,微信小程序向开发者开放了实时音视频能力,给业内带来广阔的想象空间。连麦互动视频直播技术在 2016 年直播风口中成为视频直播的标配,然而只有在原生的 APP 上才能保障良好的用户体验。
4292 0
|
Python Windows
moviepy:基于 ffmpeg 的视频处理模块
moviepy:基于 ffmpeg 的视频处理模块
1203 0
|
Ubuntu Linux 数据安全/隐私保护
WSL2(2)安装与使用
WSL2(2)安装与使用
1026 0