CN110996117B - 视频转码方法、装置、电子设备和存储介质 - Google Patents

视频转码方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110996117B
CN110996117B CN201911328856.0A CN201911328856A CN110996117B CN 110996117 B CN110996117 B CN 110996117B CN 201911328856 A CN201911328856 A CN 201911328856A CN 110996117 B CN110996117 B CN 110996117B
Authority
CN
China
Prior art keywords
video stream
live video
transcoding
code rate
prompt information
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.)
Active
Application number
CN201911328856.0A
Other languages
English (en)
Other versions
CN110996117A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201911328856.0A priority Critical patent/CN110996117B/zh
Publication of CN110996117A publication Critical patent/CN110996117A/zh
Application granted granted Critical
Publication of CN110996117B publication Critical patent/CN110996117B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Abstract

本公开关于一种视频转码方法、装置、电子设备和存储介质。方法包括:接收主播端的直播视频流;从所述直播视频流中获取所述直播视频流的转码提示信息,所述转码提示信息由所述主播端基于所述主播端上传所述直播视频流的码率确定;当所述转码提示信息为第一类转码提示信息时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端,其中,所述第一类转码提示信息用于表示所述主播端上传所述直播视频流的码率位于目标码率范围内。根据本公开的方法,当主播端所处的网络环境变差时,服务器对其发送的直播视频流不做转码处理,直接封装后发送至观众端,可以在观众端上以较好的质量将直播呈现出来。

Description

视频转码方法、装置、电子设备和存储介质
技术领域
本公开涉及数据处理领域,尤其涉及一种视频转码方法、装置、电子设备和存储介质。
背景技术
随着网络通信技术的飞速发展,观看直播成为了很多人不可缺少的娱乐活动。由于直播本身具有很强的实时性,因此网络状况对于直播的影响十分巨大,如果网络出现波动,会导致观众端播放直播的过程中出现卡顿,影响用户直播观看效果。
相关技术中,主播端和观众端之间是通过服务器进行连接的,该服务器接收主播端发送的直播视频流后,将该直播视频流进行处理,降低直播视频流的质量,随后将处理后的直播视频流发送给直播客户端,这样可以将直播在观众端上流畅的呈现出来。
但是,当主播端所处的网络环境发生波动时,主播端通常会降低直播的质量,直播视频流经由服务器进行处理后,会二次降低直播的质量,导致直播在观众端上呈现的效果不佳。
发明内容
本公开提供一种视频转码方法、装置、电子设备和存储介质,以至少解决相关技术中直播效果不佳的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种视频转码方法,包括:
接收主播端的直播视频流;
从所述直播视频流中获取所述直播视频流的转码提示信息,所述转码提示信息由所述主播端基于所述主播端上传所述直播视频流的码率确定;
当所述转码提示信息为第一类转码提示信息时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端,其中,所述第一类转码提示信息用于表示所述主播端上传所述直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,所述从所述直播视频流中获取所述直播视频流的转码提示信息,包括:
对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述任一个GOP的即时解码刷新帧;
从所述即时解码刷新帧中的第一目标字段中,获取所述直播视频流的转码提示信息。
在一种可能的实施方式中,所述方法还包括:
当所述转码提示信息为第二类转码提示信息时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端,其中,所述第二类转码提示信息用于表示所述主播端上传直播视频流的码率高于所述目标码率范围的最大值。
在一种可能的实施方式中,所述方法还包括:
当所述转码提示信息为第二类转码提示信息时,检测所述直播视频流的接收码率,其中,所述第二类转码提示信息用于表示所述主播端上传直播视频流的码率高于所述目标码率范围的最大值;
当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至所述观众端;
当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
在一种可能的实施方式中,所述方法还包括:
当所述直播视频流中未携带所述转码提示信息时,按照所述目标码率范围对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
在一种可能的实施方式中,所述对所述直播视频流不进行转码包括:
若所述直播视频流中还包括延时信息,则根据所述延时信息所指示的目标时间段内对接收到的所述直播视频流不进行转码。
在一种可能的实施方式中,所述从所述直播视频流中获取所述直播视频流的转码提示信息之后,所述方法还包括:
对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述GOP的即时解码刷新帧;
从所述即时解码刷新帧中的第二目标字段中,获取所述延时信息。
根据本公开实施例的第二方面,提供一种视频转码方法,包括:
对向服务器上传的直播视频流进行码率检测;
根据所述直播视频流的码率与目标码率范围的大小关系,在所述直播视频流的GOP中添加对应的转码提示信息;
向所述服务器继续上传添加转码提示信息后的直播视频流,以使所述服务器基于所述转码提示信息对所述添加转码提示信息后的直播视频流进行转码。
在一种可能的实施方式中,所述根据所述码率与目标码率范围的大小关系,在所述直播视频流的GOP中添加对应的转码提示信息转码提示信息包括:
向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,所述第一类转码提示信息用于表示所述直播视频流的码率位于所述目标码率范围内。
在一种可能的实施方式中,所述方法还包括:
向所述直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,所述延时信息指示所述服务器在目标时间段内对所述接收到的所述直播视频流不进行转码。
在一种可能的实施方式中,所述根据所述码率与目标码率范围的大小关系,在所述直播视频流中的GOP中添加对应的转码提示信息包括:
向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,所述第二类转码提示信息用于表示上传的直播视频流的码率高于所述目标码率范围的最大值。
根据本公开实施例的第三方面,提供一种视频转码装置,包括:
接收模块,被配置为执行接收主播端的直播视频流;
获取模块,被配置为执行从所述直播视频流中获取所述直播视频流的转码提示信息,所述转码提示信息由所述主播端基于所述主播端上传所述直播视频流的码率确定;
发送模块,被配置为执行当所述转码提示信息为第一类转码提示信息时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端,其中,所述第一类转码提示信息用于表示所述主播端上传所述直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,所述获取模块,包括:
第一解封装单元,被配置为执行对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述任一个GOP的即时解码刷新帧;
第一获取单元,被配置为执行从所述即时解码刷新帧中的第一目标字段中,获取所述直播视频流的转码提示信息。
在一种可能的实施方式中,所述发送模块,还被配置为执行当所述转码提示信息为第二类转码提示信息时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端,其中,所述第二类转码提示信息用于表示所述主播端上传所述直播视频流的码率高于所述目标码率范围的最大值。
在一种可能的实施方式中,所述装置还包括:
检测模块,被配置为执行当所述转码提示信息为第二类转码提示信息时,检测所述直播视频流的接收码率,其中,所述第二类转码提示信息用于表示所述主播端上传所述直播视频流的码率高于所述目标码率范围的最大值;
所述发送模块,还被配置为执行当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至所述观众端;
所述发送模块,还被配置为执行当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端;
在一种可能的实施方式中,所述发送模块,还被配置为执行当所述直播视频流中未携带所述转码提示信息时,按照所述目标码率范围对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
在一种可能的实施方式中,所述发送模块还包括:
转码单元,被配置为执行若所述直播视频流中还包括延时信息,则根据所述延时信息所指示的目标时间段内对接收到的所述直播视频流不进行转码。
在一种可能的实施方式中,所述获取模块还包括:
第二解封装单元,被配置为执行对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述GOP的即时解码刷新帧;
第二获取单元,被配置为执行从所述即时解码刷新帧中的第二目标字段中,获取所述延时信息。
根据本公开实施例的第四方面,提供一种视频转码装置,包括:
检测模块,被配置为执行对对向服务器上传的直播视频流进行码率检测;
添加模块,被配置为执行根据所述直播视频流的码率与目标码率范围的大小关系,在所述直播视频流中的GOP中添加对应的转码提示信息转码提示信息;
上传模块,被配置为执行向所述服务器继续上传添加转码提示信息后的直播视频流,以使所述服务器基于所述转码提示信息对所述添加转码提示信息后的直播视频流进行转码。
在一种可能的实施方式中,所述添加模块还被配置为执行向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,所述第一类转码提示信息用于表示所述直播视频流的码率位于所述目标码率范围内。
在一种可能的实施方式中,所述设置模块还被配置为执行向所述直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,所述延时信息指示服务器在目标时间段内对接收到的所述直播视频流不进行转码。
在一种可能的实施方式中,所述添加模块还被配置为执行向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,所述第二类转码提示信息用于表示上传的所述直播视频流的码率高于所述目标码率范围的最大值。
根据本公开实施例的第五方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述视频转码方法。
根据本公开实施例的第六方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述视频转码方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得服务器能够执行上述视频转码方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
主播端基于实际的网络环境,在即时解码刷新帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种视频转码方法的流程图。
图2是根据一示例性实施例示出的一种视频转码方法的流程图。
图3是根据一示例性实施例示出的一种视频转码方法的流程图。
图4是根据一示例性实施例示出的一种视频转码方法的流程图。
图5是根据一示例性实施例示出的一种视频转码方法的流程图。
图6是根据一示例性实施例示出的一种视频转码装置的框图。
图7是根据一示例性实施例示出的一种视频转码装置的框图。
图8是根据一示例性实施例示出的一种服务器的框图。
图9是根据一示例性实施例示出的一种终端的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了便于理解本公开实施例提供的技术方案,首先对本公开实施例所涉及的一些名词解释说明:
GOP(group of picture):帧组,一个GOP是一组连续的画面。
H.264:是一种数字视频压缩格式。
I帧:Intra-coded picture帧内编码图像帧,最大化去除图像空间冗余信息而得到的帧,自带全部信息,不需要参考其他的帧即可独立解码。
即时解码刷新帧:即IDR(instantaneous decoding refresh)帧,为H.264中每个GOP的第一帧,IDR帧本质上也是一个I帧,可以独立解码,但是在H.264中,IDR帧还有一个作用就是分隔两个GOP,也就是说,从第一个IDR帧开始,到下一个IDR帧开始之前的所有帧,组成一个GOP。
图1是根据一示例性实施例示出的一种视频转码方法的流程图,如图1所示,视频转码方法用于服务器中,包括以下步骤。
在步骤S101中,接收主播端的直播视频流。
在步骤S102中,从直播视频流中获取直播视频流的转码提示信息,转码提示信息由主播端基于主播端上传直播视频流的码率确定。
在步骤S103中,当转码提示信息为第一类转码提示信息时,对直播视频流不进行转码,将直播视频流发送至观众端,其中,第一类转码提示信息用于表示主播端上传直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,从直播视频流中获取直播视频流的转码提示信息,包括:
对接收到的直播视频流中的任一个GOP进行解封装,得到任一个GOP的即时解码刷新帧。
从即时解码刷新帧中的第一目标字段中,获取直播视频流的转码提示信息。
在一种可能的实施方式中,方法还包括:
当转码提示信息为第二类转码提示信息时,按照目标码率范围,对直播视频流进行转码,将转码后的直播视频流发送至观众端,其中,第二类转码提示信息用于表示主播端上传直播视频流的码率高于目标码率范围的最大值。
在一种可能的实施方式中,方法还包括:
当转码提示信息为第二类转码提示信息时,检测直播视频流的接收码率,其中,第二类转码提示信息用于表示主播端上传直播视频流的码率高于目标码率范围的最大值。
当接收码率高于直播视频流的码率时,对直播视频流不进行转码,将直播视频流发送至观众端。
当接收码率低于直播视频流的码率时,按照目标码率范围,对直播视频流进行转码,将转码后的直播视频流发送至观众端。
在一种可能的实施方式中,方法还包括:
当直播视频流中未携带转码提示信息时,按照目标码率范围对直播视频流进行转码,将转码后的直播视频流发送至观众端。
在一种可能的实施方式中,对直播视频流不进行转码包括:
若直播视频流中还包括延时信息,则根据延时信息所指示的目标时间段内对接收到的直播视频流不进行转码。
在一种可能的实施方式中,从直播视频流中获取直播视频流的转码提示信息之后,方法还包括:
对接收到的直播视频流中的任一个GOP进行解封装,得到GOP的即时解码刷新帧。
从即时解码刷新帧中的第二目标字段中,获取延时信息。
在本公开实施例中,主播端基于实际的网络环境,在即时解码刷新帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
图2是根据一示例性实施例示出的一种视频转码方法的流程图,如图2所示,视频转码方法用于主播端中,包括以下步骤。
在步骤S201中,对向服务器上传的直播视频流进行码率检测。
在步骤S202中,根据直播视频流的码率与目标码率范围的大小关系,在直播视频流的GOP中添加对应的转码提示信息。
在步骤S203中,向服务器继续上传添加转码提示信息后的直播视频流,以使服务器基于转码提示信息对添加转码提示信息后的直播视频流进行转码。
在一种可能的实施方式中,根据码率与目标码率范围的大小关系,在直播视频流的GOP中添加对应的转码提示信息转码提示信息包括:
向直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,第一类转码提示信息用于表示直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,方法还包括:
向直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,延时信息指示服务器在目标时间段内对接收到的直播视频流不进行转码。
在一种可能的实施方式中,根据码率与目标码率范围的大小关系,在直播视频流中的GOP中添加对应的转码提示信息包括:
向直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,第二类转码提示信息用于表示上传的直播视频流的码率高于目标码率范围的最大值。
在本公开实施例中,主播端基于实际的网络环境,在即时解码刷新帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
图3是根据一示例性实施例示出的一种视频转码方法的流程图,如图3所示,包括以下步骤。
在步骤S301中,主播端对向服务器上传直播视频流的码率进行检测。
其中,主播端可以为主播所使用的终端,例如计算机设备、智能手机、平板电脑以及其他同时至少具有视频数据采集和网络通讯功能,并且可以进行直播的终端。主播端可以采用多种视频编码标准对直播视频进行编码,例如JPEG2000、MPEG-1、MPEG-2、MPEG-4、H.261、H.262、H.263、H.264、AVS等,本公开实施例对主播端的类型和主播端所采用的视频编码标准不做限定。为了便于理解,本公开实施例以采用H.264作为直播视频的编码标准进行说明,当然,也可以采用其他的直播视频编码标准进行编码。
在步骤S302中,当主播端向服务器上传直播视频流的码率位于目标码率范围内时,主播端向直播视频流中任一个GOP中的IDR帧的第一目标字段中添加第一类转码提示信息。
在H.264视频编码标准中,每个GOP中均存在一个IDR帧,该IDR帧由多个目标字段组成,当主播端检测到向服务器上传直播视频流的码率降低时,为了保证直播的流畅性,可以在IDR帧的第一目标字段中添加第一类转码提示信息,该第一类转码提示信息用于指示服务器对接收到的直播视频流不进行转码,可以直接将该直播视频流封装后发送给观众端。以采用H.264协议进行编码为例,主播端可以在IDR帧的第一目标字段中增加一个类型为31的NAL(network abstract layer,网络抽象层)数据包,在该NAL数据包中增添转码提示信息,由于在H.264协议中,解码器遇到NAL类型为31的NAL的数据包时并不会对其进行解码,因此增加一个该NAL数据包并不会对视频播放过程产生影响。如果采用非H.264协议进行编码,可以在相应位置添加转码提示信息,本公开实施例对此不做限定。其中,观众端可以是指主播端的观众终端,例如,计算机设备、智能手机、平板电脑以及其他同时至少具有音视频播放和网络通讯功能的终端,本公开实施例对此不做限定。
需要说明的是,主播端可以从第一个GOP开始,在后续的每一个GOP中的IDR帧的第一目标字段中均添加第一类转码提示信息。在一种可能的实施方式中,主播端向直播视频流中任一个GOP中的IDR帧的第一目标字段中添加第一类转码提示信息之后,还可以在该IDR帧的第二目标字段中添加延时信息,延时信息指示服务器在目标时间段内对接收到的直播视频流不进行转码,或者,延时信息指示服务器对之后目标数量的GOP均不进行转码,其中,目标时间段和目标数量可以根据实际需要进行设置,也可以是主播端自行生成的,本公开实施例对此不做限定。在这种实施方式下,当服务器获取到IDR帧的第二目标字段中的延时信息后,可以在目标时间段内或对目标数量的GOP不进行转码,节约了服务器的运算资源。
在另一种实现方式中,当主播端向服务器上传的直播视频流的码率高于目标码率范围的最大值时,主播端向直播视频流中任一个GOP中的IDR帧的第一目标字段中添加第二类转码提示信息。其中,第二类转码提示信息可以用于指示服务器对接收到的直播视频流进行转码。在另一种可能实现方式中,第二类转码提示信息还可以用于指示服务器按照目标码率进行转码,具体来说,主播端可以中可以存储有上传直播视频流的码率和目标码率的对应关系,当上传直播视频流的码率位于目标码率范围内时,主播端可以基于上传直播视频流的码率和目标码率的对应关系,确定目标码率,并将目标码率添加在第一目标字段中。
在上述实施方式中,是通过第一类转码提示信息和第二类转码提示信息来指示服务器是否对GOP进行转码,而在另一种实现方式中,则可以仅通过一个转码标识来表示是否对GOP进行转码,也即是,在S301中当主播端向服务器上传直播视频流的码率位于目标码率范围内时,则向直播视频流中任一个GOP中的IDR帧的第一目标字段中添加转码标识,执行步骤S303。在S301中当主播端向服务器上传直播视频流的码率高于目标码率范围的最大值时,则不对直播视频流进行上述添加转码标识的处理,而直接进行直播视频流的上传。
当然,在上述任一种可能实现方式中,还可以在需要进行转码时,不向直播视频流中增加用于指示是否转码的信息,使得服务器在接收到该未携带这类信息的直播视频流时,按照之前的码率或者预设码率继续执行转码过程。
在步骤S303中,主播端向服务器继续上传添加转码提示信息后的直播视频流。
在一种可能的实施方式中,主播端可以主动向服务器发送的直播视频流,服务器也可以向主播端发送直播视频流获取请求,主播端基于获取请求,向服务器发送直播视频流,本公开实施例对此不做限定。
在步骤S304中,服务器对接收到的直播视频流中的任一个GOP进行解封装,得到GOP的IDR帧。
其中,直播数据经过主播端的编码之后,主播端可以对其进行封装,将封装后的直播数据发送给服务器。服务器获取该封装后的直播视频流后,需要先对其解封装,以获取编码之后的直播视频流,直播视频流由一个或多个GOP组成,封装协议可以采用RTMP(realtime messaging protocol实时消息传输协议)、RTSP(real time streaming protocol,实时流传输协议)、HLS(HTTP live streaming动态码率自适应技术)以及HTTP-FLV(HTTPflash video,网页流媒体)等,本公开实施例对此不做限定。
在一种可能的实施方式中,服务器上存储有IDR帧的标识,服务器可以基于IDR帧的标识获取任一个GOP的IDR帧。
在步骤S305中,服务器从IDR帧中的第一目标字段中,获取直播视频流的转码提示信息。
其中,服务器可以基于第一目标标识查找IDR帧的第一目标字段,并从第一目标字段中提取转码提示信息。以采用H.264协议进行编码为例,服务器可以基于IDR帧的第一目标字段中NAL数据包的类型确定该NAL数据包,并从该NAL数据包中提取转码提示信息。
需要说明的是,因此本公开实施例中所描述的转码和不转码是针对任一个GOP中所有的帧而言的,也即是,当服务器基于转码提示信息确定是否转码后,属于该GOP内所有的帧均按照相应的转码提示信息进行转码。
在步骤S306中,服务器对转码提示信息进行识别。
在一种可能的实施方式中,服务器中存储有转码提示信息对应表,该转码提示信息对应表中存储有数据与转码提示信息的对应关系,例如,1代表第一类转码提示信息,0代表第二类转码提示信息,服务器可以基于该数据与转码提示信息的对应关系,确定相应的转码提示信息。
在步骤S307中,当转码提示信息为第一类转码提示信息时,服务器对直播视频流不进行转码,将直播视频流发送至观众端。
如果转码提示信息为第一类转码提示信息,表示主播端向服务器上传直播视频流的码率位于目标码率范围内,也即是第一客户端的网络出现波动,为了保证直播的实时性,主播端往往会通过降低码率的方式来减轻网络波动产生的影响,码率降低会导致直播视频的质量下降,如果转码服务器对接收到的直播视频流再次进行转码,会进一步降低直播视频的质量,影响观众的观看体验。因此,当第一客户端将直播视频流的码率降低到位于目标码率范围内时,服务器可以不对直播视频流进行转码,而是直接将直播视频流封装后发送至观众端,保证观众可以观看质量更好的直播视频。
在一种可能的实施方式中,若直播视频流中还包括延时信息,则根据延时信息所指示的目标时间段内对接收到的直播视频流不进行转码。具体来说,服务器在获取直播视频流的转码提示信息之后,还可以检测该GOP中的IDR帧的第一目标字段中是否有延时信息,该延时信息用于指示服务器在目标时间段内对接收到的直播视频流不进行转码,或者,延时信息指示服务器对之后目标数量的GOP均不进行转码。如果存在延时信息,则服务器基于该延时信息,在目标时间段内或对目标数量的GOP不进行转码。如果不存在延时信息,则按照下一个GOP中的IDR帧中携带的信息确定是否对下一个GOP进行转码。在这种实施方式下,当服务器获取到IDR帧的第二目标字段中的延时信息后,可以在目标时间段内或对目标数量的GOP不进行转码,节约了服务器的运算资源。
在另一种实现方式中,当转码提示信息为第二类转码提示信息时,服务器会将接收到的直播视频流转化成一份或多份码率更低的直播视频流,将转码后的直播视频流再次封装后发送至观众端,在此之后,观众可以根据自身所述的网络环境,通过观众端操作界面上的按钮自行选择相应码率的直播视频流,观众端在接收到观众的操作指令后,可以向服务器发送直播视频流码率变更请求,服务器基于该码率变更请求,向观众端发送相应码率的直播视频流。观众端接收到相应码率的直播视频流之后,可以对其进行解封装和解码,以视频的方式呈现给观众,当然也可以是以音频的方式呈现给观众,或者是以视频和音频的方式组合呈现给观众,本公开实施例对此不做限定。需要说明的是,服务器将直播视频流转化成一份或多份码率更低的直播视频流的过程中,可以对每一份直播视频流进行IDR帧对齐,也即是,每份转码后的IDR帧与转码前的IDR帧位于GOP的同一个位置,这样可以保证转码后的直播视频流呈现的内容与转码前一致。
在一种可能的实施方式中,如果第二类转码提示信息中携带目标码率,服务器可以基于目标码率对直播视频流进行转码,并将转码后的直播视频流发送至观众端。
在另一种实现方式中,若直播视频流中未携带用于指示是否转码的信息,则服务器按照之前的码率或者预设码率继续执行转码过程。
步骤S301-S307的具体流程也可以参见图4和图5。
在本公开实施例中,主播端基于实际的网络环境,在IDR帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
图6是根据一示例性实施例示出的一种视频转码装置框图。参照图6,该装置包接收模块601,获取模块602和发送模块603。
接收模块601,被配置为执行接收主播端的直播视频流。
获取模块602,被配置为执行从直播视频流中获取直播视频流的转码提示信息,转码提示信息由主播端基于主播端上传直播视频流的码率确定。
发送模块603,被配置为执行当转码提示信息为第一类转码提示信息时,对直播视频流不进行转码,将直播视频流发送至观众端,其中,第一类转码提示信息用于表示主播端上传直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,获取模块,包括:
第一解封装单元,被配置为执行对接收到的直播视频流中的任一个GOP进行解封装,得到任一个GOP的即时解码刷新帧。
第一获取单元,被配置为执行从即时解码刷新帧中的第一目标字段中,获取直播视频流的转码提示信息。
在一种可能的实施方式中,发送模块,还被配置为执行当转码提示信息为第二类转码提示信息时,按照目标码率范围,对直播视频流进行转码,将转码后的直播视频流发送至观众端,其中,第二类转码提示信息用于表示主播端上传直播视频流的码率高于目标码率范围的最大值。
在一种可能的实施方式中,装置还包括:
检测模块,被配置为执行当转码提示信息为第二类转码提示信息时,检测直播视频流的接收码率,其中,第二类转码提示信息用于表示主播端上传直播视频流的码率高于目标码率范围的最大值。
发送模块,还被配置为执行当接收码率高于直播视频流的码率时,对直播视频流不进行转码,将直播视频流发送至观众端。
发送模块,还被配置为执行当接收码率低于直播视频流的码率时,按照目标码率范围,对直播视频流进行转码,将转码后的直播视频流发送至观众端。
在一种可能的实施方式中,发送模块,还被配置为执行当直播视频流中未携带转码提示信息时,按照目标码率范围对直播视频流进行转码,将转码后的直播视频流发送至观众端。
在一种可能的实施方式中,发送模块还包括:
转码单元,被配置为执行若直播视频流中还包括延时信息,则根据延时信息所指示的目标时间段内对接收到的直播视频流不进行转码。
在一种可能的实施方式中,获取模块还包括:
第二解封装单元,被配置为执行对接收到的直播视频流中的任一个GOP进行解封装,得到GOP的即时解码刷新帧。
第二获取单元,被配置为执行从即时解码刷新帧中的第二目标字段中,获取延时信息。
在本公开实施例中,主播端基于实际的网络环境,在即时解码刷新帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
图7是根据一示例性实施例示出的一种视频转码装置框图。参照图7,该装置包检测模块701,添加模块702和上传模块703。
检测模块701,被配置为执行对对向服务器上传的直播视频流进行码率检测。
添加模块702,被配置为执行根据直播视频流的码率与目标码率范围的大小关系,在直播视频流中的GOP中添加对应的转码提示信息转码提示信息。
上传模块703,被配置为执行向服务器继续上传添加转码提示信息后的直播视频流,以使服务器基于转码提示信息对添加转码提示信息后的直播视频流进行转码。
在一种可能的实施方式中,添加模块还被配置为执行向直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,第一类转码提示信息用于表示直播视频流的码率位于目标码率范围内。
在一种可能的实施方式中,设置模块还被配置为执行向直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,延时信息指示服务器在目标时间段内对接收到的直播视频流不进行转码。
在一种可能的实施方式中,添加模块还被配置为执行向直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,第二类转码提示信息用于表示上传的直播视频流的码率高于目标码率范围的最大值。
在本公开实施例中,主播端基于实际的网络环境,在即时解码刷新帧中增加的第一目标字段中添加相应的转码提示信息,服务器基于相应的转码提示信息对直播视频流进行转码。当主播端当前所处的网络环境较差时,服务器可以对接收到的直播视频流不进行转码,直接发送至观众端。直播视频流在观众端上能够以更好的视频质量将直播视频流呈现出来,用户可以获得更好的直播观看体验。
基于相同构思,本公开实施例还提供一种服务器,如图8所示,服务器包括:
处理器801;
用于存储处理器801可执行指令的存储器802;
其中,处理器被配置为执行命令,以实现如上述实施例的视频转码方法。
应理解的是,上述处理器可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data random SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DRRAM)。
图9是本公开实施例提供的一种电子设备的结构示意图。该电子设备900可以是:智能手机、平板电脑、笔记本电脑或台式电脑。电子设备900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备900包括有:一个或多个处理器901和一个或多个存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程门阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(artificial intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本公开中方法实施例提供的视频转码方法。
在一些实施例中,电子设备900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(input/output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(radio frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它电子设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(near field communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏905用于显示UI(user interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置电子设备900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在电子设备900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在电子设备900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(liquid crystal display,液晶显示屏)、OLED(organic light-emitting diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位电子设备900的当前地理位置,以实现导航或LBS(locationbased service,基于位置的服务)。定位组件908可以是基于美国的GPS(globalpositioning system,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源909用于为电子设备900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以电子设备900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测电子设备900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对电子设备900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在电子设备900的侧边框和/或显示屏905的下层。当压力传感器913设置在电子设备900的侧边框时,可以检测用户对电子设备900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置电子设备900的正面、背面或侧面。当电子设备900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在电子设备900的前面板。接近传感器916用于采集用户与电子设备900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与电子设备900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与电子设备900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对电子设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的视频转码方法。例如,该存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本公开提供了一种计算机程序产品,当计算机程序被服务器执行时,可以使得处理器或服务器执行上述方法实施例中对应的各个步骤和/或流程。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (20)

1.一种视频转码方法,其特征在于,包括:
接收主播端的直播视频流;
从所述直播视频流中获取所述直播视频流的转码提示信息,所述转码提示信息由所述主播端基于所述主播端上传所述直播视频流的码率确定;
当所述转码提示信息为第一类转码提示信息时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端,其中,所述第一类转码提示信息用于表示所述主播端上传所述直播视频流的码率位于目标码率范围内;
当所述转码提示信息为第二类转码提示信息时,检测所述直播视频流的接收码率,其中,所述第二类转码提示信息用于表示所述主播端上传直播视频流的码率高于所述目标码率范围的最大值;
当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至所述观众端;
当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
2.根据权利要求1所述的视频转码方法,其特征在于,所述从所述直播视频流中获取所述直播视频流的转码提示信息,包括:
对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述任一个GOP的即时解码刷新帧;
从所述即时解码刷新帧中的第一目标字段中,获取所述直播视频流的转码提示信息。
3.根据权利要求1所述的视频转码方法,其特征在于,所述方法还包括:
当所述转码提示信息为第二类转码提示信息时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端,其中,所述第二类转码提示信息用于表示所述主播端上传直播视频流的码率高于所述目标码率范围的最大值。
4.根据权利要求1所述的视频转码方法,其特征在于,所述方法还包括:
当所述直播视频流中未携带所述转码提示信息时,按照所述目标码率范围对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
5.根据权利要求1所述的视频转码方法,其特征在于,所述对所述直播视频流不进行转码包括:
若所述直播视频流中还包括延时信息,则根据所述延时信息所指示的目标时间段内对接收到的所述直播视频流不进行转码。
6.根据权利要求5所述的视频转码方法,其特征在于,所述从所述直播视频流中获取所述直播视频流的转码提示信息之后,所述方法还包括:
对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述GOP的即时解码刷新帧;
从所述即时解码刷新帧中的第二目标字段中,获取所述延时信息。
7.一种视频转码方法,其特征在于,包括:
对向服务器上传的直播视频流进行码率检测;
根据所述直播视频流的码率与目标码率范围的大小关系,向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,所述第二类转码提示信息用于表示上传的直播视频流的码率高于所述目标码率范围的最大值;
向所述服务器继续上传添加所述第二类转码提示信息后的直播视频流,以使所述服务器基于所述第二类转码提示信息,执行下述步骤:
检测所述直播视频流的接收码率;
当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端;
当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
8.根据权利要求7所述的视频转码方法,其特征在于,所述方法还包括:
根据所述码率与目标码率范围的大小关系,向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,所述第一类转码提示信息用于表示所述直播视频流的码率位于所述目标码率范围内。
9.根据权利要求7所述的视频转码方法,其特征在于,所述方法还包括:
向所述直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,所述延时信息指示所述服务器在目标时间段内对接收到的所述直播视频流不进行转码。
10.一种视频转码装置,其特征在于,包括:
接收模块,被配置为执行接收主播端的直播视频流;
获取模块,被配置为执行从所述直播视频流中获取所述直播视频流的转码提示信息,所述转码提示信息由所述主播端基于所述主播端上传所述直播视频流的码率确定;
发送模块,被配置为执行当所述转码提示信息为第一类转码提示信息时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端,其中,所述第一类转码提示信息用于表示所述主播端上传所述直播视频流的码率位于目标码率范围内;
所述装置还包括:
检测模块,被配置为执行当所述转码提示信息为第二类转码提示信息时,检测所述直播视频流的接收码率,其中,所述第二类转码提示信息用于表示所述主播端上传所述直播视频流的码率高于所述目标码率范围的最大值;
所述发送模块,还被配置为执行当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至所述观众端;
所述发送模块,还被配置为执行当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
11.根据权利要求10所述的视频转码装置,其特征在于,所述获取模块,包括:
第一解封装单元,被配置为执行对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述任一个GOP的即时解码刷新帧;
第一获取单元,被配置为执行从所述即时解码刷新帧中的第一目标字段中,获取所述直播视频流的转码提示信息。
12.根据权利要求10所述的视频转码装置,其特征在于,所述发送模块,还被配置为执行当所述转码提示信息为第二类转码提示信息时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端,其中,所述第二类转码提示信息用于表示所述主播端上传所述直播视频流的码率高于所述目标码率范围的最大值。
13.根据权利要求10所述的视频转码装置,其特征在于,所述发送模块,还被配置为执行当所述直播视频流中未携带所述转码提示信息时,按照所述目标码率范围对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
14.根据权利要求10所述的视频转码装置,其特征在于,所述发送模块还包括:
转码单元,被配置为执行若所述直播视频流中还包括延时信息,则根据所述延时信息所指示的目标时间段内对接收到的所述直播视频流不进行转码。
15.根据权利要求14所述的视频转码装置,其特征在于,所述获取模块还包括:
第二解封装单元,被配置为执行对接收到的所述直播视频流中的任一个GOP进行解封装,得到所述GOP的即时解码刷新帧;
第二获取单元,被配置为执行从所述即时解码刷新帧中的第二目标字段中,获取所述延时信息。
16.一种视频转码装置,其特征在于,包括:
检测模块,被配置为执行对对向服务器上传的直播视频流进行码率检测;
添加模块,被配置为执行根据所述直播视频流的码率与目标码率范围的大小关系,向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第二类转码提示信息,其中,所述第二类转码提示信息用于表示上传的直播视频流的码率高于所述目标码率范围的最大值;
上传模块,被配置为执行向所述服务器继续上传添加转码提示信息后的直播视频流,以使所述服务器基于所述第二类转码提示信息,执行下述步骤:
检测所述直播视频流的接收码率;
当所述接收码率高于所述直播视频流的码率时,对所述直播视频流不进行转码,将所述直播视频流发送至观众端;
当所述接收码率低于所述直播视频流的码率时,按照所述目标码率范围,对所述直播视频流进行转码,将转码后的直播视频流发送至所述观众端。
17.根据权利要求16所述的视频转码装置,其特征在于,所述添加模块还被配置为执行向所述直播视频流中任一个GOP中的即时解码刷新帧的第一目标字段中添加第一类转码提示信息,其中,所述第一类转码提示信息用于表示所述直播视频流的码率位于所述目标码率范围内。
18.根据权利要求17所述的视频转码装置,其特征在于,所述添加模块还被配置为执行向所述直播视频流中任一个GOP中的即时解码刷新帧的第二目标字段中添加延时信息,所述延时信息指示服务器在目标时间段内对接收到的所述直播视频流不进行转码。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的视频转码方法。
20.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时使得所述电子设备能够执行如权利要求1至9中任一项所述的视频转码方法。
CN201911328856.0A 2019-12-20 2019-12-20 视频转码方法、装置、电子设备和存储介质 Active CN110996117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911328856.0A CN110996117B (zh) 2019-12-20 2019-12-20 视频转码方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911328856.0A CN110996117B (zh) 2019-12-20 2019-12-20 视频转码方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110996117A CN110996117A (zh) 2020-04-10
CN110996117B true CN110996117B (zh) 2021-10-22

Family

ID=70074394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911328856.0A Active CN110996117B (zh) 2019-12-20 2019-12-20 视频转码方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110996117B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112788357B (zh) * 2020-12-30 2022-01-25 北京达佳互联信息技术有限公司 网络直播方法、装置、服务器及计算机可读存储介质
CN113259730B (zh) 2021-07-06 2021-12-14 北京达佳互联信息技术有限公司 用于直播的码率调整方法及装置
CN114302148A (zh) * 2021-12-14 2022-04-08 山东芯慧微电子科技有限公司 一种基于risc-v处理器的视频压缩卡的加速处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871808A (zh) * 2015-12-14 2016-08-17 乐视云计算有限公司 直播视频的转码方法及装置
CN105898554A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 实时转码的监控方法和实时转码系统
CN108259948A (zh) * 2018-03-30 2018-07-06 武汉斗鱼网络科技有限公司 一种直播音视频的播放方法、装置、计算机及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009182889A (ja) * 2008-01-31 2009-08-13 Toshiba Corp 再符号化装置および再符号化方法
US9886962B2 (en) * 2015-03-02 2018-02-06 Google Llc Extracting audio fingerprints in the compressed domain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871808A (zh) * 2015-12-14 2016-08-17 乐视云计算有限公司 直播视频的转码方法及装置
CN105898554A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 实时转码的监控方法和实时转码系统
CN108259948A (zh) * 2018-03-30 2018-07-06 武汉斗鱼网络科技有限公司 一种直播音视频的播放方法、装置、计算机及存储介质

Also Published As

Publication number Publication date
CN110996117A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110881136B (zh) 视频帧率控制方法、装置、计算机设备及存储介质
CN108966008B (zh) 直播视频回放方法及装置
CN108093268B (zh) 进行直播的方法和装置
CN108833963B (zh) 显示界面画面的方法、计算机设备、可读存储介质和系统
CN109874043B (zh) 视频流发送方法、播放方法及装置
CN111083507B (zh) 连麦方法及系统、第一主播端、观众端及计算机存储介质
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
CN109120933B (zh) 动态调整码率的方法、装置、设备及存储介质
CN110121084B (zh) 切换端口的方法、装置和系统
CN107147927B (zh) 基于直播连麦的直播方法及装置
CN110533585B (zh) 一种图像换脸的方法、装置、系统、设备和存储介质
CN111093108A (zh) 音画同步判断方法、装置、终端及计算机可读存储介质
CN109168032B (zh) 视频数据的处理方法、终端、服务器及存储介质
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
CN110958464A (zh) 直播数据处理方法、装置、服务器、终端及存储介质
CN111586413A (zh) 视频调整方法、装置、计算机设备及存储介质
CN108965711B (zh) 视频处理方法及装置
CN111083554A (zh) 直播礼物显示的方法和装置
CN107888975B (zh) 视频播放方法、装置及存储介质
WO2021143388A1 (zh) 码率切换方法及设备
CN111010588B (zh) 直播处理方法、装置、存储介质及设备
CN111478915B (zh) 直播数据的推流方法、装置、终端及存储介质
CN109714628B (zh) 播放音视频的方法、装置、设备、存储介质及系统
CN110177275B (zh) 视频编码方法及装置、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant