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. 3.live555源码分析----延时队列

    live555本身是一个单进程.单线程的服务器,但是它能够完美的让多个客户端同时连接,除了使用select并发编程以外,延时队列是很重要的手段. 当连接一个客户端,进行视频帧传输的时候,是不能持续进行 ...

  2. 个人项目WC(Python实现)

    一.GitHub地址 https://github.com/hoka-17/WC 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...

  3. 二维码扫码登录原理及简单demo

    扫码登录原理转载自: https://www.cnblogs.com/liyasong/p/saoma.html 需求介绍 首先,介绍下什么是扫码登录.现在,大部分同学手机上都装有qq和淘宝,天猫等这 ...

  4. App抓包代理设置

    1.设置Fiddler 打开Fiddler,Tools  -->  Fiddler Options  -->  HTPS (配置完后记得要重启Fiddler) 选中"Decrpt ...

  5. Linux LVM 逻辑卷管理

    使用Linux好久了,一定会意识到一个问题,某个分区容量不够用了,想要扩容怎么办?这里就涉及到LVM逻辑卷的管理了,可以动态调整Linux分区容量. LVM 概述 全称Logical Volume M ...

  6. Python并发编程-queue

    Python并发编程-queue 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Queue # !/usr/bin/env python # _*_conding:utf-8_ ...

  7. 计算机网络基础之OSI参考模型

    计算机网络基础之OSI参考模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.OSI参考模型 OSI是Open System Interconnection的缩写,意为开放式系 ...

  8. Pthon魔术方法(Magic Methods)-运算符重载

    Pthon魔术方法(Magic Methods)-运算符重载 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python运算符对应的魔术方法 1>.比较运算符 <: ...

  9. SHA-1算法——(2)

    地址:https://www.alvestrand.no/objectid/1.3.14.3.2.26.html 地址:http://oidref.com/1.3.14.3.2.26 这个值好像是个标 ...

  10. jquery 表单元素选择器

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content ...