如何生成HLS协议的M3U8文件

么是HLS协议:
HLS(Http Live Streaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。
HLS协议应用:
由于传输层协议只需要标准的 HTTP 协议, HLS 可以方便的透过防火墙或者代理服务器, 而且可以很方便的利用CDN进行分发加速, 这样就可以很方便的解决大规模应用的瓶颈。并且客户端实现起来也容易。
HLS 目前广泛地应用于点播和直播领域,HLS协议是将音视频流通过HTTP协议传输出去,实现视频直播,HLS协议实现是关键。尤其目前直播领域的手机移动端的直播协议,基本上都是采用了苹果公司的HLS协议。可以说这个协议的出现解决了移动端的直播播放问题。

操作方法

  • 01

    HLS协议架构图:

  • 02

    M3U8文件的生成和解析: HLS 协议的主要内容是关于 M3U8 这个文本协议的, 其实生成与解析都非常简单。下面是给出实际应用的例子: Media Playlist (媒体播放列表)

  • 03

    · HLS 通过 URI(RFC3986) 指向的一个 Playlist 来表示一个媒体流。 · 一个 Playlist 可以是一个 Media Playlist 或者 Master Playlist, 使用 UTF-8 编码的文本文件, 包含一些 URI 跟描述性的 tags。 · 一个 Media Playlist 包含一个 Media Segments 列表,当顺序播放时, 能播放整个完整的流。 · 要想播放这个 Playlist, 客户端需要首先下载他, 然后播放里面的每一个 Media Segment。 · 更加复杂的情况是, Playlist 是一个 Master Playlist, 包含一个 Variant Stream 集合, 通常每个 Variant Stream 里面是同一个流的多个不同版本(如: 分辨率, 码率不同)。

  • 04

    HLS Media Segments · 每一个 Media Segment 通过一个 URI 指定, 可能包含一个 byte range。 · 每一个 Media Segment 的 duration 通过 EXTINF tag 指定。 · 每一个 Media Segment 有一个唯一的整数 Media Segment Number。 · 有些媒体格式需要一个 format-specific sequence 来初始化一个 parser, 在 Media Segment 被 parse 之前. 这个字段叫做 Media Initialization Section, 通过 EXT-X-MAP tag 来指定。

  • 05

    HLS 延时问题 HLS 理论延时 = 1 个切片的时长 + 0-1个 td (td 是 EXT-X-TARGETDURATION, 可简单理解为播放器取片的间隔时间) + 0-n 个启动切片(苹果官方建议是请求到 3 个片之后才开始播放) + 播放器最开始请求的片的网络延时(网络连接耗时)。为了追求低延时效果, 可以将切片切的更小, 取片间隔做的更小, 播放器未取到 3 个片就启动播放. 但是, 这些优化方式都会增加 HLS 不稳定和出现错误的风险。 如今很多流媒体直播系统厂商都使用了HLS协议来解决安卓手机和苹果手机端的播放问题。自动生成有效的直播视频的M3U8播放链接地址,也就是HLS协议的M3U8的文件以便在第三方支持M3U8的播放器上流畅播放如VLC播放器或者和HTML5的网页技术结合通过移动端的浏览器网页观看直播视频。

  • 06

    示例播放代码如下: 嵌入网页的HTML代码 <script type="text/javascript" src="http://192.168.1.44:8083/assets/player.js"></script> <script type="text/javascript">p2ps_embed("hls", "live", "http://192.168.1.44:8083/videos/live/22/39/tUabV17nAPCev", "p2ps_video", "640", "480", "10.1.0", "http://192.168.1.44:8083/assets/expressInstall.swf",{}, {allowFullScreen:true, allowScriptAccess: "always"}); </script><div id="p2ps_video"><h1>我们需要Flash player 10.1 或以上版本来播放。</h1><p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="安装最新的Flash player" /></a></p> </div> 移动端M3U8链接 http://192.168.1.44:8083/videos/live/22/39/tUabV17nAPCev/tUabV17nAPCev.M3U8

(0)

相关推荐

  • 电脑m3u8文件怎么打开

    m3u8是一种苹果公司定义的用于直播的一种流媒体传输协议HLS(HTTP LIVE Streaming)下的视频文件索引,将从整个文件来分析怎么打开m3u8的文件 操作方法 01 首先要知道m3u8只 ...

  • 如何打开电脑中的m3u8文件

    m3u8是一种网络串流格式的视频文件,一般的播放器无法打开,想要打开,该怎么操作呢?今天就跟大家介绍一下如何打开电脑中的m3u8文件的具体操作步骤.1. 首先打开电脑上的浏览器,进入百度,输入VLC进 ...

  • 怎样用手机生成身份证的pdf格式文件

    日常生活中我们经常会用到身份证复印件来办公,但是去复印店复印有可能会泄露我们的个人隐私,这时候自己制作一份合适的pdf文件就很合适了,既简单又方便.那么今天我们就来讲讲:怎样用手机生成身份证的pdf格 ...

  • 怎么将ug生成的工程图导出dwg文件在cad中编辑

    在ug中编辑二维的工程图不如在cad软件中方便,如何将ug工程图转变为清晰的dwg文件,下面方法是小编试的最好用且兼容性最好的方法,下面介绍给大家. 操作方法 01 首先将我们的零件生成工程图(不会u ...

  • m3u8文件转成MP4的方法(简易)

    以手机缓存下来的为例,缓存的文件并不是m3u8文件,而是被切成很多小块存在同目录的文件夹里的.TS文件,建个文件夹把它导出来,如果不导出,看完后就可能被删了.打开格式工厂软件,首先把ts文件转码成MP ...

  • 手机下载m3u8文件的方法

    m3u8是一种常见的视频加密文件,如果我们想要在手机上下载这样的文件应该怎么操作呢?小编这就告诉大家具体如下:1. 首先我们在手机桌面找到浏览器图标,点击打开浏览器软件,打开之后我们在浏览器中打开要下 ...

  • 手机怎么下载下载m3u8文件

    这种名为m3u8是一种加密的视频文件,那么对于这种文件如何在手机上进行下载的呢?如何才可以在手机上下载这种加密的视频? 操作方法 01 例如在啊手机上打开浏览器,进入到要下载的视频页,点击地址了. 0 ...

  • linux下用gcc如何生成预处理、汇编等文件

    作为c语言新手,首先要熟悉c语言的编译过程.在linux系统上可以借助于gcc编译器提供的参数清晰的看到这个过程. 操作方法 01 1.c语言程序生成过程 C语言程序的生成过程可以简单的分为:编辑.预 ...

  • Linux系统递归生成目录中文件的md5的方法

    这篇文章主要介绍了Linux系统递归生成目录中文件的md5的方法,利用PHP脚本实现,需要的朋友可以参考下 linux下使用md5sum递归生成整个目录的md5 今天要用md5sum操作目录,递归生成 ...