利用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所有的功能。
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)来进行直播的更多相关文章
- Simple Rtmp Server的安装与简单使用
Simple Rtmp Server是一个国人编写的开源的RTMP/HLS流媒体服务器. 功能与nginx-rtmp-module类似, 可以实现rtmp/hls的分发. 有关nginx-rtmp-m ...
- Server Develop (九) Simple Web Server
Simple Web Server web服务器hello world!-----简单的socket通信实现. HTTP HTTP是Web浏览器与Web服务器之间通信的标准协议,HTTP指明了客户端如 ...
- 基于SRS+OBS搭建直播系统
这段时间与视频,直播相关的技术不可谓不热,今天我们就近距离接触下,尽早搭上这班车! 我们先看一张效果图 左边是OBS 推流端,右边是VLC播放器,稍微有延迟! 本文是基于VMware(12.5.7)+ ...
- Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能
2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...
- ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制
公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需 ...
- nginx的rtmp搭建流媒体服务器实现直播流
最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...
- 利用Microsoft Sql Server Management studio 创建数据库的示例
利用Microsoft Sql Server Management studio 创建数据库的示例方法如下: 一.打开安装好的Microsoft Sql Server Management stu ...
- simple HTTP server with upload
#!/usr/bin/env python """Simple HTTP Server With Upload. https://github.com/tualatrix ...
- Ubuntu x86 64 settup nginx rtmp server
常常搭建nginxserver,可是好像每次的情况都不同,这次具体记录这个过程: 平台:unbutu 10.04 内核:2.6.32-33-generic 1, 编译环境搭建. sudo apt-ge ...
- Creating A Simple Web Server With Golang
原文:https://tutorialedge.net/post/golang/creating-simple-web-server-with-golang/ -------------------- ...
随机推荐
- BZOJ2292——【POJ Challenge 】永远挑战
1.题意:dijkstra模板题,存点模板 #include <queue> #include <cstdio> #include <cstdlib> #inclu ...
- 如何在Linux上使用文件作为内存交换区(Swap Area)
交换区域(Swap Area)有什么作用? 交换分区是操作系统在内存不足(或内存较低)时的一种补充.通俗的说,如果说内存是汽油,内存条就相当于油箱,交换区域则相当于备用油箱. Ubuntu Linux ...
- 用GitHub Pages搭了个静态博客
经过周末两天折腾,终于在GitHub Pages上用Hugo搭了个静态博客. 链接:https://xusiwei.github.io/ @ruanyf 曾经在博客里提到过"喜欢写Blog的 ...
- cron 任务
相关文件 /etc/crontab /etc/cron.deny 设置哪个用户有权限运行 cron 任务 /var/spool/cron/root /var/spool/cron/user /var/ ...
- ubuntu14.04下直接修改apache2默认目录导致wordpress样式改变的解决办法
一开始看到网上有各种各样的解决方法: 第一种是直接将 sites-available目录下的000-default.conf中的下列代码: DocumentRoot /var/www/html 修改为 ...
- eclipse开发servlet,HttpServletRequest报红叉解决方案
eclipse开发servlet,HttpServletRequest报红叉解决方案 今天突然间有兴致,想打一会代码,于是开发一个Servlet,代码和配置路径都没问题,HttpServlet居然报错 ...
- java中scanner类的用法
在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检 ...
- Ubuntu安装Mysqlcluster集群
可参考:http://xuwensong.elastos.org/2014/01/13/ubuntu-%E4%B8%8Bmysql-cluster%E5%AE%89%E8%A3%85%E5%92%8C ...
- VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN
百度了了一大堆,都说让重装vc++6.0,然而并没有什么卵用. 解决办法:找到你的vc6.0安装路径下的WINDOWS.H,将0x0400改为0x0500 Window各个版本对应的宏值WINVER:
- memcache入门笔记
向memcached保存数据时可以指定期限(秒).不指定期限时,memcached按照LRU算法保存数据. 这三个方法的区别如下: 选项 说明 add 仅当存储空间中不存在键相同的数据时才保存 rep ...