FMUSER更轻松地传输视频和音频!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
0 HLS背景和初衷
HLS是由Apple发起的流媒体网络传输协议。 请参考rfc8261 HTTP实时流。 它的工作原理是将整个流分成基于HTTP的小文件进行下载,并且每次仅下载一些文件。 在播放媒体流时,客户端可以选择以不同的速率从许多不同的备份源下载相同的资源,从而使流会话可以适应不同的数据速率。 启动流媒体会话时,客户端将下载包含元数据的扩展M3U(m3u8)播放器文件,以搜索可用的媒体流。
HLS仅请求基本HTTP数据包。 与RTP不同,HLS可以穿过任何允许HTTP数据通过的防火墙或代理服务器。 使用内容分发网络来传输媒体流也很容易。
Internet上有很多有关HLS的信息。 本文主要根据我的理解来整理HLS流媒体协议的基础知识。
0.1 HLS协议格式要求
视频打包格式
保存TS索引的m3u8文件
视频编码格式:H264(只要mpeg-ts支持,基本上就可以,但是有些格式不是免费的;音频类似)
音频编码格式:AAC,MP3,AC-3
0.2 HLS的优势
使用标准HTTP传输数据具有更好的网络渗透性和抗屏蔽性,并且更易于进行内容分发网络的传输。
HLS协议本身支持速率自适应,并且客户端可以根据实际网络条件切换到适当的速率。
HLS内容发布服务更简单,需要的系统设备更少,并且更容易实现负载平衡。 HLS是无状态HTTP协议,客户端只需下载它即可。
0.3 HLS的缺点
延迟很大,尤其是在实况广播的情况下,很难实现小于10秒的延迟(不排除Internet上的所有改进版本和算法)。
内容生成需要编码器的高性能。
1 HLS系统和基本架构
HLS支持实时或按需,加密和身份验证。 从概念上讲,HTTP通常包括三个部分:服务器,发布者和客户端。
1.1 HLS服务器
服务器主要负责对输入的媒体数据进行编码和封装,并对封装的文件进行切片以满足发布者的要求。 其输出可以是音频和视频原始数据,编码数据或封装的TS数据。 该输入最终将通过切片工具切成发布者所需的格式。 涉及三个部分
媒体编码器。
多媒体编码器主要对从音频和视频设备收集的实时信号进行编码和封装。 在编码中,必须选择客户端支持的格式,例如H264视频+ aac音频。 目前,HLS支持的封装格式为mpeg-ts或mpeg-es,仅支持纯音频。 编码后,编码器可以通过局域网或其他机制将封装的格式传输到分段工具。
细分工具
根据输入源的不同,它通常分为流分割器和文件分割器。
顾名思义,它们之间的主要区别在于输入文件格式:流拆分器的输出是从本地网络滴入的mpeg-ts流,而文件拆分器则处理封装的TS文件。 它们的工作原理是相似的:mpeg-ts被分为一系列等长的媒体文件,但是这些小片段可以被无缝地重建,并且音频和视频在播放时是连续的。
切片工具还会创建一个索引文件(.M3u8),其中包含指向各个媒体文件的索引信息。 每当分割器完成新的媒体文件时,它都会更新索引文件。 该索引用于记录媒体文件的位置和可访问性。 在此过程中,分片工具可以加密每个分片并为其创建密钥文件。
格式。 M3u8将在下面详细描述。
1.2 HLS配电终端
只要使用标准网络服务器,HLS分发程序就相对简单。 他们负责接收客户端请求,并将处理后的多媒体文件和资源发送到客户端。 如果并发性较大,则可能需要边缘网络或其他内容分发网络。
分发系统是Web服务器或Web缓存系统,可以通过HTTP将媒体文件和索引文件发送到客户端。 在大多数情况下,在分发内容之前无需配置其他服务器和模块,只需少量配置即可在Web服务器上正常工作。 有关详细配置,请参阅部署HTTP实时流。
1.3 HLS客户端
客户端负责选择适当的请求资源,下载器资源,然后解码显示内容(播放器的全部功能)。
客户端通常使用给定的URL来识别流的信息,从获取索引文件开始。 该索引文件通常提供可用媒体文件,解密密钥和其他可选流的位置。 客户端选择流后,它将开始按顺序下载每个可用的媒体文件。 每个文件都包含特定流的连续切片。 只要客户端下载足够的数据,它就可以开始解码数据并显示它。
如有必要,客户端负责读取所有解密密钥,进行身份验证,或为用户提供用于身份验证或解密的接口。
客户端可以继续此过程,直到在索引文件中遇到#ext-x-endlist标记为止。 如果标签不存在,则表示索引文件是实时源,客户端需要定期更新索引文件以重复上述过程。
在更常见的HLS系统中,使用硬编码器将输入音频编码为AAC,将输入视频编码为h264,然后在mpeg-ts中重用两者,然后通过使用以下方法将其分为一系列小的TS文件:切片工具; 这些文件可以放在Web服务器上。 切片工具还创建并维护一个索引文件(在HLS中称为M3u8),其中包含可用媒体文件的列表。 索引文件的URL在Web服务器上发布。 客户端可以读取索引文件,然后按顺序请求列出的媒体文件。 这些乐曲可以无缝播放。 典型的系统配置如下:
|
输入电子邮件以获取惊喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
FMUSER更轻松地传输视频和音频!
联系我们
分类目录
订阅电子邮件