diff --git a/for-writers/README.md b/for-writers/README.md index 6a93aa84..5c7c2101 100644 --- a/for-writers/README.md +++ b/for-writers/README.md @@ -12,3 +12,22 @@ Link the blog in docs: For instance, refer to the `getting-started-stack.md` document for more details. +## How to link document in the sample docs? + +Link the document in the sample docs: + +```markdown +[Getting Started](./getting-started.md) +``` + +For instance, refer to the `introduction.md` document for more details. + +## How to link pages in docs? + +Link the pages in docs: + +```markdown +[MIT Licensed](/license) +``` + +For instance, refer to the `introduction.md` document for more details. diff --git a/i18n/en-us/docusaurus-plugin-content-docs/current/doc/flv.md b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/flv.md new file mode 100644 index 00000000..8eee543f --- /dev/null +++ b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/flv.md @@ -0,0 +1,14 @@ +--- +title: HTTP-FLV +sidebar_label: HTTP-FLV +hide_title: false +hide_table_of_contents: false +--- + +# HTTP-FLV + +See [HTTP-FLV](./delivery-http-flv.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v6/flv) + + diff --git a/i18n/en-us/docusaurus-plugin-content-docs/current/doc/hls.md b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/hls.md new file mode 100644 index 00000000..9574e72f --- /dev/null +++ b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/hls.md @@ -0,0 +1,14 @@ +--- +title: HLS +sidebar_label: HLS +hide_title: false +hide_table_of_contents: false +--- + +# HLS + +See [HLS](./sample-hls.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v6/hls) + + diff --git a/i18n/en-us/docusaurus-plugin-content-docs/current/doc/introduction.md b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/introduction.md index f5417093..33a1eba6 100644 --- a/i18n/en-us/docusaurus-plugin-content-docs/current/doc/introduction.md +++ b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/introduction.md @@ -7,53 +7,63 @@ hide_table_of_contents: false # Introduction -> Remark: SRS5 is developing and not stable. +> Remark: SRS6 is developing and not stable. -## SRS Overview +SRS is a open-source ([MIT Licensed](/license)), simple, high-efficiency, real-time video server supporting RTMP, +WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181. SRS media server works with clients like [FFmpeg](https://ffmpeg.org), +[OBS](https://obsproject.com), [VLC](https://www.videolan.org), and [WebRTC](https://webrtc.org) to provide +the ability to [receive and distribute streams](./getting-started.md) in a typical publish (push) and +subscribe (play) server model. SRS supports widely used internet audio and video protocol conversions, +such as converting [RTMP](./rtmp.md) or [SRT](./srt.md) to [HLS](./hls.md), [HTTP-FLV](./flv.md), or +[WebRTC](./webrtc.md). -SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT. +SRS provides an [HTTP API](./http-api.md) open interface to query system and stream status. It also supports +[HTTP Callback](./http-callback.md) for callback capabilities, actively notifying your system and implementing +stream authentication and business customization (such as dynamic DVR). SRS also supports the official +[Prometheus Exporter](./exporter.md) for integration with cloud-native monitoring systems, offering powerful +observability. SRS supports session-level [traceable logs](./log.md), greatly reducing system maintenance costs. -[![SRS Overview](/img/SRS-SingleNode-4.0-sd.png)](/img/SRS-SingleNode-4.0-hd.png) +If you are new to audio, video, and streaming media or new to SRS, we recommend reading [Getting Started](./getting-started.md) +and [Learning Path](/guide). Please take the time to read the following documentation, as reading and +familiarizing yourself with the documentation is a basic requirement of the community. If you encounter any +problems, please first search in the [FAQ](/faq), then in [Issues](https://github.com/ossrs/srs/issues) and +[Discussions](https://github.com/ossrs/srs/discussions) to find answers to almost all questions. -> Note: The single node architecture for SRS, general and major use scenario, please see [figma](https://www.figma.com/file/333POxVznQ8Wz1Rxlppn36/SRS-4.0-Server-Arch). +SRS is developed using ANSI C++ (98) and only uses basic C++ capabilities. It can run on multiple platforms +such as Linux, Windows, and macOS. We recommend using Ubuntu 20+ for development and debugging. The image +we provide [ossrs/srs](https://hub.docker.com/r/ossrs/srs) is also built on Ubuntu 20 (focal). -[![SRS Overview](/img/SRS-Overview-4.0.png)](/img/SRS-Overview-4.0.png) +> Note: To solve the long connection and complex state machine problems in complex streaming media processing, +> SRS uses [ST(State Threads)](https://github.com/ossrs/state-threads) coroutine technology (similar +> to [Goroutine](https://go.dev/doc/effective_go#goroutines)) and continuously enhances and maintains +> ST's capabilities, supporting multiple platforms such as Linux, Windows, macOS, and various CPU +> architectures like X86_64, ARMv7, AARCH64, M1, RISCV, LOONGARCH, and MIPS. -> Note: The cluster architecture, for detail picture please see [here](https://www.processon.com/view/link/5e3f5581e4b0a3daae80ecef) +## Who's using SRS? -Please read [Getting Started](../doc/getting-started). +SRS users are spread all over the world, and we welcome everyone to showcase their SRS applications +in [SRS Use Cases](https://github.com/ossrs/srs/discussions/3771). -## Solution Guides +## Governance -TBD. +We welcome everyone to participate in the development and maintenance of SRS. We recommend starting by +resolving issues from [Contribute](https://github.com/ossrs/srs/contribute) and [submitting PRs](/how-to-file-pr). +All contributors will be showcased in [Contributors](https://github.com/ossrs/srs#authors). -## Develop Guide +## Milestone -TBD. +SRS releases a major version approximately every two years, with one year for development and one year +for stability improvement. For more details, please refer to [Milestone](/product). -## Tech Docs +## Sponsors -TBD. +SRS is committed to building a non-profit open-source project and community. We provide special community +support for friends who sponsor SRS. Please see [Sponsor](/contact#donation). -## Cluster Guides +## About SRS Stack -Please see [link](../category/clusters). - -## Effective SRS - -Please see [link](/guide#scenario). - -## Deployment Guides - -Please see [link](../category/main-protocols). - -## Integration Guides - -Please see [link](../category/openapi). - -## Video Guides - -Please see [link](../tutorial/srs-server). +SRS Stack is a lightweight, open-source video cloud solution based on Go, Reactjs, SRS, FFmpeg, WebRTC, +and more. For more details, please refer to [SRS Stack](./getting-started-stack.md). ![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.io&path=/lts/doc/en/v6/introduction) diff --git a/i18n/en-us/docusaurus-plugin-content-docs/current/doc/srt.md b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/srt.md new file mode 100644 index 00000000..f0991b60 --- /dev/null +++ b/i18n/en-us/docusaurus-plugin-content-docs/current/doc/srt.md @@ -0,0 +1,14 @@ +--- +title: SRT +sidebar_label: SRT +hide_title: false +hide_table_of_contents: false +--- + +# SRT + +See [SRT](./sample-srt.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v6/srt) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/flv.md b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/flv.md new file mode 100644 index 00000000..2d59a0d8 --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/flv.md @@ -0,0 +1,14 @@ +--- +title: HTTP-FLV +sidebar_label: HTTP-FLV +hide_title: false +hide_table_of_contents: false +--- + +# HTTP-FLV + +See [HTTP-FLV](./delivery-http-flv.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v6/flv) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/hls.md b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/hls.md new file mode 100644 index 00000000..5ef0d474 --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/hls.md @@ -0,0 +1,14 @@ +--- +title: HLS +sidebar_label: HLS +hide_title: false +hide_table_of_contents: false +--- + +# HLS + +See [HLS](./sample-hls.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v6/hls) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/introduction.md b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/introduction.md index 59aca726..a81f07c3 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/introduction.md +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/introduction.md @@ -7,86 +7,51 @@ hide_table_of_contents: false # Introduction -> 注意:SRS5属于开发版,不稳定。 +> 注意:SRS6属于开发版,不稳定。 -## SRS Overview +SRS是一个开源的([MIT协议](/license))简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 +SRS媒体服务器和[FFmpeg](https://ffmpeg.org)、[OBS](https://obsproject.com)、[VLC](https://www.videolan.org)、 +[WebRTC](https://webrtc.org)等客户端配合使用,提供[流的接收和分发](./getting-started.md)的能力,是一个典型的发布 +(推流)和订阅(播放)服务器模型。 SRS支持互联网广泛应用的音视频协议转换,比如可以将[RTMP](./rtmp.md)或[SRT](./srt.md), +转成[HLS](./hls.md)或[HTTP-FLV](./flv.md)或[WebRTC](./webrtc.md)等协议。 -SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。 +SRS提供了[HTTP API](./http-api.md)开放接口,可以查询系统的状态和流状态。同时还支持[HTTP Callback](./http-callback.md) +支持回调能力,主动通知你的系统,并可以实现流的鉴权能力和业务定制(比如动态DVR)。SRS也支持官方的[Prometheus Exporter](./exporter.md) +对接到云原生的监控系统,具备强大的可观测性。SRS支持会话级别[可追踪日志](./log.md),极大降低了系统维护成本。 -[![SRS Overview](/img/SRS-SingleNode-4.0-sd.png)](/img/SRS-SingleNode-4.0-hd.png) +若你是新接触音视频和流媒体的朋友,或者新接触SRS的朋友,推荐阅读[快速起步](./getting-started.md)和[学习路径](/guide)。请花时间 +阅读后续的文档,阅读和熟悉文档是社区的基本要求。如果你遇到问题,请先在[FAQ](/faq)中快速查找,然后在[Issues](https://github.com/ossrs/srs/issues) +和[Discussions](https://github.com/ossrs/srs/discussions)中查找,几乎所有问题都可以在这里找到答案。 -> Note: 简单的单节点架构,适用于大多数场景,大图请看[figma](https://www.figma.com/file/333POxVznQ8Wz1Rxlppn36/SRS-4.0-Server-Arch)。 +SRS使用ANSI C++ (98)开发,只使用了基本的C++能力,可以在Linux、Windows、macOS等多个平台运行,推荐使用Ubuntu 20+系统开发和调试, +我们提供的镜像[ossrs/srs](https://hub.docker.com/r/ossrs/srs)也是基于Ubuntu 20 (focal)构建的。 -[![SRS Overview](/img/SRS-Overview-4.0.png)](/img/SRS-Overview-4.0.png) +> Note: 为了解决复杂的流媒体处理中的长连接和复杂的状态机问题,SRS使用了[ST(State Threads)](https://github.com/ossrs/state-threads) +协程技术(类似[Goroutine](https://go.dev/doc/effective_go#goroutines)),并在不断增强和维护ST的能力,支持了Linux、Windows、macOS +多个平台,X86_64、ARMv7、AARCH64、M1、RISCV、LOONGARCH和MIPS等多种CPU架构。 -> Note: 这是典型的源站和边缘集群的架构,适用于需要高并发的场景,高清大图请参考[这里](https://www.processon.com/view/link/5e3f5581e4b0a3daae80ecef) +## Who's using SRS? -对于新手来说,音视频的门槛真的非常高,SRS的目标是**降低**(不能**消除**)音视频的门槛,所以请一定要读完Wiki。 -不读Wiki一定扑街,不读文档请不要提Issue,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。 +SRS的用户遍布全球,欢迎大家在[SRS应用案例](https://github.com/ossrs/srs/discussions/3771)中展示自己的SRS应用。 -Please read [Getting Started](../doc/getting-started). +## Governance -## Solution Guides +欢迎大家参与SRS的开发和维护,推荐从[Contribute](https://github.com/ossrs/srs/contribute)解决Issue和 +[提交PR](/how-to-file-pr)开始, 所有贡献过的朋友都会在[Contributors](https://github.com/ossrs/srs#authors) +中展示。 -* [陈海博:SRS在安防中的应用](https://www.bilibili.com/video/BV11S4y197Zx) -* 最佳实践:[一对一通话](https://mp.weixin.qq.com/s/xWe6f9WRhtwnpJQ8SO0Eeg),[多人通话](https://mp.weixin.qq.com/s/CM2h99A1e_masL5sjkp4Zw)和[直播连麦](https://mp.weixin.qq.com/s/7xexl07rrWBdh8xennXK3w) -* [最佳实践:如何扩展你的SRS并发能力?](https://mp.weixin.qq.com/s/pd9YQS0WR3hSuHybkm1F7Q) -* SRS是单进程模型,不支持多进程;可以使用[集群](https://mp.weixin.qq.com/s/pd9YQS0WR3hSuHybkm1F7Q) 或者[ReusePort](./reuse-port.md)扩展多进程(多核)能力。 -* [基于HLS-TS&RTMP-FLV的微信小程序点直播方案](https://mp.weixin.qq.com/s/xhScUrkoroM7Q7ziODHyMA) -* [借力SRS落地实际业务的几个关键事项](https://mp.weixin.qq.com/s/b19kBer_phZl4n4oUBOvxQ) -* [干货 | 基于SRS直播平台的监控系统之实现思路与过程](https://mp.weixin.qq.com/s/QDTtW85giKmryhvCBkyyCg) -* [Android直播实现](https://blog.csdn.net/dxpqxb/article/details/83012950) -* [SRS直播服务器与APP用户服务器的交互](https://www.jianshu.com/p/f3dfa727475a) -* [使用flvjs实现摄像头flv流低延时实时直播](https://www.jianshu.com/p/2647393f956a) -* [IOS 直播方面探索(服务器搭建,推流,拉流)](https://www.jianshu.com/p/1aa677d99d17) -* [国产开源流媒体SRS4.0对视频监控GB28181的支持](https://mp.weixin.qq.com/s/VIPSPaBB5suUk7_I2oOkMw) +## Milestone -## Develop Guide +SRS大概是两年发布一个大版本,一年时间开发,一年时间提升稳定性,详细请参考[Milestone](/product)。 -* [高性能网络服务器设计](https://blog.csdn.net/win_lin/article/details/8242653),分析高性能网络服务器的设计要点。 -* [SRS高精度、低误差定时器](https://mp.weixin.qq.com/s/DDSzRKHyJ-uYQ9QQC9VOZg),论高并发服务器的定时器问题。 -* [协程原理:函数调用过程、参数和寄存器](https://mp.weixin.qq.com/s/2TsYSiV8ysyLrELHdlHtjg),剖析SRS协程实现的最底层原理。 -* [性能优化:SRS为何能做到同类的三倍](https://mp.weixin.qq.com/s/r2jn1GAcHe08IeTW32OyuQ),论性能优化的七七八八、前前后后。 -* [SRS代码分析](https://github.com/xialixin/srs_code_note/blob/master/doc/srs_note.md),分析SRS结构和代码逻辑,类结构图,线程模型,模块架构。 -* [Third-party Client SDK](./client-sdk.md): 第三方厂商提供的客户端推流和播放的SDK,一般是移动端包括Andoird和iOS。 -* [轻量线程分析](https://github.com/ossrs/state-threads#analysis),分析SRS依赖的库ST的关键技术。 -* [SRS代码分析](https://github.com/xialixin/srs_code_note/blob/master/doc/srs_note.md),分析SRS结构和代码逻辑,类结构图,线程模型,模块架构。 -* [深度: 掀起你的汇编来:如何移植ST协程到其他系统或CPU?](https://mp.weixin.qq.com/s/dARz99INVlGuoFW6K7SXaw) -* [肖志宏:SRS支持WebRTC级联和QUIC协议](https://www.bilibili.com/video/BV1Db4y1b77J) -* [StateThreads源码分析](https://www.xianwaizhiyin.net/?cat=24) -* [SRS 4.0源码分析](https://www.xianwaizhiyin.net/?cat=21) +## Sponsors -## Tech Docs +SRS致力于构建一个非盈利性的开源项目和社区,我们对赞助SRS朋友提供专门的社区支持,请看[Sponsor](/contact#donation)。 -* [历经5代跨越25年的RTC架构演化史](https://mp.weixin.qq.com/s/fO-FcKU_9Exdqh4xb_U5Xw) -* [技术解码 | SRT和RIST协议综述](https://mp.weixin.qq.com/s/jjtD4ik-9noMyWbecogXHg) -* [公众号专栏:SRS,知识库,重要功能和阶段性结果,解决方案和DEMO](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzA4NTQ3MzQ5OA==&scene=1&album_id=1703565147509669891&count=10#wechat_redirect) -* [公众号专栏:深度,底层技术分析,服务器模型,协议处理,性能优化等](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA4NTQ3MzQ5OA==&action=getalbum&album_id=2156820160114900994#wechat_redirect) -* [公众号专栏:动态,关于最新的会议和动态,新闻,社区等](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA4NTQ3MzQ5OA==&action=getalbum&album_id=1683217451712299009&count=10#wechat_redirect) -* [WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba](https://mp.weixin.qq.com/s/0HzzWSb5irvpNKNnSJL6Bg) -* [B站专栏(视频):SRS开源服务器](https://space.bilibili.com/430256302/channel/detail?cid=136049) -* [零声学院(视频):SRS流媒体服务器实战](https://www.bilibili.com/video/BV1XZ4y1P7um) -* [音视频开发为什么要学SRS流媒体服务器](https://zhuanlan.zhihu.com/p/190182314) +## About SRS Stack -## Cluster Guides - -Please see [link](../category/clusters). - -## Effective SRS - -Please see [link](/guide#scenario). - -## Deployment Guides - -Please see [link](../category/main-protocols). - -## Integration Guides - -Please see [link](../category/openapi). - -## Video Guides - -Please see [link](../tutorial/srs-server). +SRS Stack是一个基于Go、Reactjs、SRS、FFmpeg、WebRTC等的轻量级、开源的视频云解决方案。 +详细请参考[SRS Stack](./getting-started-stack.md)。 ![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v6/introduction) diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/srt.md b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/srt.md new file mode 100644 index 00000000..c670e246 --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/current/doc/srt.md @@ -0,0 +1,14 @@ +--- +title: SRT +sidebar_label: SRT +hide_title: false +hide_table_of_contents: false +--- + +# SRT + +See [SRT](./sample-srt.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v6/srt) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/flv.md b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/flv.md new file mode 100644 index 00000000..22d499cc --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/flv.md @@ -0,0 +1,14 @@ +--- +title: HTTP-FLV +sidebar_label: HTTP-FLV +hide_title: false +hide_table_of_contents: false +--- + +# HTTP-FLV + +See [HTTP-FLV](./delivery-http-flv.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v5/flv) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/hls.md b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/hls.md new file mode 100644 index 00000000..14ec2a67 --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/hls.md @@ -0,0 +1,14 @@ +--- +title: HLS +sidebar_label: HLS +hide_title: false +hide_table_of_contents: false +--- + +# HLS + +See [HLS](./sample-hls.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v5/hls) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/introduction.md b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/introduction.md index f8727aba..3f8e9f17 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/introduction.md +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/introduction.md @@ -7,86 +7,49 @@ hide_table_of_contents: false # Introduction -> 注意:SRS5属于开发版,不稳定。 +SRS是一个开源的([MIT协议](/license))简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 +SRS媒体服务器和[FFmpeg](https://ffmpeg.org)、[OBS](https://obsproject.com)、[VLC](https://www.videolan.org)、 +[WebRTC](https://webrtc.org)等客户端配合使用,提供[流的接收和分发](./getting-started.md)的能力,是一个典型的发布 +(推流)和订阅(播放)服务器模型。 SRS支持互联网广泛应用的音视频协议转换,比如可以将[RTMP](./rtmp.md)或[SRT](./srt.md), +转成[HLS](./hls.md)或[HTTP-FLV](./flv.md)或[WebRTC](./webrtc.md)等协议。 -## SRS Overview +SRS提供了[HTTP API](./http-api.md)开放接口,可以查询系统的状态和流状态。同时还支持[HTTP Callback](./http-callback.md) +支持回调能力,主动通知你的系统,并可以实现流的鉴权能力和业务定制(比如动态DVR)。SRS也支持官方的[Prometheus Exporter](./exporter.md) +对接到云原生的监控系统,具备强大的可观测性。SRS支持会话级别[可追踪日志](./log.md),极大降低了系统维护成本。 -SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。 +若你是新接触音视频和流媒体的朋友,或者新接触SRS的朋友,推荐阅读[快速起步](./getting-started.md)和[学习路径](/guide)。请花时间 +阅读后续的文档,阅读和熟悉文档是社区的基本要求。如果你遇到问题,请先在[FAQ](/faq)中快速查找,然后在[Issues](https://github.com/ossrs/srs/issues) +和[Discussions](https://github.com/ossrs/srs/discussions)中查找,几乎所有问题都可以在这里找到答案。 -[![SRS Overview](/img/SRS-SingleNode-4.0-sd.png)](/img/SRS-SingleNode-4.0-hd.png) +SRS使用ANSI C++ (98)开发,只使用了基本的C++能力,可以在Linux、Windows、macOS等多个平台运行,推荐使用Ubuntu 20+系统开发和调试, +我们提供的镜像[ossrs/srs](https://hub.docker.com/r/ossrs/srs)也是基于Ubuntu 20 (focal)构建的。 -> Note: 简单的单节点架构,适用于大多数场景,大图请看[figma](https://www.figma.com/file/333POxVznQ8Wz1Rxlppn36/SRS-4.0-Server-Arch)。 +> Note: 为了解决复杂的流媒体处理中的长连接和复杂的状态机问题,SRS使用了[ST(State Threads)](https://github.com/ossrs/state-threads) +协程技术(类似[Goroutine](https://go.dev/doc/effective_go#goroutines)),并在不断增强和维护ST的能力,支持了Linux、Windows、macOS +多个平台,X86_64、ARMv7、AARCH64、M1、RISCV、LOONGARCH和MIPS等多种CPU架构。 -[![SRS Overview](/img/SRS-Overview-4.0.png)](/img/SRS-Overview-4.0.png) +## Who's using SRS? -> Note: 这是典型的源站和边缘集群的架构,适用于需要高并发的场景,高清大图请参考[这里](https://www.processon.com/view/link/5e3f5581e4b0a3daae80ecef) +SRS的用户遍布全球,欢迎大家在[SRS应用案例](https://github.com/ossrs/srs/discussions/3771)中展示自己的SRS应用。 -对于新手来说,音视频的门槛真的非常高,SRS的目标是**降低**(不能**消除**)音视频的门槛,所以请一定要读完Wiki。 -不读Wiki一定扑街,不读文档请不要提Issue,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。 +## Governance -Please read [Getting Started](../doc/getting-started). +欢迎大家参与SRS的开发和维护,推荐从[Contribute](https://github.com/ossrs/srs/contribute)解决Issue和 +[提交PR](/how-to-file-pr)开始, 所有贡献过的朋友都会在[Contributors](https://github.com/ossrs/srs#authors) +中展示。 -## Solution Guides +## Milestone -* [陈海博:SRS在安防中的应用](https://www.bilibili.com/video/BV11S4y197Zx) -* 最佳实践:[一对一通话](https://mp.weixin.qq.com/s/xWe6f9WRhtwnpJQ8SO0Eeg),[多人通话](https://mp.weixin.qq.com/s/CM2h99A1e_masL5sjkp4Zw)和[直播连麦](https://mp.weixin.qq.com/s/7xexl07rrWBdh8xennXK3w) -* [最佳实践:如何扩展你的SRS并发能力?](https://mp.weixin.qq.com/s/pd9YQS0WR3hSuHybkm1F7Q) -* SRS是单进程模型,不支持多进程;可以使用[集群](https://mp.weixin.qq.com/s/pd9YQS0WR3hSuHybkm1F7Q) 或者[ReusePort](./reuse-port.md)扩展多进程(多核)能力。 -* [基于HLS-TS&RTMP-FLV的微信小程序点直播方案](https://mp.weixin.qq.com/s/xhScUrkoroM7Q7ziODHyMA) -* [借力SRS落地实际业务的几个关键事项](https://mp.weixin.qq.com/s/b19kBer_phZl4n4oUBOvxQ) -* [干货 | 基于SRS直播平台的监控系统之实现思路与过程](https://mp.weixin.qq.com/s/QDTtW85giKmryhvCBkyyCg) -* [Android直播实现](https://blog.csdn.net/dxpqxb/article/details/83012950) -* [SRS直播服务器与APP用户服务器的交互](https://www.jianshu.com/p/f3dfa727475a) -* [使用flvjs实现摄像头flv流低延时实时直播](https://www.jianshu.com/p/2647393f956a) -* [IOS 直播方面探索(服务器搭建,推流,拉流)](https://www.jianshu.com/p/1aa677d99d17) -* [国产开源流媒体SRS4.0对视频监控GB28181的支持](https://mp.weixin.qq.com/s/VIPSPaBB5suUk7_I2oOkMw) +SRS大概是两年发布一个大版本,一年时间开发,一年时间提升稳定性,详细请参考[Milestone](/product)。 -## Develop Guide +## Sponsors -* [高性能网络服务器设计](https://blog.csdn.net/win_lin/article/details/8242653),分析高性能网络服务器的设计要点。 -* [SRS高精度、低误差定时器](https://mp.weixin.qq.com/s/DDSzRKHyJ-uYQ9QQC9VOZg),论高并发服务器的定时器问题。 -* [协程原理:函数调用过程、参数和寄存器](https://mp.weixin.qq.com/s/2TsYSiV8ysyLrELHdlHtjg),剖析SRS协程实现的最底层原理。 -* [性能优化:SRS为何能做到同类的三倍](https://mp.weixin.qq.com/s/r2jn1GAcHe08IeTW32OyuQ),论性能优化的七七八八、前前后后。 -* [SRS代码分析](https://github.com/xialixin/srs_code_note/blob/master/doc/srs_note.md),分析SRS结构和代码逻辑,类结构图,线程模型,模块架构。 -* [Third-party Client SDK](./client-sdk.md): 第三方厂商提供的客户端推流和播放的SDK,一般是移动端包括Andoird和iOS。 -* [轻量线程分析](https://github.com/ossrs/state-threads#analysis),分析SRS依赖的库ST的关键技术。 -* [SRS代码分析](https://github.com/xialixin/srs_code_note/blob/master/doc/srs_note.md),分析SRS结构和代码逻辑,类结构图,线程模型,模块架构。 -* [深度: 掀起你的汇编来:如何移植ST协程到其他系统或CPU?](https://mp.weixin.qq.com/s/dARz99INVlGuoFW6K7SXaw) -* [肖志宏:SRS支持WebRTC级联和QUIC协议](https://www.bilibili.com/video/BV1Db4y1b77J) -* [StateThreads源码分析](https://www.xianwaizhiyin.net/?cat=24) -* [SRS 4.0源码分析](https://www.xianwaizhiyin.net/?cat=21) +SRS致力于构建一个非盈利性的开源项目和社区,我们对赞助SRS朋友提供专门的社区支持,请看[Sponsor](/contact#donation)。 -## Tech Docs +## About SRS Stack -* [历经5代跨越25年的RTC架构演化史](https://mp.weixin.qq.com/s/fO-FcKU_9Exdqh4xb_U5Xw) -* [技术解码 | SRT和RIST协议综述](https://mp.weixin.qq.com/s/jjtD4ik-9noMyWbecogXHg) -* [公众号专栏:SRS,知识库,重要功能和阶段性结果,解决方案和DEMO](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzA4NTQ3MzQ5OA==&scene=1&album_id=1703565147509669891&count=10#wechat_redirect) -* [公众号专栏:深度,底层技术分析,服务器模型,协议处理,性能优化等](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA4NTQ3MzQ5OA==&action=getalbum&album_id=2156820160114900994#wechat_redirect) -* [公众号专栏:动态,关于最新的会议和动态,新闻,社区等](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA4NTQ3MzQ5OA==&action=getalbum&album_id=1683217451712299009&count=10#wechat_redirect) -* [WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba](https://mp.weixin.qq.com/s/0HzzWSb5irvpNKNnSJL6Bg) -* [B站专栏(视频):SRS开源服务器](https://space.bilibili.com/430256302/channel/detail?cid=136049) -* [零声学院(视频):SRS流媒体服务器实战](https://www.bilibili.com/video/BV1XZ4y1P7um) -* [音视频开发为什么要学SRS流媒体服务器](https://zhuanlan.zhihu.com/p/190182314) - -## Cluster Guides - -Please see [link](../category/clusters). - -## Effective SRS - -Please see [link](/guide#scenario). - -## Deployment Guides - -Please see [link](../category/main-protocols). - -## Integration Guides - -Please see [link](../category/openapi). - -## Video Guides - -Please see [link](../tutorial/srs-server). +SRS Stack是一个基于Go、Reactjs、SRS、FFmpeg、WebRTC等的轻量级、开源的视频云解决方案。 +详细请参考[SRS Stack](./getting-started-stack.md)。 ![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v5/introduction) diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/srt.md b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/srt.md new file mode 100644 index 00000000..577cbccd --- /dev/null +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/version-5.0/doc/srt.md @@ -0,0 +1,14 @@ +--- +title: SRT +sidebar_label: SRT +hide_title: false +hide_table_of_contents: false +--- + +# SRT + +See [SRT](./sample-srt.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/zh/v5/srt) + + diff --git a/i18n/zh-cn/docusaurus-plugin-content-pages/contact.md b/i18n/zh-cn/docusaurus-plugin-content-pages/contact.md index baf28337..ee6d6477 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-pages/contact.md +++ b/i18n/zh-cn/docusaurus-plugin-content-pages/contact.md @@ -16,6 +16,8 @@ SRS付费星球,会给付费用户更多的时间和支持,会优先回答 ![付费支持](/img/srs-zsxq-no-border.png) +> Note: 加入星球后,请在星球上提问。 + 详细说明,请进入SRS公众号,点击菜单栏,选择`加群 > 付费支持`。 ## Discussion diff --git a/i18n/zh-cn/docusaurus-plugin-content-pages/faq-srs-stack.md b/i18n/zh-cn/docusaurus-plugin-content-pages/faq-srs-stack.md index eb72c296..081f2ce5 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-pages/faq-srs-stack.md +++ b/i18n/zh-cn/docusaurus-plugin-content-pages/faq-srs-stack.md @@ -541,8 +541,13 @@ SRS Stack的使用说明,请参考视频[SRS Stack:起步、购买和入门] 以下为SRS Stack的更新记录。 -* 2023.08.14, v1.0.306, v5.7.20 - * 总是释放DO的临时测试资源. v1.0.306 +* 2023.08.17, v1.0.307, v5.7.20 + * 总是释放DO的临时测试资源。 v1.0.306 + * 修复 Docker 启动失败,通过测试覆盖。v1.0.306 + * 将默认语言切换为英文。v1.0.306 + * 支持include SRS配置文件. v1.0.306 + * 支持高性能HLS分发模式. v1.0.307 + * 显示设置中的配置的当前的值. v1.0.307 * 2023.08.13, v1.0.305, v5.7.19 * 优化DigitalOcean droplet镜像。v1.0.302 * 支持本地测试所有脚本。v1.0.302 diff --git a/src/pages/contact.md b/src/pages/contact.md index d533eb81..5b1e9603 100644 --- a/src/pages/contact.md +++ b/src/pages/contact.md @@ -15,6 +15,8 @@ support you need: https://opencollective.com/srs-server +> Note: Please contact us by [Discord](https://discord.gg/yZ4BnPmHAd) after becoming a sponsor or backer. + SRS is a non-profit community made up of dedicated volunteers who strive to offer enhanced support to sponsors and backers. Although you can also turn to the community for assistance, please be aware that response times might not be as quick as desired. diff --git a/src/pages/faq-srs-stack.md b/src/pages/faq-srs-stack.md index 30b952f9..b2e058c3 100644 --- a/src/pages/faq-srs-stack.md +++ b/src/pages/faq-srs-stack.md @@ -526,8 +526,13 @@ Welcome to join the group to discuss the use of SRS Stack. All these SRS periphe The following are the update records for the SRS Stack server. -* 2023.08.14, v1.0.306, v5.7.20 +* 2023.08.17, v1.0.307, v5.7.20 * Always dispose DO VM and domain for test. v1.0.306 + * Fix docker start failed, cover by test. v1.0.306 + * Switch default language to en. v1.0.306 + * Support include for SRS config. v1.0.306 + * Support High Performance HLS mode. v1.0.307 + * Show current config for settings. v1.0.307 * 2023.08.13, v1.0.305, v5.7.19 * Refine DigitalOcean droplet image. v1.0.302 * Support local test all script. v1.0.302 diff --git a/versioned_docs/version-5.0/doc/flv.md b/versioned_docs/version-5.0/doc/flv.md new file mode 100644 index 00000000..cd7ce204 --- /dev/null +++ b/versioned_docs/version-5.0/doc/flv.md @@ -0,0 +1,14 @@ +--- +title: HTTP-FLV +sidebar_label: HTTP-FLV +hide_title: false +hide_table_of_contents: false +--- + +# HTTP-FLV + +See [HTTP-FLV](./delivery-http-flv.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v5/flv) + + diff --git a/versioned_docs/version-5.0/doc/hls.md b/versioned_docs/version-5.0/doc/hls.md new file mode 100644 index 00000000..2f63f19a --- /dev/null +++ b/versioned_docs/version-5.0/doc/hls.md @@ -0,0 +1,14 @@ +--- +title: HLS +sidebar_label: HLS +hide_title: false +hide_table_of_contents: false +--- + +# HLS + +See [HLS](./sample-hls.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v5/hls) + + diff --git a/versioned_docs/version-5.0/doc/introduction.md b/versioned_docs/version-5.0/doc/introduction.md index 0b6f62b7..1d6f47a1 100644 --- a/versioned_docs/version-5.0/doc/introduction.md +++ b/versioned_docs/version-5.0/doc/introduction.md @@ -7,53 +7,61 @@ hide_table_of_contents: false # Introduction -> Remark: SRS5 is developing and not stable. +SRS is a open-source ([MIT Licensed](/license)), simple, high-efficiency, real-time video server supporting RTMP, +WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181. SRS media server works with clients like [FFmpeg](https://ffmpeg.org), +[OBS](https://obsproject.com), [VLC](https://www.videolan.org), and [WebRTC](https://webrtc.org) to provide +the ability to [receive and distribute streams](./getting-started.md) in a typical publish (push) and +subscribe (play) server model. SRS supports widely used internet audio and video protocol conversions, +such as converting [RTMP](./rtmp.md) or [SRT](./srt.md) to [HLS](./hls.md), [HTTP-FLV](./flv.md), or +[WebRTC](./webrtc.md). -## SRS Overview +SRS provides an [HTTP API](./http-api.md) open interface to query system and stream status. It also supports +[HTTP Callback](./http-callback.md) for callback capabilities, actively notifying your system and implementing +stream authentication and business customization (such as dynamic DVR). SRS also supports the official +[Prometheus Exporter](./exporter.md) for integration with cloud-native monitoring systems, offering powerful +observability. SRS supports session-level [traceable logs](./log.md), greatly reducing system maintenance costs. -SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT. +If you are new to audio, video, and streaming media or new to SRS, we recommend reading [Getting Started](./getting-started.md) +and [Learning Path](/guide). Please take the time to read the following documentation, as reading and +familiarizing yourself with the documentation is a basic requirement of the community. If you encounter any +problems, please first search in the [FAQ](/faq), then in [Issues](https://github.com/ossrs/srs/issues) and +[Discussions](https://github.com/ossrs/srs/discussions) to find answers to almost all questions. -[![SRS Overview](/img/SRS-SingleNode-4.0-sd.png)](/img/SRS-SingleNode-4.0-hd.png) +SRS is developed using ANSI C++ (98) and only uses basic C++ capabilities. It can run on multiple platforms +such as Linux, Windows, and macOS. We recommend using Ubuntu 20+ for development and debugging. The image +we provide [ossrs/srs](https://hub.docker.com/r/ossrs/srs) is also built on Ubuntu 20 (focal). -> Note: The single node architecture for SRS, general and major use scenario, please see [figma](https://www.figma.com/file/333POxVznQ8Wz1Rxlppn36/SRS-4.0-Server-Arch). +> Note: To solve the long connection and complex state machine problems in complex streaming media processing, +> SRS uses [ST(State Threads)](https://github.com/ossrs/state-threads) coroutine technology (similar +> to [Goroutine](https://go.dev/doc/effective_go#goroutines)) and continuously enhances and maintains +> ST's capabilities, supporting multiple platforms such as Linux, Windows, macOS, and various CPU +> architectures like X86_64, ARMv7, AARCH64, M1, RISCV, LOONGARCH, and MIPS. -[![SRS Overview](/img/SRS-Overview-4.0.png)](/img/SRS-Overview-4.0.png) +## Who's using SRS? -> Note: The cluster architecture, for detail picture please see [here](https://www.processon.com/view/link/5e3f5581e4b0a3daae80ecef) +SRS users are spread all over the world, and we welcome everyone to showcase their SRS applications +in [SRS Use Cases](https://github.com/ossrs/srs/discussions/3771). -Please read [Getting Started](../doc/getting-started). +## Governance -## Solution Guides +We welcome everyone to participate in the development and maintenance of SRS. We recommend starting by +resolving issues from [Contribute](https://github.com/ossrs/srs/contribute) and [submitting PRs](/how-to-file-pr). +All contributors will be showcased in [Contributors](https://github.com/ossrs/srs#authors). -TBD. +## Milestone -## Develop Guide +SRS releases a major version approximately every two years, with one year for development and one year +for stability improvement. For more details, please refer to [Milestone](/product). -TBD. +## Sponsors -## Tech Docs +SRS is committed to building a non-profit open-source project and community. We provide special community +support for friends who sponsor SRS. Please see [Sponsor](/contact#donation). -TBD. +## About SRS Stack -## Cluster Guides - -Please see [link](../category/clusters). - -## Effective SRS - -Please see [link](/guide#scenario). - -## Deployment Guides - -Please see [link](../category/main-protocols). - -## Integration Guides - -Please see [link](../category/openapi). - -## Video Guides - -Please see [link](../tutorial/srs-server). +SRS Stack is a lightweight, open-source video cloud solution based on Go, Reactjs, SRS, FFmpeg, WebRTC, +and more. For more details, please refer to [SRS Stack](./getting-started-stack.md). ![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.io&path=/lts/doc/en/v5/introduction) diff --git a/versioned_docs/version-5.0/doc/srt.md b/versioned_docs/version-5.0/doc/srt.md new file mode 100644 index 00000000..87e4f382 --- /dev/null +++ b/versioned_docs/version-5.0/doc/srt.md @@ -0,0 +1,14 @@ +--- +title: SRT +sidebar_label: SRT +hide_title: false +hide_table_of_contents: false +--- + +# SRT + +See [SRT](./sample-srt.md). + +![](https://ossrs.net/gif/v1/sls.gif?site=ossrs.net&path=/lts/doc/en/v5/srt) + +