从0打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
立即订阅
2827 人已学习
课程目录
已完结 40 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 5G的到来将会为音视频插上飞翔的翅膀
免费
WebRTC 1对1通话 (23讲)
01 | 原来通过浏览器访问摄像头这么容易
02 | 如何通过WebRTC进行音视频设备检测呢?
03 | 如何使用浏览器给自己拍照呢?
04 | 可以把采集到的音视频数据录制下来吗?
05 | 原来浏览器还能抓取桌面?
06 | WebRTC中的RTP及RTCP详解
07 | 你竟然不知道SDP?它可是WebRTC的驱动核心!
08 | 有话好商量,论媒体协商
09 | 让我们揭开WebRTC建立连接的神秘面纱
10 | WebRTC NAT穿越原理
11 | 如何通过Node.js实现一套最简单的信令系统?
12 | RTCPeerConnection:音视频实时通讯的核心
13 | 在WebRTC中如何控制传输速率呢?
14 | 如何打开/关闭音视频?
15 | WebRTC中的数据统计原来这么强大(上)
16 | WebRTC中的数据统计原来这么强大(下)
17 | 如何使用Canvas绘制统计图表(上)?
18 | 如何使用Canvas绘制统计图表(下)?
19 | WebRTC能不能进行文本聊天呢?
20 | 原来WebRTC还可以实时传输文件?
21 | 如何保证数据传输的安全(上)?
22 | 如何保证数据传输的安全(下)?
23 | 实战演练:通过WebRTC实现一个1对1音视频实时直播系统
WebRTC多人音视频实时通话 (7讲)
24 | 多人音视频实时通讯是怎样的架构?
25 | 那些常见的流媒体服务器,你该选择谁?
26 | 为什么编译Medooze Server这么难?
27 | 让我们一起探索Medooze的具体实现吧(上)
28 | 让我们一起探索Medooze的具体实现吧(下)
29 | 如何使用Medooze 实现多方视频会议?
30 | 实战演练:通过WebRTC实现多人音视频实时互动直播系统
支持上万人同时在线的直播系统 (8讲)
31 | 一对多直播系统RTMP/HLS,你该选哪个?
32 | HLS:实现一对多直播系统的必备协议
33 | FLV:适合录制的多媒体格式
34 | 如何使用Nginx搭建最简单的直播服务器?
35 | 如何构建云端一对多直播系统?
36 | 如何使用 flv.js 播放 FLV 多媒体文件呢?
37 | 如何使用 video.js 播放多媒体文件?
38 | 实战推演:带你实现一个支持万人同时在线的直播系统
结束语 (1讲)
结束语 | 路漫漫其修远兮,吾将上下而求索
从0打造音视频直播系统
登录|注册

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

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

传统直播基本架构

商业级直播系统的规模、结构是非常复杂的,除了最核心的音视频直播外,还包括用户管理、认证系统、直播间管理、打赏、红包、私信等很多功能,不过这些更多的是一些业务逻辑,在本文中我们不会对它们进行讲解,而是聚焦在最核心的音视频直播技术上。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0打造音视频直播系统》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • 么么直播
    现在的直播公司都往webrtc迁移了。特别是类似连麦互动场景增多后。。。我们就是☺️
    2019-11-30
  • 4thirteen2one
    从图中可以看出,传输直播架构由直播客户端、信令服务器和 CDN 网络这三部分组成。

    “传输”应该是“传统”,文中这里打错了。

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

    2019-10-13
  • Geek_db7ddf
    老师能讲讲rtsp和rtmp的区别和使用场景吗?

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

    2019-10-03
  • 刘丹
    看这门课的目录,好像WebRTC只支持几个人、几十个人的视频会议,不支持上万人在线的直播?

    作者回复: 后面倒数第4篇就是万人直播的方案,通过 CDN 网络,都是现成的技术

    2019-09-26
  • Geek_701918
    还有一个RTMP不支持h265

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

    2019-09-26
  • 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
  • John
    一直想不明白很多电脑上的Chrome是怎么播放m3u8的 老师能不能讲解一下

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

    2019-09-24
    2
  • frank
    技术解决的问题域决定其实现,rtmp主要的应用场景是单向直播,并不是双向互动(虽然现在小程序也可以rtmp做双向视频通讯,毕竟做了大量优化的),所以使用TCP带来的一秒左右的延时完全可以接收,而且可以简化协议设计、实现和大规模商用

    作者回复: 同意你看面的说法。但如果想做实时互动的话,使用 TCP 时,如果在网络不错的情况下是没有问题的,但在极端网络情况下,TCP 就无能为力了。

    2019-09-24
收起评论
8
返回
顶部