Skip to content

v3_CN_Home

winlin edited this page Apr 28, 2021 · 107 revisions

HOME > CN

SRS Overview

SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。

SRS的目标是降低音视频的门槛,是降低而无法消除,因为对于新手来说,音视频的门槛真的非常高,所以请一定要读完Wiki。 不读Wiki一定扑街,不读文档请不要提Issue,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。

Note: 如果觉得Github的Wiki访问太慢,可以访问 Gitee 镜像。

SRS是一个服务器,也可以扩展成集群,还涉及多种协议和场景。下图是SRS的概览大地图,先有个大概印象:

Note: 高清图请看 https://www.processon.com/view/link/5e3f5581e4b0a3daae80ecef

Note: 别被这张图吓到,一般也用不到所有的能力,关键是要花时间看文档,了解这些部分怎么工作的。

我们从几个典型的应用场景来说下上面的大图,更多场景请看Applications

  • 入门搭建环境,惊鸿一瞥。如果想感觉下SRS能做什么用,可以直接根据 Usage 操作,仅仅需要两个命令三个步骤就能跑起来。这个场景下用到了Encoders(FFmpeg)推流,SRS(Origin)源站接收流,Players(H5)播放流。
  • 全平台直播,小荷才露尖尖角。只需要上图的Encoders(FFmpeg/OBS)推送RTMP到SRS;一台SRS Origin(不需要Cluster),转封装成HTTP-FLV流转封装成HLS;Players根据平台的播放器可以选HTTP-FLV或HLS流播放。
  • 大规模业务,带你装逼带你飞。如果业务快速上涨,可以通过Edge Cluster支持海量Players,或者Origin Cluster支持海量Encoders,当然可以直接平滑迁移到视频云。

Note: 这些场景的K8S部署,请参考Edge ClusterOrigin Cluster

每个场景可能会用到一些通用的能力,比如:

如果你更喜欢看视频,可以移步看下面的视频专栏介绍,最后还是要墙裂劝说看一遍Wiki:

再啰嗦一遍:不读Wiki一定扑街,不读文档请不要提Issue,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。

Downloading

墙又裂了建议用 srs-docker 直接运行SRS,每个Release的版本都会有Docker镜像, 还有海外镜像国内镜像 , 能避免各种的坑,即使是开发也可以用 srs-docker/dev 开发镜像。

如果坚持要用安装包,也提供Release版本的安装包下载,请访问ossrs.net。非发布版本,则需要自己编译SRS,请参考编译SRS

SRS主要运行在Linux系统上,譬如Centos和Ubuntu,包括x86、x86-64、ARM和MIPS。 其他的OS可以使用srs-docker开发和运行, 比如macOS、Windows等。SRS的系统偏好主要是由于state-threads导致的,它极大的简化了服务器在复杂协议的处理。

SRS是单进程模型,不支持多进程;可以使用集群 或者ReusePort扩展多进程(多核)能力。

Where to Go from Here

Video Guides:

Solution Guides:

Deployment Guides:

Cluster Guides:

  • Origin Cluster: 如何支持源站集群,扩展源站能力。
  • Edge Cluster: RTMP: 如何部署RTMP分发集群,譬如CDN支持RTMP分发。
  • Edge Cluster: FLV: 如何部署HTTP-FLV分发集群,譬如CDN支持HTTP-FLV分发。
  • VHOST: 如何一个集群支持多个用户,即Vhost。
  • Reload: 如何不中断服务的前提下应用新的配置,即Reload。
  • Tracable Log: 如何在集群中追溯错误和日志,基于连接的日志,排错日志。
  • Log Rotate: 如何切割服务器的日志,然后压缩或者清理。

Integration Guides:

Migrate From NGINX-RTMP:

  • NG EXEC: 为特殊的事件执行外部程序,譬如exec_publish,当发布流时exec外部程序。

User Guides:

  • Quick Start: 使用SRS的主要功能的快速手册。您应该从这个文章入手。
  • Milestones: SRS的路线图和产品计划。
  • Why SRS: 为何选择SRS?SRS的路线图?
  • GIT Mirrors: SRS在各个主要GIT站点的镜像,代码都是保持同步的。
  • Main Features: SRS的功能列表。请注意有些功能只有特定的版本才有。请注意有些功能是实验性的。
  • Releases: SRS目前已经发布的版本。
  • Docs: SRS的详细文档。
  • Compare: SRS和其他服务器的对比。
  • Performance: SRS的性能测试报告。

Join Us:

Develop Guide

  • SRS代码分析,分析SRS结构和代码逻辑。
  • SRS Librtmp: 使用SRS提供的librtmp客户端库,C++代码,可以在Android和iOS上编译,基于RTMP协议推送和拉取流。
  • Third-party Client SDK: 第三方厂商提供的客户端推流和播放的SDK,一般是移动端包括Andoird和iOS。

Questions or need help?

其他联系方式,参考联系我们

Winlin 2015.7

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally