一种视频文件实时转码方法与流程

文档序号:12498455阅读:1259来源:国知局

本发明涉及一种视频文件实时转码方法。



背景技术:

目前视频文件的爆炸式增长,视频格式越来越多,而播放终端的多样化,为了兼容各种播放终端、节省存储空间以及用户的即时观看需求,实时转码点播成为迫切的需求。

目前行业中采用的基本是边转边播的方式,但普遍存在的问题是在实时转码过程中,播放器无法SEEK到没有转码的位置,同时播放器界面长的时长会不断变化,客户体验很差。



技术实现要素:

本发明的目的在于克服现有技术中的不足而提供一种视频文件实时转码方法。

为实现上述目的,一方面,本发明提供的一种视频文件实时转码方法,包括如下步骤:

前端代理在客户端接收实时点播m3u8文件请求时,当m3u8文件不存在时,创建一个会话,所述会话中根据原始文件时长生成m3u8文件,

生成的所述m3u8文件中包含实际不存在的TS切片文件,且所有所述TS切片文件的总时长与所述原始文件的时长相同,

生成的所述m3u8文件返回所述客户端,且所述会话中保存每个所述TS切片文件对应的起始时间点和结束时间点。

根据本发明提供的一种视频文件实时转码方法,由于m3u8和TS切片文件是在点播时实时生成的,实时转码生成hls格式的点播视频,使得实时转码可任意SEEK,客户有较好的体验。

具体实施方式

下面详细描述本发明的实施例。

本发明一实施例提供了一种视频文件实时转码方法,包含一支持本发明的视频编码算法的一种系统,其中系统中包括前端代理模块、存储模块、m3u8生成模块和实时转码模块。

具体地,前端代理模块用于面向客户端,接收m3u8文件及TS切片文件的请求,维护实时转码会话,经过其他模块处理后,将视频信息或视频流返回给客户端;

存储模块用于保存实时转码后实时生成的m3u8文件和TS切片文件;

m3u8生成模块用于根据原始文件时长生成m3u8文件,m3u8文件中包含实际不存在的TS切片文件,m3u8文件中所有TS切片文件的时长总和与原始文件的时长相同,此外,为了让播放时有较好体验,一般情况下,开始的几个切片的时长会设置稍短,下详述。

实时转码模块用于处理TS切片文件实时转码请求,将原始视频文件中指定时间段的视频内容转码并生成TS切片文件,该TS切片文件实施转码请求中包括原始视频文件路径、开始时间、结束时间等参数。

本发明一实施例的一种视频文件实时转码方法,依托上述系统,执行过程具体地包括如下步骤:

步骤1、前端代理模块收到客户端播放请求,一般地,即请求m3u8文件;

步骤2.1、如果发现存储模块中已存在该m3u8文件,则直接将m3u8文件内容返回给客户端;

步骤2.2、如果该m3u8文件不存在,则先查找该m3u8文件相对应的实时转码会话是否存在,如果不存在,则创建一个会话;

步骤3、在会话中,根据原始文件时长,实时生成m3u8文件,m3u8文件中包含实际不存在的TS切片文件,m3u8文件中所有TS切片文件的时长总和与原始文件的时长相同,m3u8文件生成后保存在存储模块中,并返回给客户端,同时会话中保存每个TS切片文件对应的起始时间点及结束时间点;

步骤4、为了后续播放能够快速开始,会话立即发送第一个TS切片文件的转码请求给实时转码模块,该第一个TS切片文件的转码请求包括会话发送文件、第一个TS切片文件开始时间及第一个TS切片文件结束时间等参数,如该第一个TS切片文件的开始时间为00:00:00,该第一个TS切片文件结束时间为一个切片的时长(一般设置为3~5秒左右)。通常开始几个TS切片文件的时长可以设置短一点以缩短转码时间,使客户端能够快速播放从而改善体验;

步骤5、实时转码模块收到第一个TS切片文件的转码请求后,对第一个TS切片文件进行转码,并同步返回实时数据流;

步骤6、前端代理模块收到该实时数据流后,将该实时数据流保存到存储模块;

步骤7、当客户端收到m3u8文件后,读取m3u8文件中的内容,从第一个TS切片文件开始依次向服务器请求TS切片文件的地址;

步骤8、前端代理模块在收到TS切片文件的地址后,先查找相应的会话;

步骤8.1、如果相应会话不存在,则创建一个会话,先在存储模块中查找m3u8文件是否存在,如果存在,则直接返回。由于第一个TS切片文件之前就开始转码了,而且文件比较短,那么在大部分情况下,可以直接返回给客户端;

步骤8.2、如果TS切片文件还没有生成,则立即开始该TS切片文件的转码,并返回实时数据流,且同时保存到存储模块;

步骤9、会话会继续依次转码后续的2个切片,以便下次请求来时能够快点拿到TS切片文件;

步骤10、客户端不管是SEEK还是顺序播放,都会重复步骤8至步骤9的动作,直到播放结束或停止播放;

步骤11、当客户端一段时间内都没有请求过来,那么会话会自动结束。

在上述步骤中,生成m3u8的方式具体如下:

假设原视频时长为23.4秒,那么如果每个TS切片文件设置为3秒,那么生成的m3u8文件内容可能如下:

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:3

#EXTINF:3.000,

TS_1_03000.TS

#EXTINF:3.000,

TS_2_3000_6000.TS

#EXTINF:3.000,

TS_3_6000_9000.TS

#EXTINF:3.000,

TS_4_9000_12000.TS

#EXTINF:3.000,

TS_5_12000_15000.TS

#EXTINF:3.000,

TS_6_15000_18000.TS

#EXTINF:3.000,

TS_7_18000_21000.TS

#EXTINF:2.400,

TS_8_21000_23400.TS

#EXT-X-ENDLIST

值得说明的是,TS切片文件名可以根据实际情况来命名,TS切片文件的切片时长亦可以根据实际情况做调整,上述只是本发明一实施例示例。

综上,根据本发明提供的一种视频文件实时转码方法,由于m3u8和TS切片文件是在点播时实时生成的,实时转码生成hls格式的点播视频,使得实时转码可任意SEEK,客户有较好的体验。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1