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

32 | HLS:实现一对多直播系统的必备协议

TS 数据流的格式
MP4 文件转换成 HLS 文件
直播架构模型介绍
PES Header 字段说明
PES Packet 结构图
TS Header 字段说明
TS 数据流示意图
.m3u8 文件 TAG 说明
.m3u8 文件格式规范
.m3u8 文件内容展示
FFmpeg 切片命令参数说明
FFmpeg 工具准备
HLS 直播系统架构图
传统直播系统架构
思考时间
小结
TS 格式分析
m3u8 格式分析
FFmpeg 生成 HLS 切片
切片的重要性
HLS 直播架构
HLS 协议的未来应用前景
RTMP 协议的失去未来性
RTMP 协议和 HLS 协议的优势与劣势比较
HLS:实现一对多直播系统的必备协议
参考文章

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

上一篇文章中 ,我们对 RTMP 协议和 HLS 协议的优势与劣势进行了比较。从比较的结果我们可以看出,RTMP 作为传统的直播传输技术在实时性方面要比 HLS 好很多,所以它还是有一定优势的。
不过,随着 Chrome 浏览器宣布不再对 Flash 插件提供支持、Adobe 公司停止对 RTMP 协议更新以及苹果公司声称 iOS 上不允许使用 RTMP 协议等一系列事件的发生,我们可以断定 RTMP 协议已失去了未来。
而 HLS 协议则恰恰相反,它在未来会有更广阔的应用前景。我们可以通过以下几点来得到这个结论:
HLS 是苹果开发的协议,苹果产品原生支持此协议;
HLS 是基于 HTTP 的,可以不受防火墙限制,所以它的连通性会更好;
HLS 还能根据客户的网络带宽情况进行自适应码率的调整,这对于很多用户来说是非常有吸引力的。
基于以上原因,我们有必要从 HLS 直播架构、FFmpeg 生成 HLS 切片、HLS m3u8 格式和 HLS TS 格式这四个方面对 HLS 协议的细节做一下介绍。

HLS 直播架构

下面我们来看一下 HLS 直播系统的架构图,如下所示:
HLS 直播架构图
我们在 上一篇文章中讲过,传统直播系统大致分为三部分:直播客户端、信令服务和 CDN 网络,使用 HLS 协议也是如此。只不过在我们这里为了简化流程,去掉了信令服务系统。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HLS协议是一种重要的直播传输技术,相较于传统的RTMP协议具有更广泛的应用前景。由苹果开发的HLS协议基于HTTP,不受防火墙限制,具有更好的连通性,并支持自适应码率调整。本文从HLS直播架构、FFmpeg生成HLS切片、HLS m3u8格式和HLS TS格式四个方面介绍了HLS协议的细节。在HLS直播架构中,客户端通过RTMP协议将音视频流推送给CDN网络的源节点,源节点再将RTMP流切割为HLS切片文件,通过CDN网络转发后,客户端可以从CDN边缘节点拉取HLS媒体流。文章还介绍了通过FFmpeg工具将MP4文件切割成HLS格式的文件切片的方法,以及.m3u8文件和.ts文件的格式分析。此外,文章还详细解释了TS流的格式和PES结构。总的来说,HLS协议作为一种新型的直播传输技术,具有更广泛的应用前景,对于实现一对多直播系统具有重要意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
06 | WebRTC中的RTP及RTCP详解
09 | 让我们揭开WebRTC建立连接的神秘面纱
13 | 在WebRTC中如何控制传输速率呢?
16 | WebRTC中的数据统计原来这么强大(下)
19 | WebRTC能不能进行文本聊天呢?
31 | 一对多直播系统RTMP/HLS,你该选哪个?
登录 后留言

全部留言(15)

  • 最新
  • 精选
  • rrbbt
    博主,您好,“而服务端的 HLS 切片则是由 CDN 网络完成的,你只需要向 CDN 网络推流就可以了”,hls切片的功能是在cdn中完成的?阿里云的cdn自带这种功能?还是说cdn中可以上传自己的服务,自己写hls切片?没搞过这个,希望帮忙解答一下。

    作者回复: 你可以自己切片,也可以交给 CDN 切片。CDN 切片的话别外收费。

    2019-10-09
    5
  • priapus
    其实怎么说呢,这个课程我最关心的还是hls,因为点播技术感觉比直播技术更有未来~

    作者回复: 两个都不可或缺,当人们习惯上网课时,互动直播更有优势,因为可以互动,可以看到没个学生的表情,老师可以随时把握节奏

    2020-03-28
    4
  • 绿水
    我们接入HLS,网站用的是https,但是HLS是http的,结果获取流的时候,浏览器(chrome)就报mixed-content错误,虽然可以通过设置浏览器的安全级别来解决,但有没有更加通用的解决方法?

    作者回复: 把HLS修改为 HTTPS

    2020-06-15
    3
  • Geek_b37496
    有些m3u8是带key的,那么调用sdk解key播放ts文件的原理是怎么样的呢?

    作者回复: 你试试这篇文章所说的方法 https://blog.csdn.net/u014484783/article/details/79350392

    2019-10-18
    2
    2
  • willxiao
    请问如果是直播中间进入,怎么确定该从哪个 ts 文件开始播放?是不是有什么 timestamp 可以用于比对,然后获取当前时间戳和之后的 ts 文件?

    作者回复: 你在拉流的时候服务器推流到那块了它就从那块开始给你发数据

    2021-03-07
    2
    1
  • 花盆
    HLS需要切片,存储,推送到边缘节点,这个过程的延时对于直播教育类的场景,10~20多秒的延时是无法忍受的,而RTMP协议对于网络要求比较高,在百万场景下让学生不卡不延迟是这个场景核心要去解决的问题。特别在这次公益课期间,大量的CDN的节点被各大直播平台控制,比较小的在线教育公司没法被很好的调度。

    作者回复: 是的,以后这种服务会逐渐变成一种基础服务。不过还需要几年的功夫才行。

    2020-04-15
    1
  • pysn
    hls推流端也是采用rtmp协议吗?

    作者回复: 不是,hls 用的http协议

    2020-04-03
    1
  • tokamak
    思考题回答:因为高清TS数据包为204字节,标清TS数据包为188字节。当一个媒体数据流小于5个TS包时,这个媒体数据流的长度不可能同时被204和188同时整除。 不太确定,是这样吗?

    作者回复: TS 标准中,数据包的长度是 188,204 是在标准数据包的基础上 + 16字节的向前纠错码。对于 TS 类型的判断,有专门的算法,我们不用过多关心是否会计算错。

    2019-09-26
    1
  • 神经旷野舞者
    固定字节应该是为了便于管理,否则切的时候肯定长度波动,这样可能不便于播放端识别
    2019-12-17
    3
  • Geek_974707
    老师请问m3u8文件是动态更新的吗?直播中生成的ts文件怎么放入m3u8里呢?
    2022-04-08
    2
收起评论
显示
设置
留言
15
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部

深圳SEO优化公司龙岗百搜标王坪地网站改版广州设计网站沙井百度竞价包年推广大鹏模板网站建设松岗百度竞价包年推广松岗网站推广系统横岗关键词按天扣费龙岗网站搜索优化西乡网页制作坪山网站开发观澜至尊标王罗湖网站排名优化双龙网站定制龙华外贸网站建设松岗网站排名优化盐田SEO按天扣费盐田关键词按天收费东莞标王双龙网站优化按天计费丹竹头百度竞价爱联百度标王龙华百搜词包松岗网站关键词优化爱联网站推广系统东莞网页设计深圳网站推广方案平湖至尊标王同乐网站排名优化大鹏百度seo歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化