Skip to main content

Product

About milestones of SRS.

For detail features of SRS, please see FEATURES.

History

Let's briefly introduce the history of SRS in reverse order.

From June to December 2025, AI became a major contributor to SRS development. AI was used extensively to cleanup issues, review pull requests, and improve unit test coverage from 40% to 88%. AI also helped implement new features and enhancements. While AI is now a major contributor, the human maintainer still reviews each line of code generated by AI and makes all final decisions, ensuring code quality and project direction remain under human oversight.

In January 2025, the paid star planet was closed and all paid support services were discontinued. The decision was made to build a purely volunteer-driven community without any monetization. While donations, sponsors, and backers are still needed and welcomed to support the project, no special paid services will be provided to anyone. With AI now working very well as a question answerer and problem solver, anyone who needs help should use AI first.

In January 2023, Star exceeded 20K and launched the Paid Star Planet. Oryx supported Virtual Live Broadcasting, confirmed the development codename for version 6.0 as Hang, and introduced new TOC rules.

In November 2022, the SRS TOC and developer community were established, with the number of active developers reaching 47. SRS 5.0 was completed, with new features including Forward Enhancement, GB28181, Windows, Apple M1, RISCV, MIPS, Loongson, DASH Enhancement, AddressSanitizer, Prometheus Exporter, SRT Enhancement, Unity WebRTC, WHIP, and WebRTC over TCP.

In January 2021, the Open Source Technology Committee was established. In April, SRS shared best practices on Alibaba Cloud at LVS and supported AV1. In May, RTC documentation was improved, including RTC and RTMP conversion, one-to-one calls, live streaming with guests, and multi-person conferences. In May, SRT was improved.

In 2020, SRS 4.0 development began. In January, SRT was supported, K8S was supported in February, and WebRTC was supported in March. In June, SRS 3.0 was released, and in October, the official App was launched along with Flutter. In November, HTTPS was supported, and in December, it became the world's top open-source video server.

In December 2019, SRS 3's core protocols HTTP/RTMP had a coverage rate of 95%, with an overall coverage rate of 42%. Key progress was made in stability work, and it entered the Alpha release stage. SRS fully supported Docker.

In February 2018, source station clustering was supported, and the live streaming cluster (source station cluster and edge cluster) was improved.

On March 3, 2017, SRS 2.0 r0 was officially released, delayed by 2 years mainly due to being too busy with work and not having enough time to maintain SRS. In early 2017, after changing jobs and having 2 months of dedicated work, r0 was released. It took 869 days (+100%), 234 updates (+5%), 1550 new submissions (+80%), averaging 1.78 submissions per day (-60%), adding 26,900 lines of code (+45%), and resolving 229 issues (+27%).

February 2017, support for recording as MP4 and MP4 format. April support for Haivision encoder, June support for DASH.

May 2016, compared the differences between SRS/BMS/NGINX and CDN. At that time, tried open-source commercialization solutions, provided SRS open-source free version, BMS was a commercial paid version, but this path was not easy in China; China's open-source needs to follow its own unique path, and foreign models may not necessarily work when brought over.

October 2014, started the development of SRS2.0, with an estimated development cycle of about 6 months. The main goal was to fully understand and master ST, simplify the server's client model, and improve other small features. The bigger direction was support for 3.0+.

October 2014, SRS1.0 beta released. From 0 to 1.0, SRS took 1 year, 17 milestones, 7 development versions, 223 revisions, 43,700 lines of functional code, 15,616 lines of utest code, 1,803 commits, 161 bugs and features, resolved 117, can run on 1 platform (Linux), supports 4 types of CPUs (x86/x64/arm/mips), 11 core features (origin, edge, vhost, transcode, ingest, dvr, forward, http-api, http-callback, reload, tracable-log), 35 feature points, 58 wiki articles, SRS QQ group has 245 members, 141 active members, 2 main authors, 12 contributors, 14 donors, at least ChinaCache, VeryCloud, VeryCDN, Tsinghua TV Station are using or based on SRS to modify their own servers, hundreds of companies in various industries are using SRS, mainly including video surveillance, mobile, online education, showrooms and KTV, interactive video, TV stations, IoT, students.

March 2014, entered the feedback period, Raspberry Pi, Extreme Router, Cubieboard and other embedded devices were asked if they could be supported. I bought a Raspberry Pi myself, successfully ran it, and fixed a bug in ST. From this time on, it was a period of feature explosion, receiving feedback from group members. Transcoding, forwarding, collection, and recording were all tasks during this period.

November 2013, joined chnvideo to be responsible for R&D management. Later, chnvideo wanted to make encoders, and the encoders needed to output to RTMP servers. Since nginx-rtmp often had problems, they decided to use my SRS to replace nginx-rtmp. During the encoder's launch process, I gradually improved SRS, which was a rapid growth period for SRS. Opening the server allowed customers to use our encoder better, and our encoder could support pull mode. This stage was mainly the origin server stage.

October 2013, SRS was created. SRS was a simple live streaming origin server I wrote after leaving ChinaCache in September 2013, referring to nginx-rtmp. The colleague who took over my work at ChinaCache could also see how the server was built step by step. ChinaCache's customers could also use this origin server, as dealing with those messy origin servers was too troublesome. I wanted to use my spare time to build a product that was not easily influenced by customers, only adding features that followed core values.

Vision

SRS is the world's top open-source video server, supporting live streaming and WebRTC, applicable to various video scenarios and industries.

  • Mission: Empower small and micro enterprises and developers with audio and video capabilities without barriers.
  • Vision: Every small and micro enterprise has audio and video capabilities.
  • Values: Simplicity, openness, and pragmatism.

For a detailed interpretation, please see Welcome to SRS: Mission, Vision, and Values.

Release 7.0

Code name: Kai. Named by TOC member Haibo Chen. Development started August 2024, planned for release by the end of 2026.

Code Name Story: I am Haibo Chen, a core maintainer of SRS and a TOC member. The code name Kai is inspired by my son Chen Kaiqi's name. As a father, I aim to set a good example by doing meaningful and interesting work. I appreciate the support and collaboration from everyone in the community, making it more vibrant and warm. This upgrade aims to provide users with more powerful features and a smoother experience, laying a strong foundation for SRS's future.

New Protocols & Major Features

  • RTSP Playback - Support for viewing streams over RTSP protocol. #4333
  • RTMPS Server - Support for RTMP over SSL server. #4443
  • Proxy Cluster - Support for proxy server functionality with more stream paths. #4158
  • IPv6 Support - Full IPv6 support for all protocols: RTMP, HTTP/HTTPS, WebRTC, SRT, RTSP. #4457

WebRTC Enhancements

  • VP9 Codec - Support for VP9 codec in WebRTC-to-WebRTC streaming. #4548
  • G.711 Audio - Support for G.711 (PCMU/PCMA) audio codec for WebRTC. #4075
  • HEVC Support - RTMP-to-WebRTC and WebRTC-to-RTMP conversion with HEVC. #4289, #4349
  • Audio Jitter Buffer - RTC audio packet jitter buffer for improved quality. #4295
  • Dual Video Track - Support for dual video track with multiple codecs (AVC and HEVC) in RTMP2RTC bridge. #4413
  • WHEP Support - WebRTC HTTP Egress Protocol for playback. #3404

HLS Improvements

  • HLS fMP4 - HLS protocol support for fMP4 segments for HEVC/LLHLS. #4159
  • Query String Support - Support query string in hls_key_url for JWT tokens. #4426
  • Master M3U8 Path - Support hls_master_m3u8_path_relative for reverse proxy. #4338

Architecture Changes

  • Single-Thread Architecture - Removed multi-threading support, changed to single-thread architecture for simplicity. #4445
  • Always Enable WebRTC - WebRTC is now always enabled and enforces C++98 compatibility. #4447
  • Always Enable SRT - SRT protocol is now always enabled. #4460
  • Unified Server - Merged SRT and RTC servers into unified SrsServer. #4459
  • HTTP Parser Upgrade - Upgraded from http-parser to llhttp. #4469
  • Stream Publish Token - Implemented stream publish token system to prevent race conditions across all protocols. #4452

DVR & Recording

  • HEVC DVR to FLV - Support H.265 FLV fragments for DVR. #4296
  • MP4 DVR Sync - Fix audio/video synchronization issues in WebRTC recordings. #4230

Code Quality & Build

  • Clang Format - Use clang-format to unify coding style. #4366, #4433
  • Memory Management - Multiple memory leak fixes and improved error handling throughout the codebase.
  • Build Improvements - Better dependency detection and reporting. #4293

Other Improvements

  • GB28181 Changes - Removed embedded SIP server, enforce external SIP usage. #4466
  • RTMP Config Section - Moved RTMP configs to rtmp section. #4454
  • Cloud Features Removed - Removed cloud CLS and APM. #4456

SRS 7.0 development started at 2024.08.

Release 6.0

Development codename: Hang. Named by TOC John. Released on December 3, 2024, now the stable version replacing SRS 5.0.

Note: The development codename Hang is named by TOC John, and the specific meaning is left for everyone to appreciate and ponder.

HEVC/H.265 Support (Major Feature)

  • HEVC over RTMP/HTTP-FLV - Full H.265 support for RTMP and HTTP-FLV streaming. #465
  • HEVC over HLS - H.265 support in HLS delivery.
  • HEVC over HTTP-TS - H.265 support for MPEG-TS streaming.
  • HEVC over SRT - H.265 support for SRT protocol.
  • HEVC DVR to MP4 - Record H.265 streams to MP4 format.
  • HEVC DVR to FLV - Record H.265 streams to FLV fragments.

WebRTC Enhancements

  • WHEP Support - WebRTC-HTTP Egress Protocol for playback.
  • OPUS Stereo SDP option - Support for stereo audio in WebRTC.
  • Configurable AAC to Opus bitrate - Customize transcoding bitrate.

Security & Authentication

  • IP Whitelist - Security support for HTTP-FLV, HLS, WebRTC, and SRT. #3902
  • Basic Authentication - HTTP API authentication feature. #3458

SRT Improvements

  • Upgraded libsrt to v1.5.3 - Latest SRT library version.
  • Configurable default_streamid - Customizable SRT stream IDs.
  • Reduced SRT-to-RTC latency - Down to 200ms.

HLS Features

  • Kick-off HLS clients - Ability to disconnect HLS clients.

Other Improvements

  • Smart pointers (SrsUniquePtr and SrsSharedPtr) - Improved memory management and fixed multiple memory leak issues. #4089, #4109
  • GB28181 protocol - Support for external SIP servers. #4101, srs-sip

SRS 6.0 was released at 2024.12, see 6.0-r0.

Release 5.0

Development codename: Bee, representing that SRS officially begins open-source community-driven development. Collaboration is the main feature, and it constantly reminds us that to do well in open-source projects, we need to put in time every day, just like bees. Thanks to all the 300+ developers and the core developers of the Technical Committee, especially the TOC for their continuous efforts. In June 2021, SRS entered the Mulans Open Source Community incubation, thanks to mentors Alibaba Cloud Chen Xu, Professor Zhou Minghui, Tencent Dan Zhihao, and the strong support of Mulan Community Director Yang Liyun. Special thanks to Tencent's Tommy (Li Yutao), Eddie (Xue Di), Leo (Liu Lianxiang), Vulture (Li Zhicheng), Dragon (Lan Yulong), and all developer leaders for their recognition of SRS and support for developers to participate in open-source contributions. Special thanks to community managers Geng Hang and Liu Qi for their contributions to community promotion and development.

  • Support for amd/armv7/aarch64 multi-CPU architecture Docker images. #3058
  • Enhanced Forward, supporting dynamic Forward, allowing flexible customization of forwarding strategies. #2799
  • GB28181, supporting GB2016 standard, built-in SIP signaling, and TCP port reuse for transmission. #3176
  • Windows, supporting Cygwin compilation, pipeline packaging, and GITEE mirror downloads. #2532
  • Apple M1, supporting Apple M1 chip, new MacPro compilation, and debugging. #2747
  • RISCV architecture support, modifying ST assembly to support RISCV CPU architecture. #3115
  • MIPS architecture support, Cygwin platform support, and ARMv7 and AARCH64 support.
  • Loongarch, supporting Loongson architecture and Loongarch64 server platform. #2689
  • Enhanced DASH, solving DASH freezing issues, reaching a commercially viable standard. #3240
  • Support for Google Address Sanitizer, solving wild pointer location issues. #3216
  • Prometheus Exporter, supporting cloud-native observability capabilities, and also supporting Tencent Cloud CLS and APM docking. #2899
  • Enhanced SRT, coroutine-native SRT improvements, more convenient maintenance, and stability. #3010
  • Unity WebRTC, supporting Unity platform docking with SRS, using WHIP protocol. srs-unity
  • Support for WHIP protocol, push and pull streams. #2324
  • WebRTC over TCP, supporting TCP transmission of WebRTC, and TCP port reuse. #2852
  • Support for HTTP API, HTTP Stream, HTTP Server, and WebRTC TCP port reuse. #2881

SRS 5.0 was released at 2023.12, see 5.0-r0.

Release 4.0

Development codename: Leo. Thanks to my streaming media and management career leader, former ChinaCache VP Fu Liang (Leo), for his firm support in the development of streaming media and for personally coaching and communicating when I first started leading a team. Thanks to the leaders I have met in my decade-long career, including He Li and Zhu Hui from Datang, Shu Shi from Microsoft, Fu Liang, Zhang Wei, Michael, Liu Qi, Miao Quan, and Wen Jie from ChinaCache, Yu Bing from Kuaishou, Yang Mohan and Lei Jian from chnvideo, Bao Yan from LVS, and Shu Du, Zhi Fan, Hua Da, Wen Jing, Shi Hao, and Huan Jian from Alibaba. Thanks to my classmates who have grown and coded together.

  • Support WebRTC push and playback, refer to #307
  • Support RTMP to RTC, low-latency live streaming scenarios, refer to #307
  • Support RTC to RTMP, conference recording, refer to #307
  • Support RTC single-port reuse, avoiding multi-port issues, refer to #307
  • Improve HTTP-API, support WebRTC and HLS, refer to #2578, [#2483]((https://github.com/ossrs/srs/issues/2483), #2509
  • Enhance HTTPS, support HTTPS-FLV, HTTPS-API, HTTPS-Callback
  • Support Docker and K8S docking, cloud-native transformation, refer to #1579, #1595
  • Support RTC client network switching, multi-network card switching issues, refer to #307
  • Support regression testing, RTC automatic testing, refer to srs-bench
  • [experimental] Support SRT push, widely supported new protocol in broadcasting. Refer to: #1147.
  • [feature] Support GB28181 push, camera push through national standard protocol. Refer to: #1500.

SRS 4.0 was released at 2022.06, see 4.0-r0.

Release 3.0

Development codename: Ou Xuli. Thanks to my university teacher, Mr. Ou Xuli (Ou Gong), who created Zhongqin Online, allowing me to practice real knowledge while studying software theory in college. Thanks to my classmates at Zhongqin, Chen Zhe, Liu Xiaojing, Sheng Xiehua, Yi Nianhua, Ma Yan, and other classmates at Zhongqin. I hope SRS can carry our initial dreams and go further.

SRS Release 3.0, in the development stage. The main goals are:

  • Support NGINX-RTMP's EXEC feature. Refer to: #367.
  • Support NGINX-RTMP's DVR control module feature. Refer to: #459.
  • Support secure, readable, and writable HTTP API (HTTP Security Raw API). Refer to: #470, [#319]((https://github.com/ossrs/srs/issues/319), #459.
  • Support DVR as MP4 files. Refer to: #738.
  • Support screenshots, HttpCallback, and Transcoder in two ways. Refer to: #502.
  • Rewrite error and log handling, use complex errors, and simplify logs. Refer to: #913.
  • Rewrite error handling workflow, accurately define exceptions. Refer to: #1043.
  • Learn English, rewrite English WIKI. Refer to: #967.
  • Support source station cluster, load balancing, and hot backup. Refer to: #464, RTMP 302.
  • Add UTest, covering core critical logic code. Refer to: #1042.
  • [experimental] Support MPEG-DASH, possible future standard. Refer to: #299.

SRS 3.0 was released at 2020.06, see 3.0-r0.

Release 2.0

Development codename: ZhouGuowen. Thanks to my high school teacher Mr. Zhou Guowen for teaching me to be independent and opening a new chapter in my life.

SRS release 2.0 is expected to have a development cycle of about one year. The main goals are:

  • Translate Chinese wiki into English.
  • Improve performance, support 10k+ playback and 4.5k+ streaming. See: #194, #237 and #251.
  • srs-librtmp supports sending h.264 and aac raw streams. See: #66 and #212.
  • Learn and simplify st, only keep linux/arm part of the code. See: #182.
  • srs-librtmp supports Windows platform. See: bug #213, and srs-librtmp
  • Simplify handshake, use template method instead of union. See: #235.
  • srs-librtmp supports hijacking IO, applied to srs-bench.
  • Support real-time mode, with a minimum delay of 0.1 seconds. See: #257.
  • Support allowing and prohibiting clients from streaming or playing. See: #211.
  • DVR supports custom file path and DVR http callback.
  • Commercially available built-in HTTP server, referring to GO's http module. See: #277.
  • RTMP stream encapsulation as HTTP Live flv/aac/mp3/ts stream distribution. See: #293.
  • Enhanced DVR, supports Append/callback, see: #179.
  • Enhanced HTTP API, supports stream/vhost query, see: #316.
  • Support HSTRS (HTTP stream triggers RTMP back-to-source), support HTTP-FLV waiting, support edge back-to-source, see: #324.
  • [experimental] Support HDS, see: #328.
  • [experimental] Support Push MPEG-TS over UDP to SRS, see: #250.
  • [experimental] Support Push RTSP to SRS, see: #133.
  • [experimental] Support remote console, link: console.
  • Other small feature improvements.

SRS Release 2.0 was officially released on March 3, 2017.

Release 1.0

Development codename: HuKaiqun. Thanks to my junior high school teachers Hu Kaiqun and Gao Ang for teaching me to love what I do.

SRS release 1.0 is expected to have a development cycle of about one year. The main goals are:

  • Provide core business functions for internet live streaming, i.e., RTMP/HLS live streaming. Able to connect to any encoder and player, cluster support for connecting to any source server.
  • Provide a rich set of peripheral streaming media functions, such as Forward, Transcode, Ingest, DVR. Convenient for various source station businesses.
  • Perfect operation interface, reload, HTTP API, complete and up-to-date wiki. In addition, provide supporting commercial monitoring and troubleshooting systems.
  • Complete utest mechanism, as well as gperf (gmc, gmp, gcp) and gprof performance and optimization mechanisms. Provide a satisfactory performance and memory error detection mechanism at the C++ level.
  • Run on ARM/MIPS and other embedded CPU devices with Linux. In addition, provide supporting intranet monitoring and troubleshooting, cubieboard/raspberry-pi embedded servers.
  • High-performance server, supporting 2.7k concurrent connections.

SRS Release 1.0 was released on schedule on December 5, 2014.