CN105282627A - 一种获取直播视频切片的方法及服务器 - Google Patents

一种获取直播视频切片的方法及服务器 Download PDF

Info

Publication number
CN105282627A
CN105282627A CN201410351477.4A CN201410351477A CN105282627A CN 105282627 A CN105282627 A CN 105282627A CN 201410351477 A CN201410351477 A CN 201410351477A CN 105282627 A CN105282627 A CN 105282627A
Authority
CN
China
Prior art keywords
key frame
section
duration
live source
time length
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.)
Granted
Application number
CN201410351477.4A
Other languages
English (en)
Other versions
CN105282627B (zh
Inventor
周美艳
陈光亮
王芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhongxing Software Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201410351477.4A priority Critical patent/CN105282627B/zh
Priority to PCT/CN2015/074766 priority patent/WO2016011823A1/zh
Publication of CN105282627A publication Critical patent/CN105282627A/zh
Application granted granted Critical
Publication of CN105282627B publication Critical patent/CN105282627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种获取直播视频切片的方法,所述方法包括:获取切片的基准时长;确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;获取当前原始直播源的第q个关键帧;确定第q个关键帧的起始位置为第q个切片的起始位置;在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。本发明还公开了一种服务器。

Description

一种获取直播视频切片的方法及服务器
技术领域
本发明涉及直播视频流媒体技术,具体涉及一种获取直播视频切片的方法及服务器。
背景技术
HLS(HTTPLiveStreaming)协议为基于超文本传输协议(HTTP,HypertextTransferProtocol)的动态码流自适应协议,是由苹果公司提出的一种流媒体传输协议。近年来,HLS协议在流媒体领域得到了广泛应用,主要由于其采用HTTP协议传输,可以根据网络带宽自适应地调整码率,如允许网络侧的服务器为同一节目内容存放多个不同码率的多媒体流,而终端可根据实际的网络下载速度自适应地调整所要下载的多媒体流的码率;在网络带宽紧张时,终端可通过降低码率实现不间断的播放。
相对于其它常见的流媒体直播协议,例如路由选择表维护协议(RTMP,RoutingTableMaintenanceProtocol)、实时流传输协议(RTSP,RealTimeStreamingProtocol)、微软媒体服务器协议(MMS,MicrosoftMediaServerProtocol)等,利用HLS协议对视频进行直播,最大的不同在于,终端获取到的多媒体数据并不是一个完整的数据流,而是一个个记录有数据的切片,这是因为:在HLS协议中,服务器端将直播数据流存储为连续的、很短时长的媒体文件(动态图像专家组MPEG-传输流TS格式),这些媒体文件就被称为切片,而客户端只需要不断的下载并播放这些切片,即可形成直播视频。其中,因为服务器端总是会将最新的直播数据生成新切片,客户端只需不停的按顺序播放从服务器获取到的切片,就实现了直播。
目前可采用以下两种方式生成符合HLS协议的切片:一种方式是在多媒体数据的转码过程中直接生成符合要求的切片;第二种方式是将转码与分片两个过程独立开来,先将直播数据进行转码,再对转码后的文件进行切片;其中,第一种方式要求转码器必须能够支持切片功能,对转码器的设计要求较高,不利于实现;第二种方式由于其将转码、分片独立开来,使得实现较为容易。所以,目前第二种生成切片的方法更受欢迎,但是其也存在以下问题:由于生成的切片长度固定,使得切片边缘可能会存在有不完整数据或者冗余数据,导致切片的直播画面出现较慢且相邻两切片之间的直播画面存在有不连续的情况,降低了用户观看体验。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种获取直播视频切片的方法及服务器,能够解决切片的直播画面出现较慢、相邻两切片之间的直播画面存在有不连续等情况,从而提高直播视频播放流畅性、播放画面质量,提升用户观看体验。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种获取直播视频切片的方法,所述方法包括:
获取切片的基准时长;
确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
获取当前原始直播源的第q个关键帧;
确定第q个关键帧的起始位置为第q个切片的起始位置;
在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
上述方案中,所述方法还包括:
在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置,在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
上述方案中,所述获取切片的基准时长,
包括:
获取当前原始直播源的关键帧长度;
获取用于缓存当前原始直播源的视频缓存检验器VBV长度;
求取关键帧长度、VBV长度及第一预设阈值之和;
将所求取的和值作为切片的基准时长。
上述方案中,在获取切片的基准时长之前,所述方法包括:
接收当前原始直播源;
转换当前原始直播源为实时传输协议RTP码流,并标识出所述RTP码流的关键帧信息;
对所述RTP码流进行缓存、排序、解析处理;
删除经处理后的RTP码流中的RTP包头,形成RTP净载荷数据;
在所述RTP净载荷数据中,依据关键帧信息,获取第q个关键帧。
上述方案中,所述方法还包括:
从当前原始直播源中获取节目关联表PAT和节目映射表PMT,配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
当前原始直播源存在有至少两种码率时,配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码率切片的切换。
本发明实施例还提供了一种服务器,所述服务器包括:
第一获取单元,用于获取切片的基准时长;
第一确定单元,用于确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
第二获取单元,用于获取当前原始直播源的第q个关键帧;
第二确定单元,用于确定第q个关键帧的起始位置为第q个切片的起始位置;
第三确定单元,用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
第一切分单元,用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
上述方案中,
所述第三确定单元,还用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置;
相应的,所述第一切分单元,还用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
上述方案中,所述第一获取单元,还用于:
获取当前原始直播源的关键帧长度;
获取用于缓存当前原始直播源的视频缓存检验器VBV长度;
求取关键帧长度、VBV长度及第一预设阈值之和;
将所求取的和值作为切片的基准时长。
上述方案中,所述服务器还包括:
第一接收单元,用于接收当前原始直播源;
第一转换单元,用于转换当前原始直播源为实时传输协议RTP码流,并标识出所述RTP码流的关键帧信息;
第一处理单元,用于对所述RTP码流进行缓存、排序、解析处理;
第一删除单元,用于删除经所述第一处理单元处理后的RTP码流中的RTP包头,形成RTP净载荷数据;
相应的,
所述第二获取单元,还用于在所述RTP净载荷数据中,依据关键帧信息,获取第q个关键帧。
上述方案中,所述服务器还包括:
第三获取单元、第一配置单元、第四确定单元、第二配置单元;其中,
所述第三获取单元,用于从当前原始直播源中获取节目关联表PAT和节目映射表PMT;
所述第一配置单元,用于配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
所述第四确定单元,用于确定出当前原始直播源存在有至少两种码率时,触发所述第二配置单元;
所述第二配置单元,用于配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码率切片的切换。
本发明实施例提供的获取直播视频切片的方法及服务器,所述方法包括:获取切片的基准时长;确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;获取当前原始直播源的第q个关键帧;确定第q个关键帧的起始位置为第q个切片的起始位置;在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。利用本发明实施例的技术方案,可保证切片长度在基准时长左右波动,进而能够解决切片的直播画面出现较慢、相邻两切片之间的直播画面存在有不连续等情况,从而可提高直播视频播放流畅性、播放画面质量,提升用户观看体验。
附图说明
图1为本发明实施例提供的获取直播视频切片的方法流程示意图;
图2为本发明实施例提供的应用场景一示意图;
图3为本发明实施例提供的获取直播视频切片的方法的一具体实现流程示意图;
图4为本发明实施例提供的应用场景二示意图;
图5为本发明实施例提供的服务器的组成示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为本发明实施例提供的获取直播视频切片的方法流程示意图;如图1所示,所述方法包括:
步骤11:获取切片的基准时长;
这里,网络侧、具体是网络侧服务器接收原始直播源码流、如接收直播源MPEG系统发送来的MPEG-TS码流,因为原始直播源码流是直播源系统源源不断发送至服务器的,所以服务器对每次接收的原始直播源码流的处理均相同,请参见以下描述。
服务器将MPEG-TS码流转换成实时传输协议(RTP,Real-timeTransportProtocol)码流,并标识出RTP码流中的关键帧信息,对RTP码流进行缓存、排序、解析等处理;删除经上述处理后的RTP码流的RTP包头,得到RTP净载荷数据;其中,所述关键帧信息包括:关键帧帧头、帧尾;获取RTP码流中的关键帧长度,以及用于缓存该码流的视频缓存检验器(VBV,VideoBufferingVerifier)的长度,并将关键帧长度、VBV长度以及第一阈值三者求和,求和结果作为切片的基准时长,也就是说,如果关键帧长度为KP、VBV长度为V、第一阈值为A,那么切片的基准时长BS=KP+V+A。
在对RTP码流进行缓存、排序、解析等处理的过程中,如果原始直播源码流已被加扰(去扰),本方案中还需要去扰(加扰);如果在后续切分成切片时还需要对切片加密,本方案中还需要进行加密处理,依据具体应用情况而处理。
其中,所述第一阈值A为预先设置的,可根据MPEG-TS码流的实际长度而自行设定,例如,可以预先设置A为1,也可以预先设置为2;所述基准时长、关键帧长度、V、A的单位均可以为秒s、或分min、或时hour等,通常取为秒。
其中,所述关键帧也可以称之为I帧;在RTP码流中的标识出关键帧信息的目的在步骤13中说明。
步骤12:确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
这里,所述第一预设时长根据实际应用情况而设置;以第一预设时长为时长B为例,计算基准时长BS与B之和,并将该两者之和作为第一时长;和/或,计算基准时长BS与B之差,将该两者之差作为第二时长。
步骤13:获取当前原始直播源的第q个关键帧;
这里,依据对RTP码流作出的关键帧信息,识别出第q个关键帧;其中,q为正整数。
步骤14:确定第q个关键帧的起始位置为第q个切片的起始位置;
步骤15:在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
这里,在第q个关键帧起始位置的第一时长和/或第二时长内,查找是否存在有第q+1个关键帧,查找到时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置。
步骤16:在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
这里,在第q个关键帧起始位置及结束位置处进行切分,形成第q个切片;也就是说,第q个切片的起始位置为第q个关键帧起始位置,第q个切片的结束位置为第q+1个关键帧起始位置。
优选的,在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置,在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
举个例子,以基准时长BS=10s、第一预设时长B=1s为例,第一时长为9s、第二时长为11s;在RTP净载荷数据中,依据对RTP码流作出的关键帧信息,识别出第1个关键帧,以第1个关键帧的起始位置为当前原始直播源的第1个切片的起始位置,以第1个关键帧起始位置为0s,从0s位置处查找至9s-11s时长处,在该9s-11s的时长内,确定存在有第2个关键帧时,将第2个关键帧的起始位置作为第1个切片的结束位置,在第1个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第1个切片;同时,第2个关键帧的起始位置作为当前原始直播源的第2个切片的起始位置,以第2个切片起始位置为0s,从0s位置处再查找至9s-11s时长处,在该9s-11s的时长内,确定存在有第3个关键帧时,将第3个关键帧的起始位置作为第2个切片的结束位置,在第2个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第2个切片;以此类推,服务器对每次接收到的原始直播源进行切片的切分。也就是说,RTP净载荷数据中,第q个关键帧的起始位置(开头位置)为第q个切片的起始位置(开头位置),第q+1个关键帧的起始位置为第q个切片的结束位置。
由此可见,上述方案中,可将一个关键帧切分至同一个切片中去,本方案中,以关键帧所在位置为切分位置、或以距离第q个关键帧起始位置为基准时长的位置为切分位置,对原始直播源码流进行切分,能够保证HLS切片长度在基准时长左右波动,使得关键帧切分至同一个切片中,解决了切片边缘存在数据不完整或者数据冗余的现象,从而解决了切片的直播画面出现较慢、相邻两切片之间的直播画面存在有不连续等问题,提高了直播视频播放流畅性、播放画面质量,提升了用户观看体验。
在对原始直播源码流进行切片的切分时,被切分的切片还需要满足:
1)从直播源码流中获取节目关联表(PAT,ProgramAssociationTable)PAT和节目映射表(PMT,ProgramMapTable),并配置PAT和PMT在每个切片的初始位置,以方便切片所承载节目内容的播放;
其中,PAT表中主要包括节目频道号码和每一个频道对应的PMT的包识别码(PID,PacketIdentifier)号码;PMT表中包括有各个频道的所有视频流Video数据的PID、所有音频流Audio数据的PID及其他PID;当终端请求播放当前频道的某个Video时,通过该Video的PID即可将该Video数据从该频道中筛选出来;同时,PAT和PMT在原始直播源码流中周期性出现,以方便终端在请求播放视频时可随时接入所述播放视频的码流;
上述方案中,对于PAT和PMT的描述具体请参见现有相关说明,这里不再赘述。在本方案中,PAT和PMT配置在每个切片的开头位置,能够实现对每个切片的独立播放。
2)当确定出当前原始直播源存在有至少两种码率时,配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码流切片的切换,也就是,为了方便直播视频在不同码率间的切换。
由于HLS协议中,每个切片(也可称为TS切片)均具有自身所支持的播放码率、序号标识、形成时间等信息,所以通过对索引文件(m3u8格式)的查找,可查找到具有同一个播放码率的所有切片,该切片按照切片序号的大小进行排序。
例如,以原始直播源码流为单码率(1024kbps)为例,直播单码率文件包括:主索引文件、子索引文件及TS切片;其中,主索引文件命名为index.m3u8、子索引文件以码率命名为1024.m3u8(码率是1024kbps)、TS切片命名为$time-1024-$seq.ts;其中:$time表示切片的形成时间,1024表示切片码率是1024kbps,$seq表示切片的序号;播放码率相同的切片需要放在同一个子索引文件下。同时,子索引文件1024.m3u8的文件内容能够表征出其所能够索引到的所有切片的名称,例如,当配置子索引文件1024.m3u8最多可索引3个TS切片时,其可索引到命名为20140521160000-1024-1.ts的切片1、命名为20140521160000-1024-2.ts的切片2、及命名为20140521160000-1024-2.ts的切片3。原始直播源码流为多码率与上述原始直播源码流为单码率的描述相类似,只不过在多码率原始直播源码流中,子索引文件的个数等于原始直播源码流所采用的码率的个数。
由于本发明实施例涉及到的是直播多媒体码流,随着服务器对原始直播源码流的不断获取,对原始直播源码流的不断切分,新切片不断形成,所以需要主、子索引文件随着新切片的形成而不断发生更新,例如,1min内服务器可将原始直播源码流切分为6个TS切片,那么子索引文件每10s更新一次,更新为对6个最新TS切片的索引,并删除对之前6个TS切片的索引,以适应HLS直播规范的要求;该过程可视为对切片的回滚过程。
上述方案中,对于切片的回滚,及通过对主、子索引文件查找到某个切片的具体过程请参见HLS协议的相关说明,这里不再赘述。
图2为本发明实施例的应用场景一示意图;图3为本发明实施例提供的获取直播视频切片的方法的一具体实现流程示意图;结合图2与图3,对本发明实施例作进一步描述。
在图2中,以服务器位于单节点、原始直播源码流为单码率、第一阈值为A=1s、第一预设时长B=1s、第一时长为9s、第二时长为11s为例:
步骤301:节点、具体是位于该节点的服务器接收MPEG系统发送来的原始直播源MPEG-TS码流;
其中,所述服务器支持码流的用户数据报协议(UDP,UserDataProtocol)单播和UDP组播。
步骤302:服务器将接收到的MPEG-TS码流转换成RTP码流;
这里,服务器将对MPEG-TS码流增加扩展的RTP包头,确定出VBV的长度、及码流的关键帧信息如关键帧帧头、帧尾、长度等;获取码流的PAT和PMT。
步骤303:服务器对RTP码流进行缓存、排序、解析等处理,以方便后续终端的播放;
这里,在进行数据缓存、排序、解析等处理后,还可以对数据进行加扰、去扰、加密等处理,视具体应用情况而定。
步骤304:求取基准时长BS;
这里,BS=关键帧长度KP+VBV长度V+1。
步骤305:去掉RTP码流的包头,得到RTP净载荷数据;
步骤306:在RTP净载荷数据中,获取当前原始直播源的第q个关键帧;确定第q个关键帧的起始位置为第q个切片的起始位置;在第q个关键帧起始位置的第一时长和/或第二时长内,查找是否存在有第q+1个关键帧;
查找到时,执行步骤307;否则执行步骤308。
步骤307:确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片,继续执行步骤309;
这里,RTP净载荷数据中,第q个关键帧的开头位置为第q个切片的开头位置,第q+1个关键帧的开头位置为第q个切片的结束位置;具体如前所述,此处不再赘述。
步骤308:将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置,在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片,继续执行步骤309;
优选的,在将RTP净载荷数据切分为切片后,需要将码流的PAT和PMT配置在每个切片开头位置,以便能够实现每个切片的独立播放。
步骤309:服务器依据HLS协议,为形成的切片生成子索引文件;
这里,由于原始直播源为单码率,所以子索引文件只有一个。
步骤310:服务器将形成的切片、切片的主索引文件、子索引文件刷新到磁盘,以供存储;
这里,在接收到MPEG-TS码流时,服务器依据HLS协议生成主索引文件。
步骤311:当终端上报有对频道A当前10s内的视频播放请求时,终端向节点中的下载服务器(DLS,DownLoadServer)请求主索引文件;DLS读取磁盘中的频道A的主索引文件,并通过HTTP协议将文件内容发送至终端;终端向DLS请求子索引文件;DLS读取磁盘中的频道A的当前10s内视频所对应的子索引文件,并通过HTTP协议将文件内容发送至终端;终端向DLS请求对应于该子索引文件的TS切片文件;DLS读取磁盘中的承载频道A的当前10s内视频的TS切片文件,并通过HTTP协议将文件内容发送至终端,终端播放该TS切片,以供用户观看。
图4为本发明实施例提供的应用场景二示意图;如图4所示,本方案中的服务器还可以应用于多节点的情况;其中,每个节点均可与终端相连接,以方便终端请求直播数据,每个节点均包括服务器、下载服务器;进一步的,中心节点、具体是中心节点的服务器接收MPEG-TS码流,并将MPEG-TS码流传输至区域节点、具体是区域节点的服务器;区域节点的服务器将MPEG-TS码流传输至边缘节点;在位于三个节点中的相应服务器接收到直播源码流后,依据前述步骤302~步骤311进行处理,这里不再赘述。
基于上述获取直播视频切片的方法,本发明实施例还提供了一种服务器,图5为本发明实施例提供的服务器的组成示意图;如图5所示,所述服务器包括:第一获取单元500、第一确定单元501、第二获取单元502、第二确定单元503、第三确定单元504、第一切分单元505;
所述服务器还包括第一接收单元、第一转换单元、第一处理单元及第一删除单元;其中,
第一获取单元500,用于获取切片的基准时长;
这里,所述服务器、具体是第一接收单元接收原始直播源码流如接收来自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码流进行缓存、排序、解析等处理的过程中,如果原始直播源码流已被加扰(去扰),本方案中第一处理单元还需要执行去扰(加扰)操作;如果在后续切分成切片时还需要对切片加密,第一处理单元还需要进行加密处理。
第一确定单元501,用于确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
这里,以第一预设时长为时长B为例,第一确定单元501计算基准时长BS与B之和,并将该两者之和作为第一时长;和/或,计算基准时长BS与B之差,将该两者之差作为第二时长。
第二获取单元502,用于获取当前原始直播源的第q个关键帧;
这里,第二获取单元502在RTP净载荷数据中,依据关键帧信息,识别出第q个关键帧。
第二确定单元503,用于确定第q个关键帧的起始位置为第q个切片的起始位置;
第三确定单元504,用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
这里,第三确定单元504在第q个关键帧起始位置的第一时长和/或第二时长内,查找是否存在有第q+1个关键帧,查找到时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置。
第一切分单元505,用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
这里,第一切分单元505在第q个关键帧起始位置及结束位置处进行切分,形成第q个切片;也就是说,第q个切片的起始位置为第q个关键帧起始位置,第q个切片的结束位置为第q+1个关键帧起始位置。
所述第三确定单元504,还用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置;
相应的,所述第一切分单元505,还用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
举个例子,以基准时长BS=10s、第一预设时长B=1s为例,第一时长为9s、第二时长为11s;在RTP净载荷数据中,第二获取单元502依据对RTP码流作出的关键帧信息,识别出第1个关键帧,第二确定单元503确定第1个关键帧的起始位置为当前原始直播源的第1个切片的起始位置,第三确定单元504以第1个关键帧起始位置为0s,从0s位置处查找至9s-11s时长处,在该9s-11s的时长内,确定存在有第2个关键帧时,将第2个关键帧的起始位置作为第1个切片的结束位置,第一切分单元505在第1个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第1个切片;同时,第二确定单元503确定第2个关键帧的起始位置为当前原始直播源的第2个切片的起始位置,第三确定单元504以第2个切片起始位置为0s,从0s位置处再查找至9s-11s时长处,在该9s-11s的时长内,确定存在有第3个关键帧时,将第3个关键帧的起始位置作为第2个切片的结束位置,第一切分单元505在第2个切片的起始位置及结束位置处进行切分,形成当前原始直播源的第2个切片;以此类推,对每次接收到的原始直播源进行切片的切分。
由此可见,上述方案中,确定第q个关键帧的开头位置为第q个切片的起始位置(开头位置),确定第q+1个关键帧的起始位置(开头位置)为第q个切片的结束位置。
所述服务器还包括:
第三获取单元、第一配置单元、第四确定单元、第二配置单元;其中,
所述第三获取单元,用于从当前原始直播源码流中获取节目关联表PAT和节目映射表PMT;
所述第一配置单元,用于配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
其中,PAT表中主要包括节目频道号码和每一个频道对应的PMT的PID,码;PMT表中包括有各个频道的所有视频流Video数据的PID、所有音频流Audio数据的PID及其他PID;当终端请求播放当前频道的某个Video时,通过该Video的PID即可将该Video数据从该频道中筛选出来;同时,PAT和PMT在原始直播源码流中周期性出现,以方便终端在请求播放视频时可随时接入所述播放视频的码流;
所述第四确定单元,用于确定出当前原始直播源存在有至少两种码率时,触发所述第二配置单元;
所述第二配置单元,用于配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码率切片的切换。
在本方案中,PAT和PMT配置在每个切片的开头位置,能够实现对每个TS切片的独立播放。
上述方案中,以关键帧所在位置为切分位置、或以距离第q个关键帧起始位置为基准时长的位置为切分位置,对原始直播源码流进行切分,够保证HLS切片长度在基准时长左右波动,使得关键帧切分至同一个切片中,解决了切片边缘存在数据不完整或者数据冗余的现象,从而解决了切片的直播画面出现较慢、相邻两切片之间的直播画面存在有不连续等问题,提高了直播视频播放流畅性、播放画面质量,提升了用户观看体验。
本领域技术人员应当理解,图5中所示的服务器中的各处理单元的实现功能可参照前述获取直播视频切片的方法的相关描述而理解。本领域技术人员应当理解,图5所示的服务器中各处理单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
在实际应用中,所述第一获取单元500、第一确定单元501、第二获取单元502、第二确定单元503、第三确定单元504、第一切分单元505均可由中央处理单元(CPU,CentralProcessingUnit)、或数字信号处理(DSP,DigitalSignalProcessor)、或微处理器(MPU,MicroProcessorUnit)、或现场可编程门阵列(FPGA,FieldProgrammableGateArray)等来实现;所述CPU、DSP、MPU、FPGA均可内置于节点中、具体是服务器中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种获取直播视频切片的方法,其特征在于,所述方法包括:
获取切片的基准时长;
确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
获取当前原始直播源的第q个关键帧;
确定第q个关键帧的起始位置为第q个切片的起始位置;
在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置,在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
3.根据权利要求1所述的方法,其特征在于,所述获取切片的基准时长,包括:
获取当前原始直播源的关键帧长度;
获取用于缓存当前原始直播源的视频缓存检验器VBV长度;
求取关键帧长度、VBV长度及第一预设阈值之和;
将所求取的和值作为切片的基准时长。
4.根据权利要求1至3任一项所述的方法,其特征在于,在获取切片的基准时长之前,所述方法包括:
接收当前原始直播源;
转换当前原始直播源为实时传输协议RTP码流,并标识出所述RTP码流的关键帧信息;
对所述RTP码流进行缓存、排序、解析处理;
删除经处理后的RTP码流中的RTP包头,形成RTP净载荷数据;
在所述RTP净载荷数据中,依据关键帧信息,获取第q个关键帧。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从当前原始直播源中获取节目关联表PAT和节目映射表PMT,配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
当前原始直播源存在有至少两种码率时,配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码率切片的切换。
6.一种服务器,其特征在于,所述服务器包括:
第一获取单元,用于获取切片的基准时长;
第一确定单元,用于确定基准时长与第一预设时长之和为第一时长,和/或确定基准时长与第一预设时长之差为第二时长;
第二获取单元,用于获取当前原始直播源的第q个关键帧;
第二确定单元,用于确定第q个关键帧的起始位置为第q个切片的起始位置;
第三确定单元,用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为存在有第q+1个关键帧时,确定所述第q+1个关键帧的起始位置为第q个切片的结束位置;
第一切分单元,用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片;其中,q为正整数。
7.根据权利要求6所述的服务器,其特征在于,
所述第三确定单元,还用于在第q个关键帧起始位置的第一时长和/或第二时长内,确定为没有存在第q+1个关键帧时,将距离第q个关键帧起始位置为基准时长的位置为第q个切片的结束位置;
相应的,所述第一切分单元,还用于在第q帧起始位置及结束位置处,对当前原始直播源进行切分,形成第q个切片。
8.根据权利要求6所述的服务器,其特征在于,所述第一获取单元,还用于:
获取当前原始直播源的关键帧长度;
获取用于缓存当前原始直播源的视频缓存检验器VBV长度;
求取关键帧长度、VBV长度及第一预设阈值之和;
将所求取的和值作为切片的基准时长。
9.根据权利要求6至8任一项所述的服务器,其特征在于,所述服务器还包括:
第一接收单元,用于接收当前原始直播源;
第一转换单元,用于转换当前原始直播源为实时传输协议RTP码流,并标识出所述RTP码流的关键帧信息;
第一处理单元,用于对所述RTP码流进行缓存、排序、解析处理;
第一删除单元,用于删除经所述第一处理单元处理后的RTP码流中的RTP包头,形成RTP净载荷数据;
相应的,
所述第二获取单元,还用于在所述RTP净载荷数据中,依据关键帧信息,获取第q个关键帧。
10.根据权利要求9所述的服务器,其特征在于,所述服务器还包括:
第三获取单元、第一配置单元、第四确定单元、第二配置单元;其中,
所述第三获取单元,用于从当前原始直播源中获取节目关联表PAT和节目映射表PMT;
所述第一配置单元,用于配置PAT和PMT至每个切片的初始位置,以方便切片所承载节目内容的播放;
所述第四确定单元,用于确定出当前原始直播源存在有至少两种码率时,触发所述第二配置单元;
所述第二配置单元,用于配置不同码率的切片所承载的节目内容的长度为相同,以方便不同码率切片的切换。
CN201410351477.4A 2014-07-22 2014-07-22 一种获取直播视频切片的方法及服务器 Active CN105282627B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410351477.4A CN105282627B (zh) 2014-07-22 2014-07-22 一种获取直播视频切片的方法及服务器
PCT/CN2015/074766 WO2016011823A1 (zh) 2014-07-22 2015-03-20 获取直播视频切片的方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410351477.4A CN105282627B (zh) 2014-07-22 2014-07-22 一种获取直播视频切片的方法及服务器

Publications (2)

Publication Number Publication Date
CN105282627A true CN105282627A (zh) 2016-01-27
CN105282627B CN105282627B (zh) 2019-09-10

Family

ID=55150816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410351477.4A Active CN105282627B (zh) 2014-07-22 2014-07-22 一种获取直播视频切片的方法及服务器

Country Status (2)

Country Link
CN (1) CN105282627B (zh)
WO (1) WO2016011823A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763960A (zh) * 2016-03-01 2016-07-13 青岛海信传媒网络技术有限公司 一种网络视频播放的方法和装置
CN106303671A (zh) * 2016-08-16 2017-01-04 任晋军 一种流媒体的播放方法
CN106330922A (zh) * 2016-08-26 2017-01-11 天脉聚源(北京)教育科技有限公司 一种视频碎片命名方法及装置
CN106657123A (zh) * 2016-12-30 2017-05-10 杭州当虹科技有限公司 一种基于hls协议的直播时移方案
CN107579920A (zh) * 2017-09-25 2018-01-12 盛科网络(苏州)有限公司 数据流的传输方法、装置、存储介质及处理器
CN107659538A (zh) * 2016-07-25 2018-02-02 北京优朋普乐科技有限公司 一种视频处理的方法及设备
CN109218745A (zh) * 2018-10-31 2019-01-15 网宿科技股份有限公司 一种直播方法、服务器、客户端及可读存储介质
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法
CN109525901A (zh) * 2018-11-27 2019-03-26 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN109525893A (zh) * 2018-11-20 2019-03-26 广州易方信息科技股份有限公司 基于切片文件时长阈值的视频切片方法
CN110087142A (zh) * 2019-04-16 2019-08-02 咪咕文化科技有限公司 一种视频切片方法、终端及存储介质
CN110996129A (zh) * 2019-12-20 2020-04-10 杭州当虹科技股份有限公司 一种支持mpeg-dash输出切片号连续的方法
CN113259694A (zh) * 2021-04-22 2021-08-13 北京金山云网络技术有限公司 数据切片方法、装置和电子设备
CN114339291A (zh) * 2021-12-31 2022-04-12 杭州当虹科技股份有限公司 流媒体视频缩放播放的方法
CN115550746A (zh) * 2022-10-11 2022-12-30 杭州视洞科技有限公司 基于网络摄像机的hls低延迟方法及媒体分发服务系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107968948A (zh) * 2016-10-19 2018-04-27 北京新唐思创教育科技有限公司 在线视频播放方法及系统
CN114979721B (zh) * 2022-05-18 2024-02-23 咪咕文化科技有限公司 视频切片方法、装置、设备及存储介质
CN115119009B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频对齐方法、视频编码方法、装置及存储介质
CN115134622B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频数据对齐方法、装置、设备及存储介质
CN115174578B (zh) * 2022-07-25 2023-10-20 上海网达软件股份有限公司 一种基于Kubernetes的点播并行转码方法、装置及存储介质
CN117676273A (zh) * 2022-08-29 2024-03-08 抖音视界有限公司 视频处理方法、装置及服务器
CN116828229B (zh) * 2023-08-30 2023-11-24 湖南马栏山视频先进技术研究院有限公司 一种用于音视频流的传输方法及系统
CN117156172B (zh) * 2023-10-30 2024-01-16 江西云眼视界科技股份有限公司 视频切片上报方法、系统、存储介质及计算机

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645927A (zh) * 2009-09-02 2010-02-10 中兴通讯股份有限公司 一种媒体文件的切片系统、方法及切片服务器
CN102932670A (zh) * 2012-11-29 2013-02-13 百视通网络电视技术发展有限责任公司 一种流媒体切片方法及系统
CN103037203A (zh) * 2012-12-11 2013-04-10 浙江宇视科技有限公司 一种基于块存储的索引恢复方法和装置
CN103442259A (zh) * 2013-08-21 2013-12-11 杭州浦禾通信技术有限公司 媒体数据的重组方法和装置
CN103873956A (zh) * 2012-12-12 2014-06-18 中国电信股份有限公司 媒体文件播放方法、系统、播放器、终端及媒体存储平台

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645927A (zh) * 2009-09-02 2010-02-10 中兴通讯股份有限公司 一种媒体文件的切片系统、方法及切片服务器
CN102932670A (zh) * 2012-11-29 2013-02-13 百视通网络电视技术发展有限责任公司 一种流媒体切片方法及系统
CN103037203A (zh) * 2012-12-11 2013-04-10 浙江宇视科技有限公司 一种基于块存储的索引恢复方法和装置
CN103873956A (zh) * 2012-12-12 2014-06-18 中国电信股份有限公司 媒体文件播放方法、系统、播放器、终端及媒体存储平台
CN103442259A (zh) * 2013-08-21 2013-12-11 杭州浦禾通信技术有限公司 媒体数据的重组方法和装置

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763960B (zh) * 2016-03-01 2019-01-01 聚好看科技股份有限公司 一种网络视频播放的方法和装置
CN105763960A (zh) * 2016-03-01 2016-07-13 青岛海信传媒网络技术有限公司 一种网络视频播放的方法和装置
CN107659538A (zh) * 2016-07-25 2018-02-02 北京优朋普乐科技有限公司 一种视频处理的方法及设备
CN106303671B (zh) * 2016-08-16 2019-04-16 任晋军 一种流媒体的播放方法
CN106303671A (zh) * 2016-08-16 2017-01-04 任晋军 一种流媒体的播放方法
CN106330922A (zh) * 2016-08-26 2017-01-11 天脉聚源(北京)教育科技有限公司 一种视频碎片命名方法及装置
CN106330922B (zh) * 2016-08-26 2019-08-27 天脉聚源(北京)教育科技有限公司 一种视频碎片命名方法及装置
CN106657123A (zh) * 2016-12-30 2017-05-10 杭州当虹科技有限公司 一种基于hls协议的直播时移方案
CN107579920A (zh) * 2017-09-25 2018-01-12 盛科网络(苏州)有限公司 数据流的传输方法、装置、存储介质及处理器
CN109218745A (zh) * 2018-10-31 2019-01-15 网宿科技股份有限公司 一种直播方法、服务器、客户端及可读存储介质
CN109218745B (zh) * 2018-10-31 2021-07-23 网宿科技股份有限公司 一种直播方法、服务器、客户端及可读存储介质
CN109525893A (zh) * 2018-11-20 2019-03-26 广州易方信息科技股份有限公司 基于切片文件时长阈值的视频切片方法
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法
CN109525901A (zh) * 2018-11-27 2019-03-26 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
US11601630B2 (en) 2018-11-27 2023-03-07 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video processing method, electronic device, and non-transitory computer-readable medium
WO2020108083A1 (zh) * 2018-11-27 2020-06-04 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN109525901B (zh) * 2018-11-27 2020-08-25 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN110087142A (zh) * 2019-04-16 2019-08-02 咪咕文化科技有限公司 一种视频切片方法、终端及存储介质
CN110087142B (zh) * 2019-04-16 2022-01-25 咪咕文化科技有限公司 一种视频切片方法、装置、终端及存储介质
CN110996129A (zh) * 2019-12-20 2020-04-10 杭州当虹科技股份有限公司 一种支持mpeg-dash输出切片号连续的方法
CN113259694A (zh) * 2021-04-22 2021-08-13 北京金山云网络技术有限公司 数据切片方法、装置和电子设备
CN114339291A (zh) * 2021-12-31 2022-04-12 杭州当虹科技股份有限公司 流媒体视频缩放播放的方法
CN114339291B (zh) * 2021-12-31 2024-05-28 杭州当虹科技股份有限公司 流媒体视频缩放播放的方法
CN115550746A (zh) * 2022-10-11 2022-12-30 杭州视洞科技有限公司 基于网络摄像机的hls低延迟方法及媒体分发服务系统

Also Published As

Publication number Publication date
CN105282627B (zh) 2019-09-10
WO2016011823A1 (zh) 2016-01-28

Similar Documents

Publication Publication Date Title
CN105282627A (zh) 一种获取直播视频切片的方法及服务器
JP6648223B2 (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
US10389783B2 (en) Virtualization in adaptive stream creation and delivery
EP3417626B1 (en) Playback synchronization among adaptive bitrate streaming clients
US9332051B2 (en) Media manifest file generation for adaptive streaming cost management
US20230269423A1 (en) Fast Tune-In for Low Latency Streaming
US20170118263A1 (en) Multicast streaming
JP2015136060A (ja) 通信装置、通信データ生成方法、および通信データ処理方法
WO2018103696A1 (zh) 媒体文件的播放方法、服务端、客户端及系统
WO2014208377A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
CN105049873A (zh) 一种流媒体传输方法、装置和系统
US20150095483A1 (en) Communications terminal, transfer terminal, and content publication method
EP2538629A1 (en) Content delivering method
US10750248B1 (en) Method and apparatus for server-side content delivery network switching
KR101397183B1 (ko) 스트리밍 서비스에서의 재생 목록 파일 관리 방법 및 그 장치
US11895350B2 (en) Techniques for providing a content stream based on a delivered stream of content
CN103796035A (zh) 一种处理分段节目的方法、服务器及客户端设备
KR102123208B1 (ko) 콘텐츠 공급 장치, 콘텐츠 공급 방법, 프로그램, 단말 장치, 및 콘텐츠 공급 시스템
CN114124941B (zh) m3u8格式文件下载方法、播放方法及m3u8格式文件下载系统
JP6009501B2 (ja) データセグメントのオプションのブロードキャスト配信によるストリーミング
CN115756329A (zh) 一种数据处理方法及装置、存储介质
JP2020129734A (ja) コンテンツ生成装置、受信装置、及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190812

Address after: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Applicant after: Nanjing Zhongxing New Software Co., Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Applicant before: ZTE Corporation

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant