1.一种用于HLS直播资源的录制存储方法,其特征在于:包括以下步骤:
S1、推流摄像机向直播服务器推流,直播服务器接收到视频流后正常保存直播流文件;
S2、直播服务器在内部设置用于保存录像流文件的存储文件夹,并在保存直播流文件的同时,将直播流文件复制到相应存储文件夹中;
S3、将每个存储文件夹中所有录像流文件合并为媒体片段,并记录每个录像流文件在媒体片段中的位置;
S4、直播服务器分别生成直播流文件、媒体片段对应的直播地址、录像地址,并发送给调度中心;
S5、客户端从调度中心获取请求地址,并从直播服务器获取对应的直播流文件或媒体片段进行播放。
2.根据权利要求1所述的用于HLS直播资源的录制存储方法,其特征在于:S2中直播服务器在内部设置用于保存录像流文件的存储文件夹,并在保存直播流文件的同时,将直播流文件复制到相应存储文件夹中,包括:
直播服务器设定时间间隔,每经过一个时间间隔设置一个用于保存录像流文件的存储文件夹,并将接下来一个时间间隔内保存的所有直播流文件复制到该存储文件夹中。
3.根据权利要求2所述的用于HLS直播资源的录制存储方法,其特征在于:S3中将每个存储文件夹中所有录像流文件合并为媒体片段,并记录每个录像流文件在媒体片段中的位置,包括:
将存储文件夹中所有录像流文件按照时间顺序合并为一个完整的媒体片段,并在合并过程中记录每个录像流文件在媒体片段中的开始位置、结束位置。
4.根据权利要求3所述的用于HLS直播资源的录制存储方法,其特征在于:S4中直播服务器分别生成直播流文件、媒体片段对应的直播地址、录像地址,并发送给调度中心,包括:
直播服务器生成关于直播流文件的直播流m3u8文件,以及关于媒体片段的录像流m3u8文件,并将直播流m3u8文件、录像流m3u8文件发送给调度中心,同时将录像流m3u8文件存储至对应存储文件夹中,录像流m3u8文件中媒体片段的类型标签采用自定义URL的方式记录。
5.根据权利要求4所述的用于HLS直播资源的录制存储方法,其特征在于:所述录像流m3u8文件中媒体片段的类型标签URL包括:协议、存储的主机地址和端口号、资源路径、参数,其中参数包括存储文件夹路径、媒体片段开始位置、媒体片段结束位置三个参数,所述存储文件夹路径采用URL编码处理。
6.根据权利要求5所述的用于HLS直播资源的录制存储方法,其特征在于:所述录像流m3u8文件中媒体片段的类型标签URL的访问通过HTTP协议实现。
7.根据权利要求4所述的用于HLS直播资源的录制存储方法,其特征在于:S5中客户端从调度中心获取请求地址,并从直播服务器获取对应的媒体片段进行播放,包括:
直播服务器解析请求地址中的参数列表,获取存储文件夹路径、相对于媒体片段的开始位置、相对于媒体片段的结束位置;
结合每个录像流文件在媒体片段中的开始位置、结束位置,确定请求地址包含的录像流文件,并得到第一个录像流文件的开始位置SL1,以及最后一个录像流文件的结束位置FL1;
解析请求HTTP消息头中的内容范围来获取客户端请求的开始偏移位置SL2和结束偏移位置FL2;
通过第一个录像流文件的开始位置SL1、开始偏移位置SL2计算客户端请求播放的开始位置SL,通过最后一个录像流文件的结束位置FL1、结束偏移位置FL2计算客户端请求播放的结束位置FL;
直播服务器将开始位置SL与结束位置FL之间的媒体片段发送至客户端进行播放。
8.根据权利要求7所述的用于HLS直播资源的录制存储方法,其特征在于:所述请求播放的开始位置SL、请求播放的结束位置FL的计算公式分别为:
SL=SL1+SL2
FL=FL1-FL2
其中,开始偏移位置SL2从第一个录像流文件的开始位置SL1处向右计算,结束偏移位置FL2从最后一个录像流文件的结束位置FL1处向左计算,均不小于0。