CN112601131B - 一种hls视频切片文件存储优化方法 - Google Patents
一种hls视频切片文件存储优化方法 Download PDFInfo
- Publication number
- CN112601131B CN112601131B CN202011435601.7A CN202011435601A CN112601131B CN 112601131 B CN112601131 B CN 112601131B CN 202011435601 A CN202011435601 A CN 202011435601A CN 112601131 B CN112601131 B CN 112601131B
- Authority
- CN
- China
- Prior art keywords
- file
- slice
- hls
- media
- url
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种HLS视频切片文件存储优化方法。它具体包括如下步骤:(1)根据HLS标准,生成一系列的切片文件,读取所有切片文件列表;(2)把所有切片文件合并成单个文件,记录每个切片在文件中的开始位置和结束位置;(3)重新生成M3U8文件,媒体片段类型标签采用自定义URL的方式来记录;(4)媒体片段的请求接口采用标准的HTTP接口下实现。本发明的有益效果是:符合HLS标准要求,对于HLS的生成和播放没有影响,采用单媒体文件的方式减少多切片模式下对存储和CDN的空间和读取上的压力。
Description
技术领域
本发明涉及音视频编码转码相关技术领域,尤其是指一种HLS视频切片文件存储优化方法。
背景技术
HLS全称Http Live Streaming是当前广泛使用的直播和点播技术,是由苹果公司提出的基于HTTP的流媒体网络传输协议,流媒体协议使用HTTP渐进下载方法,可嵌入HTML5标签中播放,现在已经被移动平台浏览器广泛支持,在桌面上也可以通过Javascript和MSE(Media Source Extensions)技术来实现。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些切片。HLS的特点是分片文件小,加载很快,使用TS容器,格式简单,通过HTTP传输,基本不需要考虑防火墙问题,所以很快就被推广开了。
但是HLS协议的小切片方式会生成大量的小文件,存储或处理这些文件会造成大量资源浪费。同一个源对于每种分辨率都需要切成小文件来存储,在并发请求过程中对于文件存储和CDN都是极大的负担。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种减小存储压力的HLS视频切片文件存储优化方法。
为了实现上述目的,本发明采用以下技术方案:
一种HLS视频切片文件存储优化方法,具体包括如下步骤:
(1)根据HLS标准,生成一系列的切片文件,读取所有切片文件列表;
(2)把所有切片文件合并成单个文件,记录每个切片在文件中的开始位置和结束位置;
(3)重新生成M3U8文件,媒体片段类型标签采用自定义URL的方式来记录;
(4)媒体片段的请求接口采用标准的HTTP接口下实现。
通过上述方法的设计,完成了从HLS切片、M3U8的改造和HTTP服务的定制达到存储优化功能,符合HLS标准要求,对于HLS的生成和播放没有影响,采用单媒体文件的方式减少多切片模式下对存储和CDN的空间和读取上的压力。
作为优选,在步骤(2)中,具体为:把所有切片文件合成一个完整的媒体文件,合并顺序从第1个切片开始一直合并到最后一个切片,在合并的过程中记录下切片在合并文件中的位置,将其记录成开始位置和结束位置。
作为优选,在步骤(3)中,M3U8中媒体片段类型标签采用自定义URL的方式来记录,URL中的媒体文件访问功能由HTTP服务模块,URL采用自定义规则,由下面部分组成:协议、存有该资源的主机地址和端口号、资源路径、参数,其中参数部分最少要包括合并文件路径、切片开始路径、切片结束位置三个参数,其中合并文件路径采用URL编码来处理。
作为优选,在步骤(4)中,在HTTP接口下实现流程如下:
(41)解析请求地址中的参数列表,包括file来获取合并文件路径,start来获取切片在相对于合并文件中开始位置FS,end来获取切片相对于合并文件中结束位置FE;
(42)解析请求HTTP Header中的Content-Range来获取客户端请求切片开始偏移位置SS和结束偏移位置SE;
(43)通过FS、SS和SE计算出此次请求相对于合并文件中开始位置RS和结束位置RE,RS=FS+SS,RE=FS+SE;
(44)通过过操作系统提供的标准文件接口读取合并文件,把RS到RE之间的数据通过HTTP协议返回读取数据内容。
本发明的有益效果是:符合HLS标准要求,对于HLS的生成和播放没有影响,采用单媒体文件的方式减少多切片模式下对存储和CDN的空间和读取上的压力。
附图说明
图1是本发明中切片合并和M3U8改造流程图;
图2是本发明中HTTP接口请求流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1、图2所述的实施例中,一种HLS视频切片文件存储优化方法,具体包括如下步骤:
(1)根据HLS标准,生成一系列的切片文件,读取所有切片文件列表;
(2)把所有切片文件合并成单个文件,记录每个切片在文件中的开始位置(StartPosition)和结束位置(End Position);具体为:把所有切片文件合成一个完整的媒体文件,合并顺序从第1个切片开始一直合并到最后一个切片,在合并的过程中记录下切片在合并文件中的位置,将其记录成开始位置和结束位置,如图1所示。
(3)重新生成M3U8文件,媒体片段类型标签采用自定义URL的方式来记录;M3U8中媒体片段类型标签采用自定义URL的方式来记录,URL中的媒体文件访问功能由HTTP服务模块,URL采用自定义规则,由下面部分组成:<scheme>://<host>:<port>/<path>;<params>?<query>
1.协议(<scheme>);
2.存有该资源的主机地址和端口号(<host>:<port>);
3.资源路径(<path>);
4.参数(<params>?<query>),其中参数部分最少要包括合并文件路径、切片开始路径、切片结束位置三个参数,其中合并文件路径采用URL编码来处理,如图1所示。
例如:
https://www.domian.com/segment?file={path}&start={startPos}&end={endPos}
根据此规则重新输出M3U8文件。
M3U8输出样例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
https://www.domian.com/segment?file=%2fdata%2fwhole.ts&start=0&end=10000
#EXTINF:10,
https://www.domian.com/segment?file=%2fdata%2fwhole.ts&start=10000&end=20000
#EXTINF:6,
https://www.domian.com/segment?file=%2fdata%2fwhole.ts&start=20000&end=26000
(4)HTTP服务模块用于提供HLS流媒体服务功能,此服务通过自有代码开发实现来完成范围请求功能。媒体片段的请求接口采用标准的HTTP接口下实现,如图2所示;在HTTP接口下实现流程如下:
(41)解析请求地址中的参数列表,包括file来获取合并文件路径,start来获取切片在相对于合并文件中开始位置FS,end来获取切片相对于合并文件中结束位置FE;
(42)解析请求HTTP Header中的Content-Range来获取客户端请求切片开始偏移位置SS和结束偏移位置SE;
(43)通过FS、SS和SE计算出此次请求相对于合并文件中开始位置RS和结束位置RE,RS=FS+SS,RE=FS+SE;
(44)通过过操作系统提供的标准文件接口读取合并文件,把RS到RE之间的数据通过HTTP协议返回读取数据内容。
本发明是基于HLS协议中M3U8文本协议特点来实现。M3U8是Unicode版本的M3U,用UTF-8编码。"M3U"和"M3U8"文件都是苹果公司使用的HLS协议格式的基础。M3U8文件实质是一个播放列表(Playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是utf-8编码。
当M3U8文件作为媒体播放列表(Media Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。样例格式如下所示:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
first.ts
#EXTINF:10,
second.ts
#EXTINF:6,
third.ts
根据HLS标准中对媒体片段类型标签(Media Segment Tags)说明,每个切片URI前面都有一系列媒体片段标签对其进行描述。有些片段标签只对其后切片资源有效;有些片段标签对其后所有切片都有效,直到后续遇到另一个该标签描述。媒体片段类型标签不能出现在主播放列表(Master Playlist)中。具体标签如下:
EXTINF:表示其后URL指定的媒体片段时长(单位为秒)。每个URL媒体片段之前必须指定该标签。该标签的使用格式为:
#EXTINF:<duration>,[<title>]
其中:
Duration:可以为十进制的整型或者浮点型,其值必须小于或等于EXT-X-TARGETDURATION指定的值。
其中切片的URI有三种方式:
采用绝对路径来指定切片的位置;
采用相对于M3U8的相对路径来指定切片的位置;
采用URL地址的方式来指定切片位置。
通过上述方法的设计,完成了从HLS切片、M3U8的改造和HTTP服务的定制达到存储优化功能,符合HLS标准要求,对于HLS的生成和播放没有影响,采用单媒体文件的方式减少多切片模式下对存储和CDN的空间和读取上的压力。
Claims (1)
1.一种HLS视频切片文件存储优化方法,其特征是,具体包括如下步骤:
(1)根据HLS标准,生成一系列的切片文件,读取所有切片文件列表;
(2)把所有切片文件合并成单个文件,记录每个切片在文件中的开始位置和结束位置;具体为:把所有切片文件合成一个完整的媒体文件,合并顺序从第1个切片开始一直合并到最后一个切片,在合并的过程中记录下切片在合并文件中的位置,将其记录成开始位置和结束位置;
(3)重新生成M3U8文件,媒体片段类型标签采用自定义URL的方式来记录;M3U8中媒体片段类型标签采用自定义URL的方式来记录,URL中的媒体文件访问功能由HTTP服务模块,URL采用自定义规则,由下面部分组成:协议、存有资源的主机地址和端口号、资源路径、参数,其中参数部分最少要包括合并文件路径、切片开始路径、切片结束位置三个参数,其中合并文件路径采用URL编码来处理;
(4)媒体片段的请求接口采用标准的HTTP接口下实现;在HTTP接口下实现流程如下:
(41)解析请求地址中的参数列表,包括file来获取合并文件路径,start来获取切片在相对于合并文件中开始位置FS,end来获取切片相对于合并文件中结束位置FE;
(42)解析请求HTTP Header中的Content-Range来获取客户端请求切片开始偏移位置SS和结束偏移位置SE;
(43)通过FS、SS和SE计算出此次请求相对于合并文件中开始位置RS和结束位置RE,RS=FS+SS,RE=FS+SE;
(44)通过操作系统提供的标准文件接口读取合并文件,把RS到RE之间的数据通过HTTP协议返回读取数据内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011435601.7A CN112601131B (zh) | 2020-12-10 | 2020-12-10 | 一种hls视频切片文件存储优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011435601.7A CN112601131B (zh) | 2020-12-10 | 2020-12-10 | 一种hls视频切片文件存储优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112601131A CN112601131A (zh) | 2021-04-02 |
CN112601131B true CN112601131B (zh) | 2023-03-21 |
Family
ID=75191673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011435601.7A Active CN112601131B (zh) | 2020-12-10 | 2020-12-10 | 一种hls视频切片文件存储优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112601131B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9916090B1 (en) * | 2015-09-22 | 2018-03-13 | EMC IP Holding Company LLC | Techniques for dynamically adjusting slice size |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243430A (zh) * | 2013-06-20 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种流媒体播放方法及装置 |
US9807452B2 (en) * | 2013-10-07 | 2017-10-31 | Samsung Electronics Co., Ltd. | Practical delivery of high quality video using dynamic adaptive hypertext transport protocol (HTTP) streaming (DASH) without using HTTP in a broadcast network |
CN103826159B (zh) * | 2013-12-04 | 2017-12-19 | Tcl集团股份有限公司 | 一种m3u8格式视频的本地离线播放方法和终端 |
EP2887294A1 (en) * | 2013-12-23 | 2015-06-24 | Thomson Licensing | Method and device for providing targeted content |
US10798144B2 (en) * | 2015-06-18 | 2020-10-06 | Ericsson Ab | Directory limit based system and method for storing media segments |
CN105072458A (zh) * | 2015-07-23 | 2015-11-18 | 浪潮软件集团有限公司 | 一种基于hls协议实现机顶盒直播过程中时移的方法 |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN105979373A (zh) * | 2015-12-03 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种播放方法及装置 |
CN106375873A (zh) * | 2016-08-31 | 2017-02-01 | 杭州当虹科技有限公司 | 一种hls视频文件下载存储及播放的方法 |
CN109756757B (zh) * | 2019-03-21 | 2021-07-13 | 北京数码视讯软件技术发展有限公司 | 直播数据处理方法及装置、直播方法及装置和直播服务器 |
CN111246315B (zh) * | 2020-01-21 | 2022-06-03 | 咪咕视讯科技有限公司 | 视频交互方法、系统、边缘节点、客户端及存储介质 |
CN111741338A (zh) * | 2020-07-22 | 2020-10-02 | 深圳力维智联技术有限公司 | Hls流媒体播放方法、系统、设备及存储介质 |
-
2020
- 2020-12-10 CN CN202011435601.7A patent/CN112601131B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9916090B1 (en) * | 2015-09-22 | 2018-03-13 | EMC IP Holding Company LLC | Techniques for dynamically adjusting slice size |
Also Published As
Publication number | Publication date |
---|---|
CN112601131A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8635360B2 (en) | Media playback point seeking using data range requests | |
CN107277081A (zh) | 流媒体数据的切片下载方法和装置、流媒体系统 | |
CN102055717B (zh) | 快速播放的方法、终端及服务器 | |
CA2896175C (en) | Media distribution and management platform | |
US7992165B1 (en) | Insertion of digital media | |
US7962933B2 (en) | Mid-roll insertion of digital media | |
JP7072668B2 (ja) | ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 | |
CN105828096B (zh) | 媒体流文件的处理方法和装置 | |
KR101418951B1 (ko) | 멀티미디어 메시징 서비스의 비디오 적응 방법 및 시스템 | |
US20080040215A1 (en) | Mid-Roll Insertion of Digital Media | |
CN111246314B (zh) | 时移直播方法、服务端装置、客户端装置及直播系统 | |
CN110784750A (zh) | 视频播放方法、装置及计算机设备 | |
JP2021510047A (ja) | メディアファイルの同期再生方法、装置及び記憶媒体 | |
US12028586B2 (en) | Advertisement preparation systems | |
CN113742518A (zh) | 存储和提供视频的方法、设备和计算机程序产品 | |
CN105721952A (zh) | 一种等时长切片的直播流网络传输方法及系统 | |
CN104837033A (zh) | 一种信息处理方法及服务器 | |
CN113873288A (zh) | 在直播过程中生成回放的方法和装置 | |
CN112601131B (zh) | 一种hls视频切片文件存储优化方法 | |
CN102611716A (zh) | 一种传输媒体文件的方法及装置 | |
CN116415032A (zh) | 一种视频文件读取、存储方法及装置 | |
CN115039413A (zh) | 用于基于递送的内容流来提供内容流的技术 | |
CN116132751B (zh) | 一种基于web窗口场景同步回放的方法及系统 | |
US20230239328A1 (en) | Computer implemented method for processing streaming requests and responses | |
TW201937938A (zh) | 解碼裝置、解碼方法、及程式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |