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            ;
max_connections ;
srs_log_tank file;
srs_log_file ./objs/srs.log;
http_api {
enabled on;
listen ;
}
http_server {
enabled on;
listen ;
dir ./objs/nginx/html;
}
stats {
network ;
disk sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
min_latency on;
mr {
enabled off;
}
mw_latency ;
gop_cache off;
queue_length ;
tcp_nodelay on;
hls {
enabled on;
hls_path ./objs/nginx/html;
hls_fragment ;
hls_window ;
}
dvr {
enabled on;
dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_plan session;
dvr_duration ;
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

利用Simple-RTMP-Server(SRS)来进行直播的更多相关文章

  1. Simple Rtmp Server的安装与简单使用

    Simple Rtmp Server是一个国人编写的开源的RTMP/HLS流媒体服务器. 功能与nginx-rtmp-module类似, 可以实现rtmp/hls的分发. 有关nginx-rtmp-m ...

  2. Server Develop (九) Simple Web Server

    Simple Web Server web服务器hello world!-----简单的socket通信实现. HTTP HTTP是Web浏览器与Web服务器之间通信的标准协议,HTTP指明了客户端如 ...

  3. 基于SRS+OBS搭建直播系统

    这段时间与视频,直播相关的技术不可谓不热,今天我们就近距离接触下,尽早搭上这班车! 我们先看一张效果图 左边是OBS 推流端,右边是VLC播放器,稍微有延迟! 本文是基于VMware(12.5.7)+ ...

  4. Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能

    2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...

  5. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需 ...

  6. nginx的rtmp搭建流媒体服务器实现直播流

    最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...

  7. 利用Microsoft Sql Server Management studio 创建数据库的示例

    利用Microsoft Sql Server Management studio 创建数据库的示例方法如下:   一.打开安装好的Microsoft Sql Server Management stu ...

  8. simple HTTP server with upload

    #!/usr/bin/env python """Simple HTTP Server With Upload. https://github.com/tualatrix ...

  9. Ubuntu x86 64 settup nginx rtmp server

    常常搭建nginxserver,可是好像每次的情况都不同,这次具体记录这个过程: 平台:unbutu 10.04 内核:2.6.32-33-generic 1, 编译环境搭建. sudo apt-ge ...

  10. Creating A Simple Web Server With Golang

    原文:https://tutorialedge.net/post/golang/creating-simple-web-server-with-golang/ -------------------- ...

随机推荐

  1. Linux学习之三--scp命令

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  2. 答辩HTML5

    答辩有三个项目,有三个游戏和知乎,游戏都是有js写的,我想说的是想要做一个是那么难啊!老师给了我们游戏的项目还有游戏的思路构成,完成项目.还有一个知乎,也很难,用到HTML,css3,php,数据库, ...

  3. 转:C++项目中的extern "C" {}

    引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __c ...

  4. 阿里云部署nodejs服务器(windows)

    花了大半个月做的网站终于要上线了,周围的同学们很多都在使用阿里云的服务器,我也入手了一台.考虑到自己不是很适应ubuntu的命令行界面,于是买了个windows的,上网搜了一下,似乎都是用linux来 ...

  5. Cosmos —— Big Data at Microsoft

    1, 1,cosmos stores. Cosmos stores data as streams – a file-like structure Streams are split apart in ...

  6. java 保留字符串数字的位数,不够前面补0

    @Test public void test() { this.printToConsole(autoGenericCode("10011")); this.printToCons ...

  7. c++ 陷阱

    .c89 c90 gnu90 c99 c11 c++98( default ) c++03 c++11 gnu++11 boolC 标准 does not support the boolean da ...

  8. iOS三种正则表达式

    1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @"nijino_saki@.com": NSString *regex = @ ...

  9. Wakez计算与压缩的思考

    大部分人认为,比尔盖茨在1981年说过这样一句话:640K ought to be enough for anybody.(640个kB对任何人来说都应该足够了).不过后来比尔盖茨否认自己说过这句话. ...

  10. libc++abi.dylib`__cxa_throw: 视频播放时异常

    这两天研究视频播放,集成RTMP视频出现的异常,刚好看到一篇博客,楼主使用[AVAudioPlayer Play]时出现了异常...记录下来: 由于xcode中设置了当所有异常出现时的断点,,解决办法 ...