1. 安装

1.1 github 获取源码

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

1.2 编译

1.2.1 关闭防火墙和 selinux

先关闭防火墙,防止有时候启动没有问题,但是就是看不了。

Centos6.x 下关闭防火墙和 selinux 的命令:

# disable the firewall
sudo /etc/init.d/iptables stop
sudo /sbin/chkconfig iptables off

selinux也需要disable,运行命令getenforce,若不是Disabled,执行下面的步骤:

  1. 编辑配置文件:sudo vi /etc/sysconfig/selinux
  2. 把SELINUX的值改为disabled:SELINUX=disabled
  3. 重启系统:sudo init 6

Ubuntu 下关闭防火墙的命令为:

ufw disable

Ubuntu 下默认没有安装 selinux,需要手动安装。

1.2.2 编译

./configure && make

指定配置文件,即可启动SRS:

./objs/srs -c conf/srs.conf

2. 部署

SRS 官方详细文档

2.1 RTMP 部署实例

RTMP部署实例

假设服务器的IP是:192.168.1.170

2.1.1 编写SRS配置文件

SRS 只需要配置 vhost 和帧听端口,以及支持的最大连接数,就可以支持 RTMP:

# conf/rtmp.conf
listen 1935
max_connextions 1000
daemon off;
srs_log_tank console;
vhost __defaultVhost__ {
}

2.1.2 启动 SRS

./objs/srs -c conf/rtmp.conf

2.1.3 推送RTMP流

  1. 使用FFMPEG命令推流:
for((;;)); do \
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
-vcodec copy -acodec copy \
-f flv -y rtmp://192.168.1.170/live/livestream; \
sleep 1; \
done
  1. 使用FMLE推流,在FMS URL中输入vhost/app,在Stream中输入流名称。譬如:
# 譬如RTMP流:rtmp://192.168.1.170/live/livestream
FMS URL: rtmp://192.168.1.170/live
Stream: livestream

RTMP的URL规则,Vhost规则,参考: RTMP URL&Vhost

2.1.4 观看 RTMP 流

可以使用支持RTMP流的播放器播放,譬如vlc/flash player,播放地址:rtmp://192.168.1.170/live/livestream

或者使用在线SRS播放器播放: srs-player

2.1.5 RTMP 流的低延时配置

RTMP 流的延时在 1~3 秒,比 HLS 的延时更靠谱,低延时的配置参考: 低延时

2.2 HLS 部署实例

HLS部署实例

假设服务器的IP是:192.168.1.170

2.2.1 编译 SRS

./configure --with-nginx && make

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

sudo ./objs/nginx/sbin/nginx

2.2.3 编写 SRS 配置文件

将以下内容保存为文件,如 conf/hls.conf,服务器启动时指定该配置文件(srs 的 conf 文件夹有该文件)。

# conf/hls.conf
listen 1935;
max_connections 1000;
daemon off;
srs_log_tank console;
vhost __defaultVhost__ {
hls {
enabled on;
hls_fragment 10;
hls_window 60;
hls_path ./objs/nginx/html;
hls_m3u8_file [app]/[stream].m3u8;
hls_ts_file [app]/[stream]-[seq].ts;
}
}

备注:hls_path 必须存在,srs 只会自动创建 ${hls_path} 下的 app 的目录。参考: Delivery HLS

2.2.4 启动 SRS

./objs/srs -c conf/hls_conf

2.2.5 启动推流编码器

使用 FFMPEG 命令推流:

.
for((;;)); do \
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
-vcodec copy -acodec copy \
-f flv -y rtmp://192.168.1.170/live/livestream; \
sleep 1; \
done

或使用支持 h.264 + aac 的 FMLE 推流(若不支持 h.264 + aac,则可以使用 srs 转码,参考转码后分发HLS部署实例

FMS URL: rtmp://192.168.1.170/live
Stream: livestream

生成的流地址为:

2.2.6 观看 RTMP 流。

RTMP 流地址为: rtmp://192.168.1.170/live/livestream

可以使用 VLC 观看。或者使用在线 SRS 播放器播放: srs-player

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

2.2.7 观看 HLS 流

HLS 流地址为: http://192.168.1.170/live/livestream.m3u8

可以使用 VLC 观看,或者使用在线 SRS 播放器播放: jwplayer

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

注意:VLC无法观看纯音频流,jwplayer可以观看。

分发纯音频流参考: HLS audio only

2.3 RTMP 集群部署实例

RTMP集群部署实例

2.3.1 编写 SRS 源站配置文件

# conf/origin.conf
listen 19350;
max_connections 1000;
daemon off;
pid objs/origin.pid;
srs_log_tank console;
vhost __defaultVhost__ {
}

2.3.2 编写 SRS 边缘配置文件

# conf/edge.conf
listen 1935;
max_connections 1000;
pid objs/edge.pid;
daemon off;
srs_log_tank console;
vhost __defaultVhost__ {
mode remote;
origin 127.0.0.1:19350;
}

2.3.3 启动 SRS

./objs/srs -c conf/origin.conf &
./objs/srs -c conf/edge.conf &

2.3.4 启动推流编码器

使用FFMPEG命令推流:

.
for((;;)); do \
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
-vcodec copy -acodec copy \
-f flv -y rtmp://192.168.1.170/live/livestream; \
sleep 1; \
done

或使用FMLE推流:

FMS URL: rtmp://192.168.1.170/live
Stream: livestream

2.3.5 观看 RTMP 流

源站RTMP流地址为:rtmp://192.168.1.170:19350/live/livestream,可以使用 VLC 观看,或者使用在线 SRS 播放器播放: srs-player-19350

边缘RTMP流地址为:rtmp://192.168.1.170/live/livestream,可以使用 VLC 观看,或者使用在线 SRS 播放器播放: srs-player-19350

SRS之安装与使用的更多相关文章

  1. SRS流媒体服务器安装配置

    SRS全称Simple RTMP Server,定位是运营级的互联网直播服务器集群,是一个非常简单就可以推送rtmp视频流的服务器. github主页:https://github.com/ossrs ...

  2. Simple-RTMP-Server 服务器搭建

    Simple-RTMP-Server 服务器搭建 1. 服务器镜像获取 github源码地址 git clone https://github.com/winlinvip/simple-rtmp-se ...

  3. 使用ffmpeg进行网络直播

    一.采集:使用python调用摄像头采集,原设想是使用树莓派摄像头采集,但是经费紧张买不起,先用摄像头凑合下,反正很简单.                   原理就是先录一小段视频,然后循环播放,用 ...

  4. 开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流

    SRS(Simple RTMP Server)  是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群. 一.安装 官网提供了3种安 ...

  5. 虚拟机安装ubuntu18.04及其srs服务器的搭建

    第一次写博客,有些地方可能不太完善. 1.安装VMware,我用的是VMware12. 2.下载Ubuntu镜像(自Ubuntu 17.10开始桌面版本不再提供32位安装镜像,Ubuntu Serve ...

  6. 轻量级直播服务器SRS安装及编译

    最近由于公司开发的需要--互动会议,开始研究直播中的技术.由于自身没有接触过虚拟机导致在研究的过程中遇到了很大的问题,首先官方GitHub给出的文档并没有清晰的指出编译是需要通过何种方式进行编译?以下 ...

  7. 在海思hisiv100nptl平台上交叉编译并安装SRS

    ./configure --with-arm-ubuntu12 && make 须要安装: apt-get installgcc-arm-linux-gnueabi     ,但hi3 ...

  8. linux部署安装SRS流媒体服务器教程

    这段时间一直在搞RTMP流媒体直播项目,期间踩过很多坑,刚开始是用的nginx-rtmp作为流媒体转发服务器,但是效果并不尽人意,推拉流不稳定,特别是拉流,速度特别慢,平均要十多秒才能拉到流,并且交互 ...

  9. srs安装与ffmpeg推流

    环境说明:ubuntu 16.04 当前目录为~/. 一. 下载 git clone https://github.com/ossrs/srs.git 二.部署SRS 关闭防火墙,执行如下命令. uf ...

随机推荐

  1. Code Clean读书笔记

    代码整洁之道读书笔记 by fangpc 序言部分 "神在细节之中" - 建筑师路德维希 5S哲学(精益) 整理(Seiri):搞清楚事物之所在--通过恰当地命名之类的手段--至关 ...

  2. 在eclipse下给android应用添加jar包

    右键工程,Build path,java build path,选择libraries在右边的按钮中点击“Add Library”选择“User library”,点击“下一步”点击“User lib ...

  3. 在windows上搭建hadoop开发环境

    下载hadoop: http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common 点击下面链接进行下载 然后进行解压 如果解压出现下面的情况 则用管 ...

  4. How to set up "lldb_codesign" certificate!

    To use the in-tree debug server on macOS, lldb needs to be code signed. TheDebug, DebugClang and Rel ...

  5. Linux命令——pidof

    参考:Linux pidof Command Examples To Find PID of A Program/Command Linux pidof Command Tutorial for Be ...

  6. $(...) is null

    删冲突插件,jquery作为基础库,当然是没有理由被删了.这个方法最直接了. (2)将jquery的$方法改名,具体改名方法如下: jQuery.noConflict();//将变量$的控制权让渡给给 ...

  7. JSON是什么

    JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度, 那么,JSON到底是什么? JSON就是一串字符串 只不过元素会使 ...

  8. 《TensorFlow2深度学习》学习笔记(二)手动搭建并测试简单神经网络(附mnist.npz下载方式)

    本实验使用了mnist.npz数据集,可以使用在线方式导入,但是我在下载过程中老是因为网络原因被打断,因此使用离线方式导入,离线包已传至github方便大家下载: https://github.com ...

  9. Kotlin协程第一个示例剖析及Kotlin线程使用技巧

    Kotlin协程第一个示例剖析: 上一次https://www.cnblogs.com/webor2006/p/11712521.html已经对Kotlin中的协程有了理论化的了解了,这次则用代码来直 ...

  10. everything in javascript can act like an object,