网络流媒体协议——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

相关推荐
YANshangqian1 小时前
Monkey‘s Audio(无损音频压缩器)
音视频
gf13211117 小时前
python_基于主视频删减片段并插入镜头视频
linux·python·音视频
霜雪i7 小时前
ECM CCCM
视频编解码·h.266
光算科技8 小时前
YouTube视频字幕转成文章算重复内容吗?
人工智能·音视频
Yutengii8 小时前
B站的视频怎么下载到电脑?
音视频
gf13211119 小时前
python_图片、字幕文本、音频一键组合
python·音视频·swift
非凡ghost9 小时前
Audacity(免费开源跨平台音频软件)中文绿色版
网络·网络协议·音视频·软件需求
winfredzhang10 小时前
Python桌面应用开发:浏览器录制与视频合并工具详解
python·音视频·浏览器·视频合并·视频录制·视频预览
狮恒12 小时前
OpenHarmony Flutter 分布式音视频协同:跨设备实时流传输与同步渲染方案
分布式·flutter·wpf·音视频·openharmony