一种获取直播视频切片的方法及服务器的制造方法_3

文档序号:9528083阅读:来源:国知局
Is、第一时长为9s、第二时长为11s为例:
[0096]步骤301:节点、具体是位于该节点的服务器接收MPEG系统发送来的原始直播源MPEG-TS 码流;
[0097]其中,所述服务器支持码流的用户数据报协议(UDP,User Data Protocol)单播和UDP组播。
[0098]步骤302:服务器将接收到的MPEG-TS码流转换成RTP码流;
[0099]这里,服务器将对MPEG-TS码流增加扩展的RTP包头,确定出VBV的长度、及码流的关键帧信息如关键帧帧头、帧尾、长度等;获取码流的PAT和PMT。
[0100]步骤303:服务器对RTP码流进行缓存、排序、解析等处理,以方便后续终端的播放;
[0101]这里,在进行数据缓存、排序、解析等处理后,还可以对数据进行加扰、去扰、加密等处理,视具体应用情况而定。
[0102]步骤304:求取基准时长BS ;
[0103]这里,BS =关键帧长度KP+VBV长度V+1。
[0104]步骤305:去掉RTP码流的包头,得到RTP净载荷数据;
[0105]步骤306:在RTP净载荷数据中,获取当前原始直播源的第q个关键帧;确定第q个关键帧的起始位置为第q个切片的起始位置;在第q个关键帧起始位置的第一时长和/或第二时长内,查找是否存在有第q+Ι个关键帧;
[0106]查找到时,执行步骤307 ;否则执行步骤308。
[0107]步骤307:确定所述第q+Ι个关键帧的起始位置为第q个切片的结束位置;在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片,继续执行步骤309 ;
[0108]这里,RTP净载荷数据中,第q个关键帧的开头位置为第q个切片的开头位置,第q+Ι个关键帧的开头位置为第q个切片的结束位置;具体如前所述,此处不再赘述。
[0109]步骤308:将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置,在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片,继续执行步骤309 ;
[0110]优选的,在将RTP净载荷数据切分为切片后,需要将码流的PAT和PMT配置在每个切片开头位置,以便能够实现每个切片的独立播放。
[0111]步骤309:服务器依据HLS协议,为形成的切片生成子索引文件;
[0112]这里,由于原始直播源为单码率,所以子索引文件只有一个。
[0113]步骤310:服务器将形成的切片、切片的主索引文件、子索引文件刷新到磁盘,以供存储;
[0114]这里,在接收到MPEG-TS码流时,服务器依据HLS协议生成主索引文件。
[0115]步骤311:当终端上报有对频道A当前10s内的视频播放请求时,终端向节点中的下载服务器(DLS,Down Load Server)请求主索引文件;DLS读取磁盘中的频道A的主索引文件,并通过HTTP协议将文件内容发送至终端;终端向DLS请求子索引文件;DLS读取磁盘中的频道A的当前10s内视频所对应的子索引文件,并通过HTTP协议将文件内容发送至终端;终端向DLS请求对应于该子索引文件的TS切片文件;DLS读取磁盘中的承载频道A的当前10s内视频的TS切片文件,并通过HTTP协议将文件内容发送至终端,终端播放该TS切片,以供用户观看。
[0116]图4为本发明实施例提供的应用场景二示意图;如图4所示,本方案中的服务器还可以应用于多节点的情况;其中,每个节点均可与终端相连接,以方便终端请求直播数据,每个节点均包括服务器、下载服务器;进一步的,中心节点、具体是中心节点的服务器接收MPEG-TS码流,并将MPEG-TS码流传输至区域节点、具体是区域节点的服务器;区域节点的服务器将MPEG-TS码流传输至边缘节点;在位于三个节点中的相应服务器接收到直播源码流后,依据前述步骤302?步骤311进行处理,这里不再赘述。
[0117]基于上述获取直播视频切片的方法,本发明实施例还提供了一种服务器,图5为本发明实施例提供的服务器的组成示意图;如图5所示,所述服务器包括:第一获取单元500、第一确定单元501、第二获取单元502、第二确定单元503、第三确定单元504、第一切分单元505 ;
[0118]所述服务器还包括第一接收单元、第一转换单元、第一处理单元及第一删除单元;其中,
[0119]第一获取单元500,用于获取切片的基准时长;
[0120]这里,所述服务器、具体是第一接收单元接收原始直播源码流如接收来自MPEG系统的MPEG-TS码流,将所接收到的MPEG-TS码流传输至第一转换单元;所述第一转换单元转换MPEG-TS码流为RTP码流,并标识出RTP码流中的关键帧信息;第一处理单元对RTP码流进行缓存、排序、解析等处理;第一删除单元删除经第一处理单元处理后的RTP码流中的RTP包头,形成RTP净载荷数据;第一获取单元500获取RTP码流中的关键帧长度及VBV长度,并将关键帧长度、VBV长度以及第一阈值三者求和,求和结果作为切片的基准时长,也就是说,如果关键帧长度为KP、VBV长度为V、第一阈值为A,那么第一获取单元500确定出切片的基准时长BS = KP+V+A。其中,第一处理单元在对RTP码流进行缓存、排序、解析等处理的过程中,如果原始直播源码流已被加扰(去扰),本方案中第一处理单元还需要执行去扰(加扰)操作;如果在后续切分成切片时还需要对切片加密,第一处理单元还需要进行加密处理。
[0121]第一确定单兀501,用于确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
[0122]这里,以第一预设时长为时长B为例,第一确定单元501计算基准时长BS与B之和,并将该两者之和作为第一时长;和/或,计算基准时长BS与B之差,将该两者之差作为第二时长。
[0123]第二获取单元502,用于获取当前原始直播源的第q个关键帧;
[0124]这里,第二获取单元502在RTP净载荷数据中,依据关键帧信息,识别出第q个关键帧。
[0125]第二确定单元503,用于确定第q个关键帧的起始位置为第q个切片的起始位置;
[0126]第三确定单元504,用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+Ι个关键帧时,确定所述第q+Ι个关键帧的起始位置为第q个切片的结束位置;
[0127]这里,第三确定单元504在第q个关键帧起始位置的第一时长和/或第二时长内,查找是否存在有第q+Ι个关键帧,查找到时,确定所述第q+Ι个关键帧的起始位置为第q个切片的结束位置。
[0128]第一切分单元505,用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
[0129]这里,第一切分单元505在第q个关键帧起始位置及结束位置处进行切分,形成第q个切片;也就是说,第q个切片的起始位置为第q个关键帧起始位置,第q个切片的结束位置为第q+Ι个关键帧起始位置。
[0130]所述第三确定单元504,还用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+Ι个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置;
[0131]相应的,所述第一切分单元505,还用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
[0132]举个例子,以基准时长BS = 10s、第一预设时长B = Is为例,第一时长为9s、第二时长为11s ;在RTP净载荷数据中,第二获取单元502依据对RTP码流作出的关键帧信息,识别出第1个关键帧,第二确定单元503确定第1个关键帧的起始位置为当前原始直播源的第1个切片的起始位置,第三确定单元504以第1个关键帧起始位置为0s,从Os位置处查找至9s-lls时长处,在该9s-lls的时长内,确定存在有第2个关键帧时,将第2个关键帧的起始位置作为第1个切片的结束位置,第一切分单元505在第1个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第1个切片;同时,第二确定单元503确定第2个关键帧的起始位置为当前原始直播源的第2个切片的起始位置,第三确定单元504以第2个切片起始位置为Os’从Os位置处再查找至9s-lls时长处,在该9s-lls的时长内,确定存在有第3个关键帧时,将第3个关键帧的起始位置作为第2个切片的结束位置,第一切分单元505在第2个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第2个切片;以此类推,对每次接收到的原始直播源进行切片的切分。
[0133]由此可见,上述方案中,确定第q个关键帧的开头位置为第q个切片的起始位置(开头位置),确定第q+Ι个关键帧的起始位置(开头位置)为第q个切片的结束位置。
[0134]所述服务器还包括:
[0135]第三获取单元、第一配置单元、第四确定单元、第二配置单元;其中,
[0136]所述第三获取单元,用于从当前原始直播源码流中获取节目关联表PAT和节目映射表PMT ;
[0137]所述第一配置单元,用于配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
[0138]其中,PAT表中主要包括节目频道号码和每一个频道对应的PMT的PID,码;PMT表中包括有各个频道的所有视频流Video数据的PID、所有音
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1