HLS直播取流过程演示

news/2024/11/24 9:44:18/

一、HLS是什么(第一部分为转载)
转载地址如下:
https://langyastudio.blog.csdn.net/article/details/82012187

HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。 它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。

在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

HLS协议规定:视频的封装格式是TS。视频的编码格式为H264,音频编码格式为MP3、AAC或者AC-3。除了TS视频文件本身,还定义了用来控制播放的m3u8文件(文本文件)。

HLS协议说明:
HLS的m3u8,是一个ts的列表,也就是告诉浏览器可以播放这些ts文件,譬如:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:430
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.800
news-430.ts
#EXTINF:10.120
news-431.ts
#EXT-X-DISCONTINUITY
#EXTINF:11.952
news-430.ts
#EXTINF:12.640
news-431.ts
#EXTINF:11.160
news-432.ts
#EXT-X-DISCONTINUITY
#EXTINF:11.751
news-430.ts
#EXTINF:2.040
news-431.ts
#EXT-X-ENDLIST

上述SDP信息中字段含义如下
EXTM3U:
每个M3U文件第一行必须是这个tag,提供标示作用

EXT-X-VERSION
用以标示协议版本。这里是3, 那么这里用的就是HLS协议第三个版本,此标签只能有0或1个,不写代表使用版本1

EXT-X-TARGETDURATION
所有切片的最大时长,有些Apple设备这个参数不正确会无法播放。

EXT-X-MEDIA-SEQUENCE
切片的开始序号。每一个切片都有唯一的序号,相邻之间序号+1。这个编号会继续增长,保证流的连续性。

EXTINF
ts 切片的实际时长。duration : 媒体持续时间

#EXTINF ,<br/> 1<br/> EXT-X-PLAYLIST-TYPE<br/> 类型,vod 表示点播。

EXT-X-ENDLIST
文件结束符号。表示不再向播放列表文件添加媒体文件。

二:HLS实际场景演示:

  1. 客户端向服务端发起GET请求: 在这里插入图片描述
    可以看到上述请求为:https://cctvalih5c.v.myalicdn.com/live/cdrmcctv1_1md.m32u8,GET方式。
    服务端response为:
    在这里插入图片描述
    具体回复见下图:
    在这里插入图片描述
    可以清楚的看到服务器回复的是一个ts文件列表。EXTINF为视频的实际时长,大约为10s中,比较稳定的长度。但是要注意的是,我们第一次播放,尽可能的选择列表中后面部分的ts文件,防止出现延时过大的问题。
  2. 通过获得的ts列表信息重新组装需要请求的url
    在这里插入图片描述
    具体url图片见下方:
    在这里插入图片描述
    此次请求服务端回复的就是客户端想要的直播流文件,客户端收到该response中的ts流,直接送播放库,或者dsp,进行视频的解封装,之后进行解码,即可播放。

http://www.ppmy.cn/news/520237.html

相关文章

【项目实战】IPC摄像头在线状态ping检测与告警邮件发送项目总结

目录 1、项目背景与需求 2、技术实现思路 3、libcurl开源库的编译 3.1、尝试使用现成的libcurl库</

产业互联网周报:百度智能云高管大调整;安谋科技“夺权”风波近尾声;海康威视就回应美国制裁;受东数西算提振,西部地区投资同比涨6倍...

关注ITValue&#xff0c;看企业级最新鲜、最价值报道&#xff01; 宜家加拿大公司承认数据泄露&#xff0c;涉及约9.5万名客户信息&#xff1b;今年数据中心云端业务业务将持续双位数增长&#xff1b;3月全球芯片市场增速放缓&#xff1b;2022年全球公有云终端用户支出预计将接…

AndroidStudio 集成海康威视 Android SDK,集成萤石Android SDK。

之前以为海康威视的android sdk 就是萤石的sdk&#xff0c;其实不是 海康威视的&#xff1a; 0: 相关的手机端软件&#xff1a;http://www.hikvision.com/cn/download_more_391.html 1: 海康威视Android SDK: 海康威视最新Android sdk 20160912 萤石的&#xff1a; 0: 官方网站…

用H5Stream实现海康摄像头不装ie插件,用其他浏览器谷歌等并可以在手机端app播放RTSP流视频查看

公司用到了海康的摄像头,海康有提供SDK实现各种摄像头功能,但是需要在ie浏览器装插件,公司项目都是基于谷歌浏览器优化,先不说开发的问题,用户装个插件也会出各种问题,后来又有需求要在公司自己的app端能查看,手机端就别想这装ie装插件了,思来想去,只能绕过海康的服务器,在自己…

海康威视视频监控demo 源码+库文件

一个朋友做监控&#xff0c;用的海康威视的设备&#xff0c;海康威视本身自己有Android客户端&#xff0c;但朋友想开发一款自己的软件&#xff0c;配合硬件一起销售&#xff0c;还可以进行定制化开发&#xff0c;所以应朋友之请&#xff0c;就研究了下海康威视的相关SDK开发。…

海康威视Android SDK,并非萤石Android SDK

之前以为海康威视的android sdk 就是萤石的sdk&#xff0c;其实不是 海康威视的&#xff1a; 0: 相关的手机端软件&#xff1a;http://www.hikvision.com/cn/download_more_391.html 1: 海康威视Android SDK: 海康威视最新Android sdk 20160912 萤石的&#xff1a; 0: 官方网…

AndroidStudio 集成海康威视 Android SDK,集成萤石Android SDK

之前以为海康威视的android sdk 就是萤石的sdk&#xff0c;其实不是 海康威视的&#xff1a; 0: 相关的手机端软件&#xff1a;http://www.hikvision.com/cn/download_more_391.html 1: 海康威视Android SDK: 海康威视最新Android sdk 20160912 萤石的&#xff1a; 0: 官方网站…

Redis进阶篇(附面试快速答法)

文章目录 Redis使用场景1、缓存穿透布隆过滤器小总结面试快速答法 2、缓存击穿小总结面试快速答法 3、缓存雪崩面试快速答法 4、双写一致性小总结面试快速答法 5、持久化机制面试快速答法 6、数据过期策略小总结面试快速答法 7、数据淘汰策略小总结面试快速答法 8、分布式锁小总…