ossrs/srs-librtmp

SRS is a dedicated server project, please use librtmp instead.

winlinvip opened this issue · 2 comments

SRS is a dedicated server project, please use librtmp instead.

srs-librtmp是从SRS服务器中导出的一个客户端库,当初做这个库的原因:

  1. 觉得rtmpdump/librtmp的代码太难读了,而SRS的代码可读性很好。

决定开源项目正义的绝对不是技术多好,而是能跑多久。技术很牛,性能很强,代码风格很好,固然是个好事,但是这些都顶不上一个“不维护”的大罪过,代码放出来不维护,怎么跟进业内技术的不断发展呢。

而决定能跑多久的,首先是技术热情,然后是维护者的领域背景。SRS的维护者都是服务器背景,大家的工作都是在服务器,客户端经验太少了,无法长久维护客户端的库。

因此,SRS决定果断放弃srs-librtmp,不再维护客户端库,聚焦于服务器的快速迭代。客户端并非不重要,而是要交给专业的客户端的开源项目和朋友维护,比如FFmpeg也自己实现了librtmp。

  1. 压测工具srs-bench是个客户端,需要一个客户端库。

由于pion的出现,压测工具完全可以用Go来写,比如RTC的压测就是用pion写的,所以这个理由也不再存在。

  1. 膨胀了,觉得服务器能搞好,客户端也不在话下。

知错就改,善莫大焉。

对srs-librtmp的阅读总结:
SRS_librtmp
感谢作者的无私风险.

上图的源码使用的是VSCode + PlantUML(插件)生成, 源码:
SRS_librtmp.txt

实际使用该代码生成png图片时, 请将文件名修改为SRS_librtmp.puml, 使用已安装PlantUML的VSCode打开, 并使用ALT + D预览, 使用CTRL + Shift + P并选择PlantUML: Export Curent Digram即可.

如果遇到尺寸过大无法完整导出的情况, 简单设置下VSCode就好:

"plantuml.commandArgs": [
         "-DPLANTUML_LIMIT_SIZE=81920"
],