行业背景
直播技术飞速发展让各个行业的用户体验呈现多样化和个性化,不同业务场景下创新实践满足大众对于音视频互动体验和参与的高标准要求。历经2020年初的巨变之后,以视频、游戏、电商、教育为主的互联网经济迎来飞速发展,“直播+”已成为一种趋势,广泛融入到人们的工作和生活中。在搭建直播系统时,大家会经常听到两个高频词:RTMP(Real Time Messaging Protocol)和OBS(Open Broadcaster Software)。
RTMP协议是由Adobe公司提出的一种基于TCP的应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(Packetizing)的问题。RTMP已有近20年历史,广泛应用于直播行业的主播推流及不同系统间互通。
OBS是一款好用的直播流媒体内容制作软件,为用户提供了视频、文本、图像等的捕获录制功能,OBS界面简洁并专业,功能强大。OBS程序和其源代码都是免费提供给大家使用,版本更新一直比较活跃,支持 OS X、Windows、Linux操作系统,适用于多种直播场景,满足大部分直播行为的操作需求。
升级方案
针对主播推流使用RTMP存在的TCP链接耗时过长、拥塞控制完全依赖TCP传输层、无法提供实时带宽数据来动态调整视频编码码率等问题引起的推流延迟和卡顿。阿里云低延时直播RTS(Real-time Streaming)产品在下行UDP改造的基础上,进行上行UDP底层WebRTC技术优化,通过发布移动端、PC端推流RTS SDK插件来提升整个行业的主播推流质量,提供低延时、低卡顿、安全可靠的直播观看体验。客户端接入简单,只需要在OBS端嵌入RTS SDK即可新增一个推流协议,无需改变原有的推流端采集架构。
效果对比
主播端 |
1分钟 |
5分钟 |
20分钟 |
|||
观众延迟 |
观看质量 |
观众延迟 |
观看质量 |
观众延迟 |
观看质量 |
|
artc推流 |
4.75s |
流畅 |
4.72s |
流畅 |
4.79s |
流畅 |
rtmp推流 |
19.91s |
画面模糊,偶尔严重马赛克 |
21.30s |
画面模糊、马赛克,偶现没有声音 |
无 |
基本看不到画面,无声音 |
数据出自内部实验测算。
使用步骤
Step 1、推流域名开通RTS
在直播控制台添加好推流域名后,在域名管理页面推流域名的域名配置中通过低延时推流开关打开、关闭此功能。
Step 2、集成RTS SDK
RTS SDK是为了OBS量身打造,无需改动OBS原生框架,接入RTS SDK实现obs-output插件即可,如下图所示。可以参考集成文档 https://help.aliyun.com/document_detail/272525.html 完成自主接入。为了方便用户接入,同时也封装了artc-stream的obs-output插件,只需加入OBS编译即可集成使用,详见《OBS示例插件artc-stream集成说明》。
Step 3、使用RTS推流地址推流
推流地址的拼接方法与RTMP一致,只需要使用新的协议头artc://来区分,例如控制台生成的RTMP地址为:
rtmp://push.rts***.grtn.aliyunlive.com/live/123?auth_key=1624860195-*
您只需要更换rtmp为artc即可:
artc://push.rts***.grtn.aliyunlive.com/live/123?auth_key=1624860195-*
Demo体验
https://help.aliyun.com/document_detail/177373.html#title-xgu-5k1-2vx