Skip to content

v3_CN_Home

Winlin edited this page Nov 29, 2021 · 107 revisions

HOME > CN

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

SRS Overview

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

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

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

Getting Started

下载源码,推荐用CentOS7系统:

git clone -b 3.0release https://gitee.com/ossrs/srs.git

编译,注意需要切换到srs/trunk目录:

cd srs/trunk
./configure
make

启动服务器:

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

检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者执行命令:

# 查看SRS的状态
./etc/init.d/srs status

# 或者看SRS的日志
tail -f ./objs/srs.log

例如,下面的命令显示SRS正在运行:

MB0:trunk $ ./etc/init.d/srs status
SRS(pid 24303) is running.                                 [  OK  ]

MB0:trunk $ tail -f ./objs/srs.log
[2021-08-13 03:02:16.241][Trace][24303][332] HTTP-Server listen at tcp://0.0.0.0:8080, fd=10

使用 FFmpegOBS 推流:

ffmpeg -re -i ./doc/source.flv -c copy -f flv -y rtmp://localhost/live/livestream

打开下面的页面播放流(若SRS不在本机,请将localhost更换成服务器IP):

请继续阅读下面的内容,了解更多SRS的信息。

Docker

推荐使用Docker直接启动SRS,可用镜像在 这里 :

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
    ossrs/srs:3 ./objs/srs -c conf/srs.conf

请继续阅读下面的内容,了解更多SRS的信息。

Effective SRS

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

Note: 高清图请看 https://www.processon.com/view/link/619f24137d9c083e98adab49

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,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。

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