SRS学习路径

音视频开发进阶

共 3115字,需浏览 7分钟

 ·

2021-11-17 16:35

新同学专用的学习路径,请一定按照文档操作。

文章中有较多的链接,链接地址是在文末尾的。也可以点文末尾的阅读原文,查看本文在简书上的版本。

快速预览

先过第一个门槛:看到直播和WebRTC长什么样子,能跑出来下图的效果,需要5~15分钟左右。

Note: 这个看似很容易,甚至直接在SRS官网[1]中就能点开两个页面,但是一定要自己用SRS搭建出来才算,而不是直接打开线上的演示网页。

具体怎么做呢?请参考Wiki: Getting Started[2]

接触一个新的东西,首先就要有直观的体验和感觉,这个门槛虽然看起来很简单,但是它涉及到了音视频的几乎全链路的东西:

FFmpeg,强大的音视频客户端,推拉流和编解码,以及各种处理的能力。Chrome(或浏览器),H5是最便捷的客户端,非常方便演示和学习,SRS功能基本上都有H5的演示。音视频协议:RTMP,HTTP-FLV,HLS和WebRTC,这些操作步骤中,已经涉及到了这些协议,也是实际应用中典型的用法。SRS服务器,自己部署音视频云,或者提供音视频的云服务,SRS本质上就是视频云的一种服务器。

Note: 上面的拼图还缺少移动端,其实移动端只是一种端,而并没有新的协议,也可以下载SRS直播[3]客户端,体验上面的推流和播放,也可以输入你的服务器的流地址播放。

深入场景

第二个门槛:了解音视频应用的各个典型场景,大约五个核心场景,总共需要3~7天左右。

请根据Github: Wiki[4],或者国内请访问Gitee: Wiki[5],这里详细描述了各个场景会使用到的技术,内容都是一样的,Wiki会同步更新到Github和Gitee。

典型的音视频业务场景,包括但不限于:

全平台直播,小荷才露尖尖角。只需要上图的Encoders(FFmpeg/OBS)推送RTMP到SRS[6];一台SRS Origin(不需要Cluster),转封装成HTTP-FLV流[7]转封装成HLS[8];Players根据平台的播放器可以选HTTP-FLV或HLS流播放。WebRTC通话业务,一对一通话多人通话,会议室等。WebRTC[9]是SRS4引入的关键和核心的能力,从1到3秒延迟,到100到300毫秒延迟,绝对不是数字的变化,而是本质的变化。监控和广电上云,各行业风起云涌。除了使用FFmpeg主动拉取流到SRS[10],还可以广电行业SRT协议[11]推流,或监控行业GB28181协议[12]推流,SRS转换成互联网的协议观看。直播低延迟和互动,聚变近在咫尺。RTMP转WebRTC播放[13]降低播放延迟,还能做直播连麦,或者使用WebRTC推流,未来还会支持WebTransport直播等等。大规模业务,带你装逼带你飞。如果业务快速上涨,可以通过Edge Cluster[14]支持海量Players,或者Origin Cluster[15]支持海量Encoders,当然可以直接平滑迁移到视频云。未来还会支持RTC的级联和集群。

每个场景都可以自己搭建出来典型的应用。

了解细节

第三个门槛:了解每个纵向的技术点,应用场景,代码和问题排查,大约3~6月左右。

视频专栏[16],包括环境搭建,代码分析,还有零声学院专业老师的讲解。解决方案[17],大家在各个不同场景中,应用SRS的分享和探索。部署方案[18],如何部署实现不同的具体功能,这些功能可以组合起来使用。集群和扩展[19],当业务量上升,如何扩展单机到集群,如何服务不同区域的用户。集成和定制[20],如何和现有系统对接,如何验证用户,安全和防盗链机制等。深度分析[21],协程原理,代码分析,高性能服务器框架,性能优化等。

如果能踏踏实实的了解完SRS,音视频真不难。

如果总想着三分钟XXX,那可不是很难么?

References

[1] SRS官网: https://ossrs.net
[2] Wiki: Getting Started: https://github.com/ossrs/srs/wiki/v4_CN_Home#getting-started
[3] SRS直播: http://ossrs.net/releases/app.html
[4] Github: Wiki: https://github.com/ossrs/srs/wiki/v4_CN_Home#effective-srs
[5] Gitee: Wiki: https://gitee.com/ossrs/srs/wiki/v4_CN_Home#effective-srs
[6] 推送RTMP到SRS: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleRTMP
[7] 转封装成HTTP-FLV流: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleHttpFlv
[8] 转封装成HLS: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleHLS
[9] WebRTC: https://gitee.com/ossrs/srs/wikis/v4_CN_WebRTC
[10] 拉取流到SRS: https://gitee.com/ossrs/srs/wikis/v4_CN_Ingest
[11] SRT协议: https://gitee.com/ossrs/srs/wikis/v4_CN_SRTWiki
[12] GB28181协议: https://github.com/ossrs/srs/issues/1500#issue-528623588
[13] RTMP转WebRTC播放: https://github.com/ossrs/srs/issues/307#issue-76908382
[14] Edge Cluster: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleRTMPCluster
[15] Origin Cluster: https://gitee.com/ossrs/srs/wikis/v4_CN_OriginCluster
[16] 视频专栏: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#video-guides
[17] 解决方案: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#solution-guides
[18] 部署方案: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#deployment-guides
[19] 集群和扩展: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#cluster-guides
[20] 集成和定制: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#integration-guides
[21] 深度分析: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#develop-guide


浏览 21
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报