SRS 4.0流媒体服务器开发环境搭建:包括推流、服务器配置、拉流测试

SRS 4.0流媒体服务器入门系列

结合SRS官方Wiki以及本人对SRS的理解,推出《SRS 4.0流媒体服务器入门系列》,包括内容:

  1. SRS 4.0 开发环境搭建
  2. SRS 4.0 配置支持WebRTC推拉流
  3. SRS 4.0 RTMP推拉流转发原理,包括延迟分析
  4. SRS 4.0 支持WebRTC一对一通话,包括信令原理讲解
  5. SRS 4.0 支持WebRTC多人通话,包括信令原理讲解
  6. SRS 4.0 RTMP to WebRTC原理分析
  7. SRS 4.0 WebRTC to RTMP 原理分析
  8. SRS 4.0 配置支持GB28181推流
  9. .....其他待规划

本文档配套视频:1-SRS 4.0开发环境搭建:点击直达

云服务器:阿里云Ubuntu 16.04

服务器:SRS(Simple Realtime Server,支持RTMP、HTTP-FLV、HLS、WebRTC)

推流端:ffmpeg + OBS

拉流端:ffplay +VLC + srs播放器

1 安装和测试SRS流媒体服务器

1.1 安装SRS流媒体服务器

SRS官网:http://www.ossrs.net/

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

码云源:https://gitee.com/ossrs/srs.git (如果GitHub较慢可以使用码云的源)

选择当前最新的release版本4.0

第一步,获取SRS

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

    cd srs.4.0

    #直接使用当前最新的4.0release版本,写该文档时该branch最新的的tag是v4.0.98

    cd trunk

第二步,编译SRS。详细参考Build

./configure --gb28181=on && make

配置支持常见的协议:RTMP/HLS/RTMP/GB28181/WebRTC

更多的配置信息参考可以用help命令:./configure --help

第三步,查看SRS配置文件。详细参考RTMP分发

配置文件在trunk/conf目录,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

我们这里先使用srs.conf,支持rtmp推流,支持rtmp、hls、http-flv拉流。

    # main config for srs.# @see full.conf for detail config.


    listen              1935;

    max_connections     1000;

    srs_log_tank        file;

    srs_log_file        ./objs/srs.log;

    daemon              on;

    http_api {

       enabled         on;

       listen          1985;

    }

    http_server {

       enabled         on;

       listen          8080;

       dir             ./objs/nginx/html;

    }

    vhost __defaultVhost__ {

       hls {

           enabled         on;

       }

       http_remux {

           enabled     on;

           mount       [vhost]/[app]/[stream].flv;

       }

    }

对应配置的解释可以参考full.conf文件

这里的端口

PS:云服务器一定要在后台开放对应的端口。

第四步,启动SRS。

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

第五步,查看日志

tail -f ./objs/srs.log

-------------------------------------

1.2 查看控制台

在浏览器输入

http://114.215.169.66:1985/console/ng_index.html

我们就可以通过Web查看SRS相关的状态信息。

如果有客户端推流

对应的api(https://github.com/ossrs/srs/wiki/v4_CN_HTTPApi),比如源码里面对应的:

1.3 需要重点阅读的官方Wiki

如官方的README.md所示:

Fast index for Wikis:

  • How to deliver RTMP streaming?(CN,EN)
  • How to build RTMP Edge-Cluster?(CN,EN)
  • How to build RTMP Origin-Cluster?(CN,EN)
  • How to deliver HTTP-FLV streaming?(CN,EN)
  • How to deliver HLS streaming?(CN,EN)
  • How to deliver low-latency streaming?(CN,EN)
  • How to use WebRTC? (CN,EN)

srs作者提供了详细的中英文参考文档,配置问题基本上都可以从对应的文档可以找到答案,大家能查文档的尽量去查文档。

1.4 测试SRS流媒体服务器

1.4.1 使用FFmpeg推流

ffmpeg -re -i time.flv -vcodec copy -acodec copy -f flv -y rtmp://114.215.169.66/live/livestream

注: 上述命令中的flv完整路径,以及srs server ip,大家根据情况自行替换为实际值。另外:默认情况下srs的rtmp采用1935端口,如果该端口被占用或修改了srs.conf中的端口,注意根据情况调整;防火墙如果开了,也要检测下1935是否允许访问。

对应的RTMP/HLS/HTTP-FLV拉流地址

  • RTMP流地址为:rtmp://114.215.169.66/live/livestream
  • HTTP FLV: http://114.215.169.66:8080/live/livestream.flv
  • HLS流地址为:http://114.215.169.66:8080/live/livestream.m3u8

1.4.2 使用ffplay播放

ffplay rtmp://114.215.169.66/live/livestream
ffplay http://114.215.169.66:8080/live/livestream.flv
ffplay http://114.215.169.66:8080/live/livestream.m3u8

1.4.3 使用在线srs播放器拉流

在线SRS播放器播放, 由于RTMP已经被禁用了,请使用HTTP-FLV链接。

2 使用OBS推流

ffmpeg的命令行方式不太友好,推荐使用主流的OBS开源推流软件,可从官网https://obsproject.com/ 下载最新版本,目前很多网络主播都是用它做直播。该软件支持本地视频文件以及摄像头推流。

或者使用:https://pc.qq.com/detail/4/detail_23604.html 去下载。

2.1 文件推流

先添加一个:“媒体源”

然后新建一个名称(随便输入)

选择本机视频文件

接下来是关键的部分,进入设置:

在串流->服务器这里,输入srs的地址:rtmp://114.215.169.66:1935/live (注意这里不要带livestream), 然后在串流密钥这里,才是输入livestream (地址要注意换成自己的ip地址,局域网ip就用局域网地址,云服务器就用公网地址)

设置好以后,就可以点击“开始推流”了。如果顺利,下面的状态栏,会显示一些实时数据:

注意:OBS进行推流占用率比较高,原因在于obs在推流时对源文件进行了解码再编码的操作。

2.2 摄像头推流

跟上面的其实差不多,区别只是添加“视频捕捉设备”

然后选择本机检测到的摄像头设备(比如:下图为Dell笔记本自带的Integrated Webcam)

接下来的操作就一样了

2.3 更多设置

参见:OBS 推流 https://cloud.tencent.com/document/product/267/32726

3 补充

修改ffplay的缓存,降低延迟

(1)码流分析时间设置,单位为微秒

ffplay -i rtmp://114.215.169.66/live/livestream -analyzeduration 500000

ffplay -i rtmp://114.215.169.66/live/livestream -analyzeduration 10000

(2)减少缓冲

ffplay -i rtmp://114.215.169.66/live/livestream -fflags nobuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值