被CDN巨头追着杀的RTMP,怎么成了直播行业的活化石?

上周帮做了8年户外直播的老周排障。

他的推流端死活连不上某云的直播节点,码率跳得像心电图,查了半小时才发现——人家去年就悄悄把RTMP的公共入流端口给关了,只留了个测试用的8001端口给老客户做过渡,连个正式的通知邮件都没发。

老周当时就炸了。他的团队从2016年开始做直播,所有的背包推流设备、主播用的直播伴侣、甚至给合作景区做的慢直播摄像头,默认全是走RTMP推流,要是真把端口关了,光线下重新调试设备的成本就够小半年的利润。

RTMP的本质,是Flash留下的最后一点遗产



很多人吹RTMP是“低延迟直播的黄金标准”,其实根本不是。

它最早是Macromedia在2002年搞出来的,目的就是给Flash播放器传音视频流——基于TCP传输,把大的音视频包拆成固定大小的块,按顺序发,握手流程简单到离谱,只要三次交互就能建立连接。当年Flash称霸整个网页端的时候,这个协议就是所有网页直播的唯一选择,根本没有别的选项。

谁能想到。

2020年底Adobe彻底停止支持Flash的时候,整个互联网的Flash内容在半年内就被清理得干干净净,唯独这个为Flash量身定做的RTMP协议,像个被遗忘在原地的老物件,硬生生撑过了所有新协议的冲击,直到今天还在扛着行业里差不多三成的推流流量。

当然它的技术边界也明摆着。

RTMP协议传输分块结构示意图
RTMP协议传输分块结构示意图


原生的RTMP设计的时候,根本没考虑过4K高码率、H.265、AV1这些现在的主流编码,协议头的冗余度高,走TCP的拥塞控制在弱网环境下的表现一塌糊涂,实际端到端延迟通常在1.5到3秒之间——比最早的HLS协议好点,但跟现在基于QUIC的低延迟协议比,延迟高了整整一个量级。

它能活到今天,根本不是因为技术好,是因为太熟了。

你现在打开任何一个版本的OBS,推流协议的下拉菜单第一个选项永远是RTMP。

OBS推流设置界面显示RTMP选项截图
OBS推流设置界面显示RTMP选项截图


所有第三方的推流工具、硬件采集卡、甚至手机上的直播APP,只要做推流功能,默认肯定会留RTMP的选项,开发者写一行配置就能对接,根本不需要重新做适配。这种零学习成本的生态惯性,是所有新协议比不了的。

CDN厂商早就想把RTMP扫进历史垃圾堆



讲实话,现在所有做直播云服务的厂商,提到RTMP都头疼。

为什么?成本太高了。

RTMP基于TCP,每个连接要占服务器的内存和CPU资源,带宽利用率比基于UDP的协议低差不多30%,更别说它根本不支持现在的拥塞控制优化,同样的带宽资源,走SRT或者WebRTC能承载的推流连接数,是RTMP的1.5倍还多。按某头部云厂商去年的公开账单算,光维护RTMP节点的服务器成本,一年就要花掉大几千万。

那为什么不直接关?

因为怕投诉。

国内主流云厂商直播协议入流占比2024年统计柱状图
国内主流云厂商直播协议入流占比2024年统计柱状图


现在的入流请求里,头部客户的流量早就全换成新的低延迟协议了,剩下的RTMP流量,8成都是长尾——什么县城里做带货的小主播、景区装的慢直播摄像头、企业内部的培训直播、甚至一些做校园监控的厂商,这些客户既没有技术团队去改推流代码,也不愿意掏额外的费用做适配,你要是今天把RTMP端口全关了,明天就能收到几百封投诉邮件,搞不好还要丢一批本来就没多少利润的客户。

更有意思的是,因为Adobe早就把RTMP的规范公开之后就再也没维护过,现在各个厂商对RTMP的扩展全是自己瞎搞。有的厂商自己加了H.265的支持,有的加了推流加密,还有的改了分块大小来降低延迟,但是这些扩展根本不互通——你拿支持自家扩展的RTMP流,推到别家的节点上,轻则花屏断流,重则直接连不上。等于大家拿着同一个公开的协议壳,里面全是私货,谁也不敢真的把标准定死。

上个月跟某CDN厂商的技术负责人吃夜宵,他说现在他们团队里,专门负责维护RTMP节点的工程师已经裁得只剩2个了,就盯着后台的流量曲线,只要哪天RTMP的入流占比降到5%以下,直接把所有的公共端口全关,省下来的服务器钱,够给整个团队发半年的奖金。

RTMP的退场,比所有人想的都要慢



RTMP的安全漏洞,其实已经被忽略了太多年。

因为协议设计的时候根本没考虑现在的安全要求,很多老的RTMP节点连最基本的推流鉴权都没做,随便找个开源工具就能往节点上推流,之前广电部门的监测报告里就提过,近两成的违规直播流,都是通过没做鉴权的RTMP端口传的——毕竟这个协议太通用了,你要是封了RTMP的常用端口,正常的合法推流也会被影响,根本没法一刀切地管。

还有更现实的落地障碍。

之前跟一个做山区农产品直播的团队聊,他们在海拔1000多米的山头上测试过,RTMP的推流成功率大概40%,换成SRT协议之后能到82%,按说应该马上换吧?结果他们算了笔账,换协议需要给所有的老主播重新培训推流设置,还要把现有的推流设备全部重新刷固件,光沟通和调试的成本就快10万块,而他们一年的直播利润也就20万出头,根本舍不得花这个钱。

其实现在行业里已经有共识了,RTMP绝对不会再成为新系统的默认选择,但也绝对不会明年就彻底消失。

未来2年,所有的主流云厂商都会把RTMP的入流服务做成付费增值项——你要保留这个端口可以,按每路推流连接收额外的服务费,把维护的成本全转嫁给还在使用的客户。

未来3年,大家会默认在推流端做一层“兼容壳”——你在OBS里还是能看到RTMP的选项,填的地址也跟以前一模一样,但是背后会自动把推流请求转成新的低延迟协议传到节点上,用户根本感知不到变化,就像你现在用旧的3.5mm耳机口插个转接头接Type-C的设备,一样能用,但谁也不会在新出厂的手机上直接做3.5mm的接口了。

说起来真的挺讽刺的。

当年Flash被全世界骂了十几年,说它卡、不安全、耗电,是互联网的毒瘤,结果它留下的这点遗产,在Flash死了快8年之后,还在每天扛着整个行业的长尾流量。

很多现在天天开播的主播,根本不知道RTMP是什么,只知道在OBS里填个服务器地址,填个流密钥,就能开播。他们从来没想过,这个让他们能顺利开播的协议,已经有25年的历史了,从设计出来的那天起,就从来没打算撑这么久。

等它真的彻底退场那天,估计都没人会专门发个公告。

毕竟互联网的老物件,从来都是这样悄无声息就没的。

作者|fawen

排版|fawen

审核|柚子

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:被CDN巨头追着杀的RTMP,怎么成了直播行业的活化石?
文章链接:https://m.lfdjt.com/info_23_31122.html