软件工程师讨论了基于HTTP构建的HLS流协议背后的原理,并允许视频/音频数据传输。

HLS(HTTP直播)

HLS是一种基于HTTP的流媒体协议。

在开始使用协议之前,我们需要了解数字视频的基本原理。有关视频组件的基本知识,请参阅以下链接。

参考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Video/pktvideoaag.html

HLS的工作原理是将流分解为一系列小数据包。当播放流时,客户端选择包含以各种数据速率编码的相同信息的多个不同的备选流。它允许流式会话从各种数据速率中获取数据。

在流式传输会话开始时,HLS下载一个扩展名为M3U的文件(如果使用UTF-8编码字符编码格式,则下载m3u8)。它包含一个或多个媒体文件的特定位置。它通常用于将媒体播放器指向音频和视频源。

M3U文件是纯文本文件,用于指定一个或多个媒体文件的位置。

参考:https: //www.lifewire.com/m3u-file-2621955

与基于UDP的RTP协议事务不同,HLS使用TCP上的基于HTTP的事务。

HTTP实时流使用Web服务器(网络协议在万维网上分发信息)来分发流内容。Web服务器的主要功能是存储,处理和交付网页或客户端。

服务器将输入视频编码并封装成适当的格式以便传送。然后通过将视频分割成不同的文件来准备分发视频。因此,视频被转换为碎片和索引文件。

音频/视频数据被封装并格式化为PES包(打包的基本流(实际视频,音频数据),然后与TS包绑定。)稍后附加MPEG传输流。

不要将MJPEG与MOEG2TS混淆。MJPEG是具有视频信息的编解码器,而MOEG2TS是一个能够传输流数据的容器。

注意:

编解码器 - “编解码器是一种编码和解码数据的方法,更具体地说,是一种用于压缩数据的协议,尤其是视频。”

容器 - “容器负责包装,运输和展示。容器通常用文件扩展名表示。例如,MPEG4容器通常用.mp4文件类型表示。”

MPEG传输流(mjpeg2ts)是用于传输和存储音频和视频数据的标准数字容器格式。它用于广播系统,如数字视频广播(ATSC和IPTV)。

参考:https://en.wikipedia.org/wiki/MPEG_transport_stream

查看原文 >>
相关文章