当前位置: 首页 > news >正文

网络流媒体协议——HLS协议

HTTP 实时流媒体(HTTP Live Streaming,HLS)协议是苹果公司提出的主要用于直播的流媒体协议。一个完整的基于HLS协议的流媒体直播系统由四部分组成,即音视频采集器、媒体服务器、媒体分发器和播放客户端。

媒体服务器

媒体服务器的核心任务是对数据采集端生成的音视频流数据进行编码、切分和整理,生成适合在HTTP网络中进行流式分发和传输的格式。媒体服务器的结构主要由媒体编码器媒体流切分器文件分割器三部分组成。

媒体编码器

主要作用是编码音频数据和视频数据,生成指定格式的音视频流。

在收到采集端获得的数据后须进行压缩编码,将视频图像编码为 H.264H.265 等格式的视频流,将音频数据编码为 HE-AACAC-3 等格式的音频流。编码完成的视频流和音频流可以被进一步封装为 MPEG-2 TSMPEG-2 传输流)格式进行输出。

媒体流切分器

媒体编码器输出的 MPEG-2 TS 格式的数据,媒体流切分器会将其切分为指定时长的多个 MPEG-2 TS 文件分片(简称 TS 文件分片),每个 TS 文件分片都可以作为一个独立的文件进行播放,而且按顺序衔接即可无缝还原为分割前的大文件。

媒体流切分器的另一项重要工作是生成并维护TS文件分片的索引文件。该索引文件以 .m3u8 为扩展名,是 HLS 协议的标志性特征之一。在 .m3u8 索引文件中包含了对每个 TS 文件分片的引用,在一个新的 TS 文件分片生成后,.m3u8 索引文件中的内容将同步更新。

文件分割器

文件分割器的作用是将一个已有的音视频文件按照 HLS 协议进行分割并封装为 TS 文件分片,然后进行传输。其角色类似于媒体编码器和媒体流切分器的组合,实现从输入文件进行转码、转封装,并进行文件切分的功能。

媒体分发器

连接和内容传输使用 HTTP,所以 HLS 媒体分发器仅需使用通用的 Web 服务器即可分发媒体内容,几乎不存在任何障碍。对服务器也只需配置与HLS对应的 MIME Type

相关文章:

  • MySQL实体类框架
  • OpenGauss数据库-7.用户及角色
  • Vue3【十五】标签的Ref属性
  • select模块
  • 微信小程序学习笔记(1)
  • linux编辑器-vim
  • vue解决跨域问题
  • Spark RDD算子
  • 代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列 ,53. 最大子序和
  • 10进制与二、八、十六进制的转换
  • Day25 首页待办事项及备忘录添加功能
  • MFC 使用sapi文字转换为语音
  • 跨域、JSONP、CORS、Spring、Spring Security解决方案
  • maven的install不报错但deploy到nexus报400错误
  • AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践
  • $translatePartialLoader加载失败及解决方式
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • C# 免费离线人脸识别 2.0 Demo
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Laravel Mix运行时关于es2015报错解决方案
  • Python语法速览与机器学习开发环境搭建
  • SSH 免密登录
  • Vim Clutch | 面向脚踏板编程……
  • Vim 折腾记
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于 Babel 的 npm 包最小化设置
  • 判断客户端类型,Android,iOS,PC
  • 手机端车牌号码键盘的vue组件
  • 微信小程序:实现悬浮返回和分享按钮
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​虚拟化系列介绍(十)
  • (1)Android开发优化---------UI优化
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)设计一个TimeMap
  • (C11) 泛型表达式
  • (ibm)Java 语言的 XPath API
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (三)Honghu Cloud云架构一定时调度平台
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (五)MySQL的备份及恢复
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转载)从 Java 代码到 Java 堆
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ... 是什么 ?... 有什么用处?
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET C#版本和.NET版本以及VS版本的对应关系