一种在视频直播系统中设置关键帧的方法及装置制造方法

文档序号:7800110阅读:127来源:国知局
一种在视频直播系统中设置关键帧的方法及装置制造方法
【专利摘要】本发明公开了一种在视频直播系统中设置关键帧的方法及装置,属于互联网通讯领域。该方法包括:将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,第一预设阈值小于第二预设阈值;如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频;如果存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为I帧;如果不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。本发明提高了直播视频的压缩率,进而节省了码率。
【专利说明】一种在视频直播系统中设置关键帧的方法及装置
【技术领域】
[0001]本发明涉及互联网通讯领域,特别涉及一种在视频直播系统中设置关键帧的方法及装置。
【背景技术】
[0002]在视频直播系统中,正在直播的视频依赖于网络传输给用户。由于观看该直播视频的用户可以随时接入该网络,并且当该网络状况不好时会出现丢包的情况,所以为了使新接入网络的用户快速观看到该直播视频以及丢包时快速恢复该直播视频,需要在该视频直播系统中设置关键帧。
[0003]目前,提供了一种在视频直播系统中设置关键帧的方法,具体可以为:获取当前录制的视频帧,以及获取当前录制的视频帧之前且离当前录制的视频帧最近的关键帧,获取当前录制的视频帧与该关键帧之间的视频帧的个数,如果该个数等于预设阈值,则将当前录制的视频巾贞设置为I IfciUintra picture,内部巾贞)关键中贞。
[0004]其中,I帧包括该帧图像的所有信息,并且终端对I帧进行解码时不依赖于其他的视频帧,所以当新用户接入网络时,终端接收到I帧关键帧后对该I帧立即进行解码就可以快速地观看该直播视频;并且当出现丢包的情况时,终端接收到I帧关键帧后对该I帧进行解码就可以快速地观看该直播视频,并且当后续接收到视频帧时,后续的视频帧参考该I帧关键帧进行解码,进而恢复该直播视频。
[0005]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0006]由于I帧包括该帧图像的所有信息,所以I帧的压缩率最低,而现有技术将关键帧都设置为I巾贞,降低了直播视频的压缩率,进而浪费了码率。

【发明内容】

[0007]为了解决现有技术的问题,本发明实施例提供了一种在视频直播系统中设置关键帧的方法及装置。所述技术方案如下:
[0008]一方面,提供了一种在视频直播系统中设置关键帧的方法,所述方法包括:
[0009]将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,所述第一预设阈值小于所述第二预设阈值;
[0010]如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频;
[0011]如果存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为I帧;
[0012]如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。
[0013]进一步地,所述如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频之后,还包括:
[0014]判断所述时间段内网络视频在线播放是否存在丢失的视频帧;
[0015]相应地,所述如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧,包括:
[0016]如果在所述时间段内存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为PI帧;
[0017]如果在所述时间段内不存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为P帧。
[0018]进一步地,所述如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频之前,还包括:
[0019]接收服务器发送的第一个数,所述第一个数为所述时间段内接入所述网络视频的用户的个数;或者,
[0020]接收所述服务器发送的接入指示值,所述接入指示值用于指示在所述时间段内是否存在接入所述网络视频的用户。
[0021]进一步地,所述判断所述时间段内网络视频在线播放是否存在丢失的视频帧之前,还包括:
[0022]接收服务器发送的第二个数,所述第二个数为所述时间段内丢失的视频帧的个数;或者,
[0023]接收所述服务器发送的丢帧指示值,所述丢帧指示值用于指示在所述时间段内是否存在丢失的视频帧。
[0024]另一方面,提供了一种在视频直播系统中设置关键帧的装置,所述装置包括:
[0025]生成模块,用于将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,所述第一预设阈值小于所述第二预设阈值;
[0026]第一判断模块,用于如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频;
[0027]第一设置模块,用于如果存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为I帧;
[0028]第二设置模块,用于如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。
[0029]进一步地,所述装置还包括:
[0030]第二判断模块,用于判断所述时间段内网络视频在线播放是否存在丢失的视频帧;
[0031]相应地,所述第二设置模块包括:
[0032]第一设置单元,用于如果在所述时间段内存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为PI帧;
[0033]第二设置单元,用于如果在所述时间段内不存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为P帧。
[0034]进一步地,所述装置还包括:[0035]第一接收模块,用于接收服务器发送的第一个数,所述第一个数为所述时间段内接入所述网络视频的用户的个数;或者,
[0036]第二接收模块,用于接收所述服务器发送的接入指示值,所述接入指示值用于指示在所述时间段内是否存在接入所述网络视频的用户。
[0037]进一步地,所述装置还包括:
[0038]第三接收模块,用于接收服务器发送的第二个数,所述第二个数为所述时间段内丢失的视频帧的个数;或者,
[0039]第四接收模块,用于接收所述服务器发送的丢帧指示值,所述丢帧指示值用于指示在所述时间段内是否存在丢失的视频帧。
[0040]在本发明实施例中,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每个第二预设阈值个数的视频帧生成一个固定I帧关键帧;而且自适应关键帧根据是否有用户接入网络视频来设置其编码类型,由于P帧和PI帧的压缩率高于I帧的压缩率,所以,本发明实施例提供的设置关键帧的方法在不影响用户观看视频效果的前提下,可以提高直播视频的压缩率,进而节省码率。
【专利附图】

【附图说明】
[0041]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1是本发明实施例一提供的一种在视频直播系统中设置关键帧的方法流程图;
[0043]图2是本发明实施例二提供的一种在视频直播系统中设置关键帧的方法流程图;
[0044]图3是本发明实施例三提供的一种在视频直播系统中设置关键帧的装置结构示意图。
【具体实施方式】
[0045]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0046]实施例一
[0047]本发明实施例提供了一种在视频直播系统中设置关键帧的方法,参见图1,该方法包括:
[0048]步骤101:将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,第一预设阈值小于第二预设阈值;
[0049]优选地,第二预设阈值是第一预设阈值的整数倍,比如:第二预设阈值可以取值为100,第一预设阈值取值为20 ;也就是说在对网络视频进行压缩编码时,每隔20帧生成一个自适应关键帧,每隔100帧生成一个固定I帧关键帧。
[0050]步骤102:如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频;[0051]这里所说的上一个关键帧,可以是上述的自适应关键帧,也可以是固定I帧关键帧,只要是离当前视频帧最接近的上一个关键帧即可。
[0052]步骤103:如果存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为I帧;
[0053]因为新用户接入网络视频时,必须接收到I帧作为参考帧才能对后续的视频帧进行解码播放。
[0054]步骤104:如果不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为P (Predicted frames)巾贞或PI中贞。
[0055]由于在同等观看效果的前提下,P帧和PI帧的压缩率比I帧要大,所以在没有新用户接入观看视频的时候,可以提高网络视频的压缩率,减小视频数据包的大小,从而降低网络传输的带宽压力。
[0056]进一步地,如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频之后,还包括:
[0057]判断该时间段内网络视频在线播放是否存在丢失的视频帧;
[0058]相应地,如果不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧,包括:
[0059]如果在该时间段内存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为PI帧;
[0060]如果在该时间段内不存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为P帧。
[0061]由于P帧比PI帧的压缩率高,所以在丢包的情况下,为了快速恢复视频,将自适应关键帧设置为PI帧,以便于保证视频解码播放时在线用户的观看效果。
[0062]进一步地,如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频之前,还包括:
[0063]接收服务器发送的第一个数,第一个数为该时间段内接入该网络视频的用户的个数;或者,
[0064]接收该服务器发送的接入指示值,该接入指示值用于指示在该时间段内是否存在接入该网络视频的用户。
[0065]进一步地,判断该时间段内网络视频在线播放是否存在丢失的视频帧之前,还包括:
[0066]接收服务器发送的第二个数,第二个数为该时间段内丢失的视频帧的个数;或者,
[0067]接收服务器发送的丢帧指示值,该丢帧指示值用于指示在该时间段内是否存在丢失的视频帧。
[0068]在本发明实施例中,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每个第二预设阈值个数的视频帧生成一个固定I帧关键帧。而且自适应关键帧根据是否有用户接入网络视频来设置其编码类型,由于P帧和PI帧的压缩率高于I帧的压缩率,所以,本发明实施例提供的设置关键帧的方法在不影响用户观看视频效果的前提下,可以提高直播视频的压缩率,进而节省码率。
[0069]实施例二[0070]本发明实施例提供了一种在视频直播系统中设置关键帧的方法,参见图2,该方法包括:
[0071]步骤201:将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,第一预设阈值小于第二预设阈值;
[0072]具体地,第一终端录制预设时间段内的网络视频数据,并将录制的网络视频数据进行压缩生成视频帧,从已生成的视频帧中获取上一个固定I帧关键帧,如果将当前录制的网络视频数据进行压缩生成的视频帧与上一个固定I帧关键帧之间的视频帧的个数等于第二预设阈值,则确定当前要生成固定I帧关键帧;否则,从已生成的视频帧中获取上一个自适应关键帧,如果上一个自适应关键帧与将当前录制的网络视频数据进行压缩生成的视频帧之间的视频帧的个数等于第一预设阈值,则确定当前要生成自适应关键帧。
[0073]进一步地,如果上一个自适应关键与将当前录制的网络视频数据进行压缩生成的视频帧之间的视频帧的个数不等于第一预设阈值时,则确定当前不生成关键帧,即将当前要生成的视频帧设置为普通的视频帧。
[0074]其中,第二预设阈值可以为第一预设阈值的整数倍,当然,第二预设阈值也可以不为第一预设阈值的整数倍。
[0075]其中,自适应关键帧为I帧、P帧和PI帧中的任一个。
[0076]其中,P帧的压缩率高于PI帧的压缩率,PI帧的压缩率高于I帧的压缩率。P帧解码时需要参考在该P帧之前且离该P帧最近的I帧;PI帧解码时需要参考在该PI帧之前且离该PI帧最近的I帧,且在该PI帧之后的视频帧解码时不参考该PI帧之前的视频帧;I帧解码时不参考其他的关键帧。
[0077]其中,该网络视频包括的每个视频帧的时间长度相等,并且该网络视频对应一个网络视频频道。当第一终端将录制的网络视频数据进行压缩生成的视频帧上传到服务器之后,其他用户对应的第二终端可以接入到该服务器中该网络视频的频道观看该网络视频。
[0078]步骤202:接收服务器发送的接入指示值,该接入指示值用于指示在当前要生成的视频帧与上一个关键帧之间的时间段内是否存在接入该网络视频的用户;
[0079]其中,在该网络视频在线播放的过程中,可能会存在新的用户接入到该网络视频中。当服务器接收到第一终端发送的关键帧时,服务器设置接入用户个数的初值。当服务器在当前接收的关键帧与接收的下一个关键帧之间的时间间隔内接收到新的用户对应的终端发送的接入请求消息时,服务器增加接入用户个数,当服务器接收到第一终端发送的下一个关键帧时,服务器根据该接入用户个数设置接入指示值,并将该接入指示值发送给第一终端。
[0080]优选地,服务器根据该接入用户个数设置接入指示值的具体操作可以为:如果该接入用户个数等于0,则将接入指示值设置为0,如果该接入用户个数大于0,则将接入指示值设置为I。
[0081]当然,也可以当接入用户个数等于O时,将接入指示值设置为1,当接入用户个数大于O时,将接入指示值设置为O。本发明实施例中以接入用户个数等于O时接入指示值为0,接入用户个数大于O时接入指示值为I为例进行说明。
[0082]其中,接入用户个数的初值可以设置为0、1、2等,优选地,将接入用户个数的初值设置为O。
[0083]进一步地,当服务器将该接入指示值发送给第一终端后,服务器将该接入用户个数清零,并设置该接入用户个数的初值。
[0084]其中,第一终端接收服务器发送的接入指示值的时间在将当前录制的网络视频数据进行压缩生成视频帧的时间之前,且接收接入指示值的时间可能与将当前录制的网络视频数据进行压缩生成视频帧的时间连续,也可能与将当前录制的网络视频数据进行压缩生成视频帧的时间间隔一段时间,该间隔的一段时间小于相邻两个关键帧之间的间隔时间。
[0085]其中,在相邻两个关键帧之间的视频帧不为关键帧,但是在相邻两个关键帧之间的视频帧也可以为I巾贞、P巾贞、B帧或PI帧。
[0086]步骤203:接收服务器发送的丢帧指示值,该丢帧指示值用于指示在该时间段内是否存在丢失的视频帧;
[0087]其中,第一终端录制一个视频帧,对该视频帧进行编码之后上传到服务器,而服务器也是接收到一个视频帧之后,将该视频帧发送给第二终端。当第二终端在预设时间段之内接收到该视频帧,则第二终端向服务器发送确认响应消息,以通知服务器第二终端接收到服务器发送的视频帧。如果第二终端在预设时间段之内没有接收到视频帧,则第二终端向服务器发送丢失响应消息,以通知服务器第二终端没有接收到服务器发送的视频帧。
[0088]当服务器接收到第一终端发送的关键帧时,服务器设置视频帧丢失个数的初值,并将接收的关键帧发送给第二终端。当服务器在当前接收的关键帧与下一个接收的关键帧之间的时间间隔内接收到第二终端发送的丢失响应消息时,服务器增加视频帧丢失个数,并且当服务器接收到第一终端发送的下一个关键帧时,服务器根据该视频帧丢失个数设置丢帧指示值,将该丢帧指示值发送给第一终端。
[0089]优选地,服务器根据该视频帧丢失个数设置丢帧指示值的具体操作可以为:如果该视频帧丢失个数等于0,则将丢帧指示值设置为0,如果该视频帧丢失个数大于0,则将丢帧指示值设置为I。
[0090]当然,也可以当视频帧丢失个数等于O时,将丢帧指示值设置为1,当视频帧丢失个数大于O时,将丢帧指示值设置为O。本发明实施例中以视频帧丢失个数等于O时丢帧指示值为0,视频帧丢失个数大于O时丢帧指示值为I为例进行说明。
[0091]其中,视频帧丢失个数的初值可以设置为0、1、2等,优选地,将视频帧丢失个数的初值设置为O。
[0092]进一步地,当服务器将该丢帧指示值发送给第一终端后,服务器将该视频帧丢失个数清零,并设置该视频帧丢失个数的初值。
[0093]其中,第一终端接收服务器发送的丢帧指示值的时间在将当前录制的网络视频进行压缩生成视频帧的时间之前,且接收丢帧指示值的时间可能与将当前录制的网络视频进行压缩生成视频帧的时间连续,也可能与将当前录制的网络视频进行压缩生成视频帧的时间间隔一段时间,该间隔的一段时间小于相邻两个关键帧之间的间隔时间。
[0094]步骤204:如果当前要生成自适应关键帧,则根据接入指示值判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频,如果存在用户接入该网络视频,则执行步骤205,如果不存在用户接入该网络视频,则执行步骤206 ;
[0095]具体地,如果当前要生成自适应关键帧,则判断接收到接入指示值是否为1,如果接入指示值为1,则确定在该时间段内存在用户接入该网络视频,执行步骤205 ;如果接入指示值为0,则确定在该时间段内不存在用户接入该网络视频,执行步骤206。
[0096]可选地,第一终端接收服务器发送到第一个数,第一个数为在该时间段内接入该网络视频的用户的个数,第一终端根据该第一个数判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频。
[0097]其中,第一终端根据该第一个数判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频的具体操作可以为:如果第一个数大于0,则确定在该时间段内存在用户接入该网络视频,如果第一个数为0,则确定在该时间段内不存在用户接入该网络视频。
[0098]其中,服务器可以统计当前要生成的自适应关键帧与上一个关键帧之间的时间段内接入该网络视频的用户的个数,将统计的接入该网络视频的用户的个数发送给第一终端。
[0099]其中,第一终端接收服务器发送的第一个数的时间在将当前录制的网络视频数据进行压缩生成视频帧的时间之前,且接收第一个数的时间也可能与将当前录制的网络视频数据进行压缩生成视频帧的时间间隔一段时间,该间隔的一段时间小于相邻两个关键帧之间的间隔时间。
[0100]步骤205:将当前要生成的自适应关键帧设置为I帧;
[0101]其中,在该时间段内存在用户接入该网络视频,为了保证接入该网络视频的用户能快速地观看该网络视频,将当前要生成的自适应关键帧设置为I帧。由于对I帧进行解码时不需要依赖其他的视频帧,所以第二终端接收到I帧之后,可以立即对该I帧进行解码,快速地观看到该网络视频。
[0102]步骤206:根据丢失指示值判断该时间段内网络视频在线播放是否存在丢失的视频帧,如果存在丢失的视频帧,则执行步骤207,如果不存在丢失的视频帧,则执行步骤208 ;
[0103]具体地,判断接收的丢帧指示值是否为1,如果丢帧指示值为1,则确定在该时间段内网络视频在线播放存在丢失的视频帧,执行步骤207 ;如果丢帧指示值为0,则确定在该时间段内网络视频在线播放不存在丢失的视频帧,执行步骤208。
[0104]可选地,第一终端接收服务器发送到第二个数,第二个数为在该时间段内丢失的视频帧的个数,第一终端根据该第二个数判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在丢失的视频中贞。
[0105]其中,第一终端根据该第二个数判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在丢失的视频帧的具体操作可以为:如果第二个数大于0,则确定在该时间段内存在丢失的视频帧,如果第二个数为0,则确定在该时间段内不存在丢失的视频帧。
[0106]其中,服务器可以统计当前要生成的自适应关键帧与上一个关键帧之间的时间段内丢失的视频帧的个数,将统计的丢失的视频帧的个数发送给第一终端。
[0107]其中,第一终端接收服务器发送的第二个数的时间在将当前录制的网络视频数据进行压缩生成视频帧的时间之前,且接收第二个数的时间也可能与将当前录制的网络视频数据进行压缩生成视频帧的时间间隔一段时间,该间隔的一段时间小于相邻两个关键帧之间的间隔时间。
[0108]步骤207:将当前要生成的自适应关键帧设置成为PI帧;
[0109]其中,在该时间段内存在丢失的视频帧且不存在新接入直播视频频道的用户,为了保证正在观看该网络视频的用户迅速地恢复该网络视频,将当前要生成的自适应关键帧设置为PI帧。由于对PI帧进行解码时需要参考该PI帧之前且与该PI帧最近的I帧,且该PI帧之后的视频帧解码时不参考该PI帧之前的视频帧,所以当第二终端接收到该PI帧之后,获取在该PI帧之前接收到的I帧,根据获取的I帧对该PI帧进行解码。对该PI帧之后接收的视频帧进行解码时不参考该PI帧之前的视频帧,从而恢复该网络视频。并且PI帧的压缩率比I帧的压缩率高,所以将该当前要生成的自适应关键帧设置为PI帧,可以提高该网络视频的压缩率,进而节省码率。
[0110]步骤208:将当前要生成的自适应关键帧设置为P帧。
[0111]其中,在该时间段内不存在丢失的视频帧且不存在用户接入该网络视频,不需要保证接入的用户快速地观看到该网络视频,也不需要快速地恢复该网络视频,又由于P帧的压缩率比PI帧的压缩率和I帧的压缩率都高,所以将当前要生成的自适应关键帧设置为P帧可以提高该网络视频的压缩率,进而节省码率。
[0112]在本发明实施例中,每个第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧。如果当前要生成自适应关键帧且在当前要生成的自适应关键帧与上一个关键帧之间的时间段内存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为I帧;如果在该时间段内存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为PI帧;如果在该时间段内不存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成自适应关键帧设置为P帧。如此,设置的关键帧不只是I帧,还有可能是P帧或者PI帧,由于P帧的压缩率高于PI帧的压缩率,PI帧的压缩率高于I帧的压缩率,所以,本发明实施例提供的设置关键帧的方法在不影响用户观看视频效果的前提下,可以提高直播视频的压缩率,进而节省码率。
[0113]实施例三
[0114]参见图3,本发明实施例提供了一种在视频直播系统中设置关键帧的装置,该装置包括:
[0115]生成模块301,用于将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,第一预设阈值小于第二预设阈值;
[0116]第一判断模块302,用于如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入该网络视频;
[0117]第一设置模块303,用于如果存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为I帧;
[0118]第二设置模块304,用于如果不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。
[0119]进一步地,该装置还包括:
[0120]第二判断模块,用于判断该时间段内网络视频在线播放是否存在丢失的视频帧;
[0121]相应地,第二设置模块304包括:[0122]第一设置单元,用于如果在该时间段内存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为PI帧;
[0123]第二设置单元,用于如果在该时间段内不存在丢失的视频帧且不存在用户接入该网络视频,则将当前要生成的自适应关键帧设置为P帧。
[0124]进一步地,该装置还包括:
[0125]第一接收模块,用于接收服务器发送的第一个数,第一个数为该时间段内接入该网络视频的用户的个数;或者,
[0126]第二接收模块,用于接收该服务器发送的接入指示值,该接入指示值用于指示在该时间段内是否存在接入该网络视频的用户。
[0127]进一步地,该装置还包括:
[0128]第三接收模块,用于接收服务器发送的第二个数,第二个数为该时间段内丢失的视频巾贞的个数;或者,
[0129]第四接收模块,用于接收该服务器发送的丢帧指示值,该丢帧指示值用于指示在该时间段内是否存在丢失的视频中贞。
[0130]在本发明实施例中,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧。而且自适应关键帧根据是否有用户接入网络视频来设置其编码类型,由于P帧和PI帧的压缩率高于I帧的压缩率,所以,本发明实施例提供的设置关键帧的方法在不影响用户观看视频效果的前提下,可以提高直播视频的压缩率,进而节省码率。
[0131]需要说明的是:上述实施例提供的在视频直播系统中设置关键帧的装置在在视频直播系统中设置关键帧时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的在视频直播系统中设置关键帧的装置与在视频直播系统中设置关键帧的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0132]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0133]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0134]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种在视频直播系统中设置关键帧的方法,其特征在于,所述方法包括: 将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,所述第一预设阈值小于所述第二预设阈值; 如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频; 如果存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为I帧; 如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。
2.如权利要求1所述的方法,其特征在于,所述如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频之后,还包括: 判断所述时间段内网络视频在线播放是否存在丢失的视频帧; 相应地,所述如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧,包括: 如果在所述时间段内存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为PI帧; 如果在所述时间段内不存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为P帧。
3.如权利要求1所述的方法,其特征在于,所述如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频之前,还包括: 接收服务器发送的第一个数,所述第一个数为所述时间段内接入所述网络视频的用户的个数;或者, 接收所述服务器发送的接入指示值,所述接入指示值用于指示在所述时间段内是否存在接入所述网络视频的用户。
4.如权利要求2所述的方法,其特征在于,所述判断所述时间段内网络视频在线播放是否存在丢失的视频帧之前,还包括: 接收服务器发送的第二个数,所述第二个数为所述时间段内丢失的视频帧的个数;或者, 接收所述服务器发送的丢帧指示值,所述丢帧指示值用于指示在所述时间段内是否存在丢失的视频帧。
5.一种在视频直播系统中设置关键帧的装置,其特征在于,所述装置包括: 生成模块,用于将当前录制的网络视频数据进行压缩生成视频帧,每隔第一预设阈值个数的视频帧生成一个自适应关键帧,每隔第二预设阈值个数的视频帧生成一个固定I帧关键帧,所述第一预设阈值小于所述第二预设阈值; 第一判断模块,用于如果当前要生成自适应关键帧,则判断当前要生成的自适应关键帧与上一个关键帧之间的时间段内是否存在用户接入所述网络视频; 第一设置模块,用于如果存在用户接入所述网络视频,则将当前要生成的自适应关键中贞设置成为I帧; 第二设置模块,用于如果不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置成为P帧或PI帧。
6.如权利要求5所述的装置,其特征在于,所述装置还包括: 第二判断模块,用于判断所述时间段内网络视频在线播放是否存在丢失的视频帧; 相应地,所述第二设置模块包括: 第一设置单元,用于如果在所述时间段内存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为PI帧; 第二设置单元,用于如果在所述时间段内不存在丢失的视频帧且不存在用户接入所述网络视频,则将当前要生成的自适应关键帧设置为P帧。
7.如权利要求5所述的装置,其特征在于,所述装置还包括: 第一接收模块,用于接收服务器发送的第一个数,所述第一个数为所述时间段内接入所述网络视频的用户的个数;或者, 第二接收模块,用于接收所述服务器发送的接入指示值,所述接入指示值用于指示在所述时间段内是否存在接入所述网络视频的用户。
8.如权利要求6所述的装置,其特征在于,所述装置还包括: 第三接收模块,用于接收服务器发送的第二个数,所述第二个数为所述时间段内丢失的视频帧的个数;或者, 第四接收模块,用于接收所述服务器发送的丢帧指示值,所述丢帧指示值用于指示在所述时间段内是否存在丢失的视频帧。
【文档编号】H04N21/44GK103929682SQ201410120922
【公开日】2014年7月16日 申请日期:2014年3月27日 优先权日:2014年3月27日
【发明者】李青 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1