随着志宏大神合并完DASH的功能,SRS 5.0正式完成功能,进入一年左右的稳定性提升阶段,预计在2023年底正式发布,现在已经可以开始体验SRS 5.0的Alpha版本了。
SRS 5.0 Alpha 0
Features
下面是5.0新增的功能列表:
- • 优化SRT,支持协程原生架构。#3010[1]
- • 支持amd/armv7/aarch64多CPU架构的Docker镜像。#3058[2]
- • Forward增强,支持动态Forward,可以灵活定制转发策略。#2799[3]
- • GB28181,支持GB2016标准,内置SIP信令,TCP复用端口传输。#3176[4]
- • Windows,支持Cygwin编译,流水线打安装包,GITEE镜像下载。#2532[5]
- • Apple M1,支持Apple M1芯片,新的MacPro编译和调试。#2747[6]
- • RISCV架构支持,修改ST汇编支持RISCV CPU架构。#3115[7]
- • MIPS架构支持,Cygwin平台支持,另外ARMv7和AARCH64早已经支持。
- • Loongarch,支持龙芯架构,支持Loongarch64服务器平台。#2689[8]
- • DASH增强,解决DASH卡死问题,达到可正式商用标准。#3240[9]
- • 支持Google Address Sanitizer,解决野指针定位问题。#3216[10]
- • Prometheus Exporter,支持云原生可观测能力,另也支持腾讯云CLS和APM对接。#2899[11]
- • SRT增强,协程原生的SRT改进,更便捷的维护和稳定性。#3010[12]
- • Unity WebRTC,支持Unity平台对接SRS,使用WHIP协议。srs-unity[13]
- • 支持WHIP协议,推流和拉流,#2324[14]
- • WebRTC over TCP,支持TCP传输WebRTC,支持TCP端口复用。#2852[15]
- • 支持HTTP API、HTTP Stream、HTTP Server、WebRTC TCP端口复用。 #2881[16].
ChangeLog
下面是5.0的变更列表:
- • v5.0, 2022-11-25, SRT: Support transform tlpkdrop to tlpktdrop. 5.0.98
- • v5.0, 2022-11-25, Config: Add ENV tips for config. 5.0.97
- • v5.0, 2022-11-24, For #299[17], DASH: Fix number mode bug to make it run. 5.0.96
- • v5.0, 2022-11-23, For #3176[18]: GB28181: Error and logging for HEVC. v5.0.95
- • v5.0, 2022-11-22, Merge #3236[19]: Live: Limit cached max frames by gop_cache_max_frames. v5.0.93
- • v5.0, 2022-11-22, Asan: Check libasan and show tips. v5.0.92
- • v5.0, 2022-11-21, Merge #3264[20]: Asan: Try to fix st_memory_leak for asan check. (#3264). v5.0.91
- • v5.0, 2022-11-21, Asan: Fix global ip address leak check. v5.0.90
- • v5.0, 2022-11-20, For #2532[21]: Windows: Support cygwin pipline and packager. v5.0.89
- • v5.0, 2022-11-18, Fix #3215[22]: Callback: Fix bug for response string 0. v5.0.88
- • v5.0, 2022-11-18, For #2532[23]: Windows: Replace ln by cp for windows. v5.0.87
- • v5.0, 2022-10-31, For #2899[24]: Exporter: Add metrics cpu, memory and uname. v5.0.86
- • v5.0, 2022-10-30, Config: Support startting with environment variable only. v5.0.85
- • v5.0, 2022-10-26, Fix #3218[25]: Log: Follow Java/log4j log level specs. v5.0.83
- • v5.0, 2022-10-25, Log: Refine the log interface. v5.0.82
- • v5.0, 2022-10-23, For #3216[26]: Support Google Address Sanitizer. v5.0.81
- • v5.0, 2022-10-21, Kernel: Support grab backtrace stack when assert fail. v5.0.80
- • v5.0, 2022-10-21, ST: Refine tools and CMakeLists.txt. Add backtrace example. v5.0.79
- • v5.0, 2022-10-10, For #2901[27]: Edge: Fast disconnect and reconnect. v5.0.78
- • v5.0, 2022-10-09, Fix #3198[28]: SRT: Support PUSH SRT by IP and optional port. v5.0.76
- • v5.0, 2022-10-06, GB28181: Support GB28181-2016 protocol. v5.0.74
- • v5.0, 2022-10-05, HTTP: Skip body and left message by upgrade. v5.0.73
- • v5.0, 2022-10-02, ST: Support set context id while thread running. v5.0.72
- • v5.0, 2022-09-30, RTC: Refine SDP to support GB28181 SSRC spec. v5.0.71
- • v5.0, 2022-09-30, GB28181: Refine HTTP parser to support SIP. v5.0.70
- • v5.0, 2022-09-30, Kernel: Support lazy sweeping simple GC. v5.0.69
- • v5.0, 2022-09-30, HTTP: Support HTTP header in creating order. v5.0.68
- • v5.0, 2022-09-27, For #2899[29]: Exporter: Support exporter for Prometheus. v5.0.67
- • v5.0, 2022-09-27, For #3167[30]: WebRTC: Refine sequence jitter algorithm. v5.0.66
- • v5.0, 2022-09-22, Fix #3164[31]: SRT: Choppy when audio ts gap is too large. v5.0.65
- • v5.0, 2022-09-16, APM: Support distributed tracing by Tencent Cloud APM. v5.0.64
- • v5.0, 2022-09-16, For #3179[32]: WebRTC: Make sure the same m-lines order for offer and answer. v5.0.63
- • v5.0, 2022-09-10, For #3174[33]: WebRTC: Support Unity to publish or play stream. v5.0.62
- • v5.0, 2022-09-06, Fix #3170[34]: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v5.0.61
- • v5.0, 2022-09-04, Fix #2852[35]: WebRTC: WebRTC over TCP directly, not TURN. v5.0.60
- • v5.0, 2022-09-01, Fix #1405[36]: Restore the stream when parsing failed. v5.0.59
- • v5.0, 2022-09-01, Fix #1405[37]: Support guessing IBMF first. v5.0.58
- • v5.0, 2022-09-01, ST: Define and use a new jmpbuf. v5.0.57
- • v5.0, 2022-08-31, Fix URL parsing bug for
__defaultVhost__
. v5.0.56 - • v5.0, 2022-08-30, Fix #2837[38]: Callback: Support stream_url and stream_id. v5.0.55
- • v5.0, 2022-08-30, STAT: Refine tcUrl for SRT/RTC. v5.0.54
- • v5.0, 2022-08-30, Refactor: Extract SrsNetworkKbps from SrsKbps. v5.0.53
- • v5.0, 2022-08-30, Remove bandwidth check because falsh is disabled. v5.0.52
- • v5.0, 2022-08-30, Refactor: Use compositor for ISrsKbpsDelta. v5.0.51
- • v5.0, 2022-08-29, RTC: Stat the WebRTC clients bandwidth. v5.0.50
- • v5.0, 2022-08-29, HLS: Stat the HLS streaming clients bandwidth. v5.0.49
- • v5.0, 2022-08-28, URL: Use SrsHttpUri to parse URL and query. v5.0.48
- • v5.0, 2022-08-28, Fix #2881[39]: HTTP: Support merging api to server. v5.0.47
- • v5.0, 2022-08-27, Fix #3108[40]: STAT: Update stat for SRT. v5.0.46
- • v5.0, 2022-08-26, Log: Stat the number of logs. v5.0.45
- • v5.0, 2022-08-24, Log: Support write log to tencentcloud CLS. v5.0.44
- • v5.0, 2022-08-22, Fix #3114[41]: Origin cluster config bug. v5.0.43
- • v5.0, 2022-08-19, For #2136[42]: API: Cleanup no active streams for statistics. v5.0.42
- • v5.0, 2022-08-14, Fix #2747[43]: Support Apple Silicon M1(aarch64). v5.0.41
- • v5.0, 2022-08-12, Support crossbuild for hisiv500. v5.0.40
- • v5.0, 2022-08-10, Build: Detect OS by packager. v5.0.39
- • v5.0, 2022-08-06, Support MIPS 64bits for loongson 3A4000/3B3000. v5.0.38
- • v5.0, 2022-07-20, Fix #3115[44]: ST: Support RISCV cpu. v5.0.33
- • v5.0, 2022-06-29, Support multiple threads by thread pool. v5.0.32
- • v5.0, 2022-06-28, ST: Support thread-local for multiple threads. v5.0.31
- • v5.0, 2022-06-17, Merge #3010[45]: SRT: Support Coroutine Native SRT over ST. (#3010). v5.0.30
- • v5.0, 2022-06-15, For #3058[46]: Docker: Support x86_64, armv7 and aarch64 docker image (#3058). v5.0.29
- • v5.0, 2022-04-04, Support NGINX HLS Cluster, see CN[47] or EN[48]. v5.0.28
- • v5.0, 2022-03-30, Support DigitalOcean Droplet SRS 1-Click[49]. v5.0.27
- • v5.0, 2022-03-12, Merge #2943[50]: SRT: Fix typo in libsrt build options. v5.0.26
- • v5.0, 2022-03-09, Merge SRS 4.0 for bugfix. v5.0.25
- • v5.0, 2022-02-16, Merge #2799[51]: Forward: Support dynamic forwarding by backend api. (#2799). v5.0.24
- • v5.0, 2022-02-14, Merge #2878[52]: Support include directive for config file. (#2878). v5.0.23
- • v5.0, 2022-01-18, Eliminate unused *.as files for Adobe Flash. v5.0.22
- • v5.0, 2022-01-13, Switch LICENSE from MIT to MIT or MulanPSL-2.0. v5.0.21
- • v5.0, 2021-10-24, For #2689[53]: Support loongarch, loongson CPU. v5.0.19
- • v5.0, 2021-10-17, Support daemon(fork twice) for Darwin/OSX ST#23[54]. v5.0.18
- • v5.0, 2021-10-16, DVR: support mp3 audio codec. (#2593) v5.0.17
- • v5.0, 2021-10-03, OpenWRT: Disable mprotect of ST. 5.0.16
- • v5.0, 2021-10-03, Actions: Create source tar lik srs-server-5.0.14.tar.gz
- • v5.0, 2021-10-02, ST: Support Cygwin64 and MIPS. 5.0.13
- • v5.0, 2021-09-23, Merge #2578[55] Support http callback on_play/stop. 5.0.12
- • v5.0, 2021-08-07, Fix #2508[56], Support features query by API. 5.0.10
- • v5.0, 2021-07-07, Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8
- • v5.0, 2021-07-01, Move AUTHORS.txt to trunk for docker. 5.0.7
- • v5.0, 2021-06-28, Squash: Support query lastest available version. 5.0.6
- • v5.0, 2021-06-22, Squash: Support ARM platform. 5.0.5
- • v5.0, 2021-06-16, Change GB28181[57] to feature/gb28181[58]. 5.0.4
- • v5.0, 2021-05-31, Use SPDX-License-Identifier: MIT[59]. 5.0.3
- • v5.0, 2021-05-19, ST: Simplify it, only Linux/Darwin, epoll/kqueue, single process. 5.0.2
- • v5.0, 2021-03-17, Live: Refine edge to follow client and HTTP/302. 5.0.1
- • v5.0, 2021-03-15, Init SRS/5. 5.0.0
Thanks
感谢这十年来,所有大概三百多位开发者,对SRS所做出的贡献,包括不限于代码提交,Issue提交,问题答疑,文档完善,应用分享等等。
感谢技术委员会的核心开发者,特别感谢 TOC[60] 持续的努力。TOC都是音视频行业非常有经验的朋友,本身工作非常繁忙,业务时间贡献开源,非常不容易。
2021年6月,SRS进入 木兰开源社区[61] 孵化,感谢导师阿里云陈绪、周明辉教授、腾讯单致豪,感谢木兰社区杨丽蕴主任的大力支持。开源的各位大咖,无论在授权,还是社区治理,社区的推广上,以及社区的可持续发展上,都给与了宝贵的经验和支持。
特别感谢腾讯Tommy(李郁韬)、Eddie(薛迪)、Leo(刘连响)、Vulture(李志成)、Dragon(兰玉龙),以及各位开发者领导对于SRS的认可和对开发者参与开源贡献的支持。正是由于各位领导的支持,各位开发者才能做出自己的贡献,为音视频整个行业的进步都做出了积极的影响。
特别感谢社区经理耿航和刘歧,对社区推广和发展做出的贡献。还有上下游开源项目的各位朋友,包括不限于FFmpeg社区、VLC社区、WebRTC社区、龙芯社区、播放器相关项目的负责人等等,SRS 5.0对接时得到了大家的很多帮助。
非常抱歉我无法列出所有给与过SRS帮助的朋友,非常感谢大家。
Next
大家千万不要以为SRS 5.0这么完善了,就没事可干了。恰恰相反,我们时间很少事情却很多,非常需要也非常欢迎大家参与。
SRS 6.0我们已经启动,如果你已经和SRS错过了10年,那现在就是一起来码代码的最好时机。
引用链接
[1]
#3010: https://github.com/ossrs/srs/issues/3010
[2]
#3058: https://github.com/ossrs/srs/issues/3058
[3]
#2799: https://github.com/ossrs/srs/pull/2799
[4]
#3176: https://github.com/ossrs/srs/issues/3176
[5]
#2532: https://github.com/ossrs/srs/issues/2532
[6]
#2747: https://github.com/ossrs/srs/issues/2747
[7]
#3115: https://github.com/ossrs/srs/pull/3115
[8]
#2689: https://github.com/ossrs/srs/issues/2689
[9]
#3240: https://github.com/ossrs/srs/pull/3240
[10]
#3216: https://github.com/ossrs/srs/issues/3216
[11]
#2899: https://github.com/ossrs/srs/issues/2899
[12]
#3010: https://github.com/ossrs/srs/pull/3010
[13]
srs-unity: https://github.com/ossrs/srs-unity
[14]
#2324: https://github.com/ossrs/srs/issues/2324
[15]
#2852: https://github.com/ossrs/srs/issues/2852
[16]
#2881: https://github.com/ossrs/srs/issues/2881
[17]
#299: https://github.com/ossrs/srs/issues/299
[18]
#3176: https://github.com/ossrs/srs/pull/3176
[19]
#3236: https://github.com/ossrs/srs/pull/3236
[20]
#3264: https://github.com/ossrs/srs/pull/3264
[21]
#2532: https://github.com/ossrs/srs/issues/2532
[22]
#3215: https://github.com/ossrs/srs/issues/3215
[23]
#2532: https://github.com/ossrs/srs/issues/2532
[24]
#2899: https://github.com/ossrs/srs/issues/2899
[25]
#3218: https://github.com/ossrs/srs/issues/3218
[26]
#3216: https://github.com/ossrs/srs/issues/3216
[27]
#2901: https://github.com/ossrs/srs/issues/2901
[28]
#3198: https://github.com/ossrs/srs/issues/3198
[29]
#2899: https://github.com/ossrs/srs/issues/2899
[30]
#3167: https://github.com/ossrs/srs/issues/3167
[31]
#3164: https://github.com/ossrs/srs/issues/3164
[32]
#3179: https://github.com/ossrs/srs/issues/3179
[33]
#3174: https://github.com/ossrs/srs/issues/3174
[34]
#3170: https://github.com/ossrs/srs/issues/3170
[35]
#2852: https://github.com/ossrs/srs/issues/2852
[36]
#1405: https://github.com/ossrs/srs/issues/1405
[37]
#1405: https://github.com/ossrs/srs/issues/1405
[38]
#2837: https://github.com/ossrs/srs/issues/2837
[39]
#2881: https://github.com/ossrs/srs/issues/2881
[40]
#3108: https://github.com/ossrs/srs/issues/3108
[41]
#3114: https://github.com/ossrs/srs/issues/3114
[42]
#2136: https://github.com/ossrs/srs/issues/2136
[43]
#2747: https://github.com/ossrs/srs/issues/2747
[44]
#3115: https://github.com/ossrs/srs/pull/3115
[45]
#3010: https://github.com/ossrs/srs/pull/3010
[46]
#3058: https://github.com/ossrs/srs/pull/3058
[47]
CN: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-hls-cluster
[48]
EN: https://ossrs.io/lts/en-us/docs/v4/doc/sample-hls-cluster
[49]
Droplet SRS 1-Click: https://cloud.digitalocean.com/droplets/new?appId=104916642&size=s-1vcpu-1gb®ion=sgp1&image=ossrs-srs&type=applications
[50]
#2943: https://github.com/ossrs/srs/pull/2943
[51]
#2799: https://github.com/ossrs/srs/pull/2799
[52]
#2878: https://github.com/ossrs/srs/pull/2878
[53]
#2689: https://github.com/ossrs/srs/issues/2689
[54]
ST#23: https://github.com/ossrs/state-threads/issues/23
[55]
#2578: https://github.com/ossrs/srs/pull/2578
[56]
#2508: https://github.com/ossrs/srs/pull/2508
[57]
GB28181: https://github.com/ossrs/srs/issues/1500
[58]
feature/gb28181: https://github.com/ossrs/srs/tree/feature/gb28181
[59]
SPDX-License-Identifier: MIT: https://spdx.dev/ids/
[60]
TOC: https://github.com/ossrs/srs/blob/develop/trunk/AUTHORS.md#toc
[61]
木兰开源社区: https://portal.mulanos.cn