从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32580 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/00:00
登录|注册

31 | 一对多直播系统RTMP/HLS,你该选哪个?

边缘节点
主干节点
源节点
防止消息洪泛
消息处理
观众端功能
主播端功能
不足
优势
劣势
优势
处理流程
节点功能
构造
CDN网络
信令服务器
直播客户端
如何选择RTMP和HLS
HLS介绍
RTMP介绍
CDN网络实现
架构
思考时间
传统直播系统

该思维导图由 AI 生成,仅供参考

近年来,随着智能手机的普及以及移动互联网的飞速发展,音视频技术在各个行业得到了广泛的应用。尤其是娱乐直播在前几年着实火了一把,像映客、斗鱼这类以展示才艺为主的直播产品非常受大家的欢迎。
从技术角度来讲,映客、斗鱼这类娱乐直播与在线教育、音视频会议直播有着非常大的区别。在线教育、音视频会议这类直播属于实时互动直播,主要考虑传输的实时性,因此一般使用 UDP 作为底层传输协议;而娱乐直播对实时性要求不高,更多关注的是画面的质量、音视频是否卡顿等问题,所以一般采用 TCP 作为传输协议。我们称前者为实时互动直播,后者为传统直播。
本专栏的前两个模块都是介绍实时互动直播的,而从今天开始我们会讲解传统直播技术。
传统直播技术使用的传输协议是 RTMP 和 HLS。其中,RTMP 是由 Adobe 公司开发的,虽然不是国际标准,但也算是工业标准,在 PC 占有很大的市场;而 HLS 是由苹果公司开发的,主要用在它的 iOS 平台,不过 Android 3 以后的平台也是默认支持 HLS 协议的。
接下来,我们先看一下传统音视频直播系统的基本架构,让你对传统直播架构的“内幕”有一个初步的了解。

传统直播基本架构

商业级直播系统的规模、结构是非常复杂的,除了最核心的音视频直播外,还包括用户管理、认证系统、直播间管理、打赏、红包、私信等很多功能,不过这些更多的是一些业务逻辑,在本文中我们不会对它们进行讲解,而是聚焦在最核心的音视频直播技术上。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

音视频直播技术在移动互联网时代得到广泛应用,传统直播系统包括直播客户端、信令服务器和CDN网络三部分。CDN网络构造复杂,包括源节点、主干节点和边缘节点,实现音视频数据的分发。RTMP协议依赖TCP协议,保障音视频业务质量,使用简单且市场占有率高,但受到iOS不支持和Adobe停止更新的影响。HLS协议通过HTTP传输数据,解决了访问限制和实现了码率自适应,但实时性较差。根据项目实践,推流和内部分发应使用RTMP协议,移动端网页播放器和iOS应使用HLS协议,点播系统最好也使用HLS协议。 总体来看,随着人们对实时性、互动性的要求越来越高,人们对传统直播技术的需求越来越少。WebRTC技术正是为了解决人们对实时性、互动性需求而提出的新技术,将成为未来的主流。另一方面,随着5G的落地与推广,带宽问题会得到极大的解决,加速传统的基于RTMP/HLS的直播技术的淘汰。在大负载方面,使用CDN技术的传统直播目前还有一定优势,因此短期内可以考虑WebRTC的实时直播技术与使用RTMP协议为代表的传统直播技术相结合的方案。 文章提出了对RTMP协议和HLS协议的比较,并给出了一些使用建议,但强调实际选择应根据产品需求来定。最后,文章引发了对WebRTC采用UDP/RTP进行媒体数据传输,而RTMP使用TCP协议的思考,欢迎读者分享想法和思考过程。 综上所述,本文详细介绍了传统直播系统的架构和技术特点,展示了对传统直播技术的发展趋势和未来展望,为读者提供了对音视频直播技术发展方向的深入思考和启发。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • Geek_701918
    还有一个RTMP不支持h265

    作者回复: 赞,确实是这样的

    2019-09-26
    14
  • 行所当行
    老师你好,RTMP 协议没有使用标准的 HTTP 接口传输数据,这个劣势为啥不能把端口改成80/443? 另外,RTMP 协议也是基于TCP协议,也要三次握手四次挥手,那这部分机制造成的延迟是不是也和HLS一样长?

    作者回复: 大家已经认了 RTMP 是 1935,你要硬改成 80 也是可以的,不过用户在访问时必须要带上端口号才可以;RTMP底层虽然是用的 tcp,但它是一个长连接,数据一直源源不断的在传输,而HLS 是被分成多个小文件,每次都要先请求一个文件,然后下载,再请求,再下载…,所以延迟一定会比RTMP 大

    2020-05-24
    4
    6
  • 神经旷野舞者
    rtmp使用tcp为了不丢数据,保证视频的不失真,因为对实时性要求不高,所以就优先保证不失真。 最近在研究ffmpeg怎么保证rtsp的稳定性和提高hls视频首开速度,考虑使用srs流媒体服务器,所以直接看了这节的视频,想问老师,要解决速度问题这会涉及到什么关键帧之类的底层视频编码知识吗?

    作者回复: 实际上传输要与传输的内容分开来看,要解决传输速度问题,关键是用户最后一公司的网络路径问题。比如说它是一个联通用户,你就应该让它连接最近的联通网络的服务器,而不是连接电信的,或者是很远的联通网络的服务器。对于编解码,关键帧这些有一些影响,但不是关键点。

    2019-12-16
    4
  • 大只广
    老师能讲讲rtsp和rtmp的区别和使用场景吗?

    作者回复: RTSP协议主要用的监控系统中,RTSP 用于信令控制,直正的数据传输还是用的 UDP/RTP,除了监控系统基本上没有其它行业使用该协议。 RTMP底层使用的是TCP。因此, RTSP的实时性要比 RTMP 好。

    2019-10-03
    3
  • John
    一直想不明白很多电脑上的Chrome是怎么播放m3u8的 老师能不能讲解一下

    作者回复: 后面就会讲到,耐心等待!

    2019-09-24
    3
    3
  • Geek_fe19fe
    老师,我有几个问题请教,希望能得到您的帮助: (1)前面文章有提到NAT类型检测需要用到两台服务器,但这里却是一台,是否会出现判断不准确的情况? (2)如果打洞失败,靠TURN服务器中转,延迟大概多少呢,假如是2M、720P。 (3)中国PC端和移动端打洞成功率大概多少呢,校园环境会不会特殊? (4)生日悖论下的预测端口方法,真的可以将打洞成功率提升到80%以上吗?

    作者回复: 1. 肯定会有;2.大部分商用服务都走的中继模式,延迟主要与你到服务器的线路有关,一般不超过100毫秒;3. PC与移动端成功率挺低的,国内50%都没有4.腾讯在打洞方面花了不少力气,通过预测端口的方式整体发动在国内不超过60%

    2021-01-12
    1
  • piboye
    http2.0普及,http3.0的到来,rtmp的延迟优势会消失吧

    作者回复: rtmp 基本已经被淘汰了http3.0还是达不到音视频实时传输的要求

    2020-12-22
    1
  • Keep-Moving
    #### RTMP协议 * 优势: 1. 底层依赖于TCP 2. 使用简单,技术成熟 3. 市场占有率高 4. 相较于HLS协议,实时性要高很多 * 劣势: 1. iOS不支持RTMP,认为其在安全方面有缺陷 2. Adobe已停止对其的更新 #### HLS:本质就是通过HTTP下载文件,然后将下载的切片缓存起来。由于切片文件很小,所以可以实现边下载边播放的效果 * 优势: 1. RTMP没有使用标准的HTTP接口传输数据,在一些有访问限制的网络环境下,没法访问外网。而HLS是基于HTTP的,天然就解决了这个问题 2. HLS协议本身实现了码率自适应,不同带宽的设备可以自动切换到最适合自己码率的视频进行播放 3. 浏览器天然支持HLS,而RTMP协议需要安装Flash插件才能播放RTMP流 * 不足: 1. 实时性差

    作者回复: 赞!

    2019-09-24
    1
  • 陈陳
    flash 貌似2020 12月份不支持了,rtmp是不是就不行了

    作者回复: 早就不行了

    2020-11-04
  • 4thirteen2one
    从图中可以看出,传输直播架构由直播客户端、信令服务器和 CDN 网络这三部分组成。 “传输”应该是“传统”,文中这里打错了。

    作者回复: 收到,马上修改!

    2019-10-13
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部