CN110460871B - 直播视频的生成方法、装置、系统及设备 - Google Patents
直播视频的生成方法、装置、系统及设备 Download PDFInfo
- Publication number
- CN110460871B CN110460871B CN201910810001.5A CN201910810001A CN110460871B CN 110460871 B CN110460871 B CN 110460871B CN 201910810001 A CN201910810001 A CN 201910810001A CN 110460871 B CN110460871 B CN 110460871B
- Authority
- CN
- China
- Prior art keywords
- video data
- preset
- resolution
- video
- quality 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004891 communication Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2407—Monitoring of transmitted content, e.g. distribution time, number of downloads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling 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
技术领域
本发明涉及直播技术领域,特别是涉及一种直播视频的生成方法、装置、系统及设备。
背景技术
在直播视频的生成中,直播视频的分辨率越高耗费的带宽越多。因此,为了适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性,直播系统可以生成不同分辨率的直播视频,以便向网络质量相对而言较好的观众客户端下发分辨率相对较高的直播视频,向网络质量相对而言较差的观众客户端下发分辨率相对低的直播视频。
相关技术中,可以由直播系统的服务器对主播客户端上传的固定分辨率的直播视频进行转码,得到适用于不同网络质量的不同分辨率的直播视频,进而向不同网络质量的观众客户端下发相应分辨率的直播视频。
但是,直播系统的服务器往往需要处理整个直播系统的大量数据,并且,转码耗费的数据处理资源相对而言较多。因此,由服务器转码得到多个不同分辨率的视频流时,往往占用服务器的大量数据处理资源,需要高配置的服务器才能保证正常工作,存在服务器的成本高的问题。
发明内容
本发明实施例的目的在于提供一种直播视频的生成方法、装置、系统及设备,以实现在保证不同网络质量下的直播流畅度的同时,降低服务器成本的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种直播视频的生成方法,应用于主播客户端,该方法包括:
采集主播进行直播的图像数据;
根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;
发送所得到的多个视频数据给所述主播客户端对应的服务器,以使得所述服务器在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;所述服务器从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
可选的,所述根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据,包括:
将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身;
针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据,包括:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
第二方面,本发明实施例提供了一种直播视频的生成方法,应用于主播客户端对应的服务器,该方法包括:
接收所述主播客户端发送的多个视频数据;所述多个视频数据为所述主播客户端根据多种预设分辨率,对采集的主播进行直播的图像数据进行编码,得到的分别对应每种预设分辨率的数据;
获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;
从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
可选的,所述从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给该观众客户端,包括:
从所述多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频,发送给相应的观众客户端;
其中,所述多个视频数据为所述主播客户端将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;
所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述多种视频数据,包括:
所述主播客户端针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
第三方面,本发明实施例提供了一种直播视频的生成装置,应用于主播客户端,该装置包括:
数据采集模块,用于采集主播进行直播的图像数据;
数据编码模块,用于根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;
数据发送模块,用于发送所得到的多个视频数据给所述主播客户端对应的服务器,以使得所述服务器在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;所述服务器从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
可选的,所述数据编码模块,具体用于:
将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身;
针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述数据编码模块,具体用于:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
第四方面,本发明实施例提供了一种直播视频的生成装置,应用于主播客户端对应的服务器,该装置包括:
数据接收模块,用于接收所述主播客户端发送的多个视频数据;所述多个视频数据为所述主播客户端根据多种预设分辨率,对采集的主播进行直播的图像数据进行编码,得到的分别对应每种预设分辨率的数据;
分辨率确定模块,用于获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;
视频发送模块,用于从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
可选的,所述视频发送模块,具体用于:
从所述多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频,发送给相应的观众客户端;
其中,所述多个视频数据为所述主播客户端将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;
所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述多种视频数据,包括:
所述主播客户端针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
第五方面,本发明实施例提供了一种直播视频的生成系统,该系统包括:
主播客户端,用于采集主播进行直播的图像数据;根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;发送所得到的多个视频数据给所述主播客户端对应的服务器;
服务器,用于在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
第六方面,本发明实施例提供了一种电子设备,该设备包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的直播视频的生成方法的步骤。
第七方面,本发明实施例提供了一种电子设备,该设备包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第二方面提供的直播视频的生成方法的步骤。
第八方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的直播视频的生成方法的步骤。
第九方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第二方面提供的直播视频的生成方法的步骤。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例提供的直播视频的生成方法的流程示意图;
图2为本发明另一实施例提供的直播视频的生成方法的流程示意图;
图3为本发明另一实施例提供的直播视频的生成方法中,不同级别的视频数据的关系示例图;
图4为本发明一实施例提供的直播视频的生成装置的结构示意图;
图5为本发明另一实施例提供的直播视频的生成装置的结构示意图;
图6为本发明一实施例提供的直播系统的结构示意图;
图7为本发明一实施例提供的电子设备的结构示意图;
图8为本发明一实施例提供的服务器的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明一实施例的直播视频的生成方法进行介绍。
本发明实施例提供的直播视频的生成方法,可以应用于直播系统中的主播客户端,或者与主播客户端对应的服务器。其中,主播客户端具体可以是直播App(Application,应用程序),或者,安装有直播App的电子设备。为了方便描述,后续均以主播客户端和服务器表示。
其中,安装有直播App的电子设备具体可以包括台式计算机、便携式计算机、互联网电视、智能移动终端以及可穿戴式智能终端等等;与主播客户端对应的服务器具体可以包括台式计算机、便携式计算机、互联网电视、智能移动终端以及可穿戴式智能终端等等。在此不作限定,任何可以实现本发明实施例的服务器,均属于本发明实施例的保护范围。
如图1所示,本发明一实施例的直播视频的生成方法的流程,该方法可以包括:
S101,主播客户端采集主播进行直播的图像数据。
为了得到直播视频,播客户端可以采集主播进行直播的图像数据。主播客户端采集主播进行直播的图像数据的方式可以是多种的。示例性的,主播客户端可以指示主播客户端所在电子设备上的摄像头采集主播进行直播的图像数据,主播客户端读取该摄像头采集的图像数据。或者,示例性的,主播客户端可以指示与主播客户端所在电子设备通信连接的摄像头采集主播进行直播的图像数据,主播客户端接收该摄像头通过通信连接传输的图像数据。
任何主播客户端可以采集主播进行直播的图像数据的方式,均可用于本发明,本实施例对此不作限制。
S102,主播客户端根据多种预设分辨率,对图像数据进行编码,得到每种预设分辨率分别对应的视频数据。
在具体应用中,主播客户端根据多种预设分辨率,对图像数据进行编码,得到每种预设分辨率分别对应的视频数据的方式,可以是是多种的。示例性的,主播客户端可以针对每种预设分辨率,将图像数据输入该预设分辨率对应的编码模型,获得该预设分辨率对应的视频数据。或者,示例性的,主播客户端可以将多种预设分辨率和图像数据输入预设的分级编码模型,得到每种预设分辨率对应级别的视频数据,并针对每种预设分辨率,将该预设分辨率对应级别的视频数据,和低于该级别的全部视频数据,作为该预设分辨率对应的视频数据。
为了便于理解和合理布局,后续在本发明图2实施例以及可选实施例中,对主播客户端根据多种预设分辨率,对图像数据进行编码,得到每种预设分辨率分别对应的视频数据的方式,进行具体说明。任何主播客户端根据多种预设分辨率对图像数据进行编码,得到每种预设分辨率分别对应的视频数据的方式,均可用于本发明,本实施例对此不作限制。
S103,主播客户端发送所得到的多个视频数据给主播客户端对应的服务器。
在本步骤中,主播客户端发送给对应服务器的多个视频数据分别对应于多种预设分辨率的视频数据。因此,与主播客户端发送固定分辨率的视频数据给服务器相比,在为了保证不同网络质量下的直播流畅度时,服务器可以在后续步骤S105至S106中直接转发所接收的视频数据,节省对所接收的视频数据进行转码的过程。
在此基础上,转码为转换视频数据的分辨率,例如,将分辨率1080P的视频数据转码为分辨率720P的视频数据,特别耗费服务器的数据处理资源。因此,节省对所接收的视频数据进行转码的过程,可以减少对服务器的数据处理资源的大量需求,从而可以保证在相同情况下,节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,与服务器相比,主播客户端通常无需对直播系统中其他客户端和服务器的数据进行处理,因此,由主播客户端进行编码所占用的数据处理资源,相对而言不会影响主播客户端的正常运行。
S104,服务器在接收到多个视频数据后,获取与主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率。
在具体应用中,服务器获取与主播客户端对应的多个观众客户端的网络质量信息的方式,可以是多种的。示例性的,服务器可以针对与主播客户端对应的多个观众客户端,发送时延探测数据给该观众客户端,从而按照观众客户端反馈对应于时延探测数据的响应数据的反馈时间,获得该观众客户端的网络质量信息。此时,反馈时间越长,观众客户端的网络质量相对而言越差。或者,示例性的,服务器可以直接读取观众客户端上报的该观众客户端的网速。其中,观众客户端的网速可以是观众客户端自身测量的,或者,可以是观众客户端从安装有观众客户端的电子设备中的网速测量装置中读取的。任何服务器获取与主播客户端对应的多个观众客户端的网络质量信息的方式,均可用于本发明,本实施例对此不作限制。
并且,预设的分辨率与网络质量信息之间的对应关系可以是多种的。示例性的,预设的分辨率与网络质量信息之间的对应关系可以是分辨率与网络质量信息之间的对应关系表。或者,示例性的,预设的分辨率与网络质量信息之间的对应关系可以是分辨率与网络质量信息之间的指针关系。或者,示例性的,预设的分辨率与网络质量信息之间的对应关系可以是键-值(Key-Value),可以将网络质量信息作为键,将分辨率作为值。任何预设的分辨率与网络质量信息之间的对应关系,均可用于本发明,本实施例对此不作限制。
其中,可选的,上述多种预设分辨率的种类可以为3种;相应的,上述观众客户端对应的网络质量信息,具体可以包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
在本可选实施例中,将预设分辨率的种类设置为3种,在此基础上了,为了保证观众客户端对应的网络质量与预设分辨率对应,可以将网络质量信息设置为对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息。其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。此时,服务器获取每个观众客户端的网络质量信息,具体可以包括:服务器获取每个观众客户端的网络质量数据,并从预设的网络质量数据与网络质量信息的对应关系中,查找所获取的网络质量数据对应的网络质量信息。通过将多种预设分辨率的种类设置为3种,并且对应于三种网络质量信息,可以在保证尽可能多的观众客户端的直播流畅度的同时,避免过多的分辨率种类引起的编码压力。
示例性的,服务器获取的观众客户端AC1的网络质量数据为网速46KBs。预设的网络质量数据与网络质量信息的对应关系包括:第一网速≥1MBs,与第一质量信息“高质量”对应;125KBs≤第二网速<1MBs,与第二质量信息“普通质量”对应;第三网速<125KBs,与第三质量信息“低质量”对应。因此,查找到观众客户端AC1的网络质量数据网速46KBs对应的网络质量信息为“低质量。”
另外,针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率,具体可以包括:针对每个观众客户端,从预设的分辨率与网络质量信息之间的对应关系中,查找该观众客户端的网络质量信息对应的分辨率,作为与该观众客户端对的分辨率。
S105,服务器从多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频。
在具体应用中,服务器从多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频的方式,可以是多种的。示例性的,当视频数据为主播客户端针对每种预设分辨率,将图像数据输入该预设分辨率对应的编码模型,得到的该预设分辨率对应的数据时,服务器可以直接从多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频。或者,示例性的,当视频数据为主播客户端将多种预设分辨率和图像数据输入预设的分级编码模型,得到每种预设分辨率对应级别的视频数据,并针对每种预设分辨率,将该预设分辨率对应级别的视频数据,和低于该级别的全部视频数据,作为该预设分辨率对应的视频数据时,服务器可以从多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频。
为了便于理解和合理布局,后续在本发明图2实施例以及可选实施例中,对服务器从多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频的方式,进行具体说明。任何服务器从多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频的方式,均可用于本发明,本实施例对此不作限制。
S106,发送所选择的直播视频给相应的观众客户端。
在本步骤中,所选择的的直播视频的分辨率与观众客户端的网络质量信息对应,因此,发送所选择的直播视频给相应的观众客户端,可以保证直播视频适配不同观众客户端的网络质量,实现不同网络质量下的直播流畅性。举例而言,主播客户端HC1对应的观众客户端为AC1至AC3,可以发送分辨率为1080P的直播视频给网络质量信息为“高质量”的观众客户端AC1;发送分辨率为270P的直播视频给网络质量信息为“低质量”的观众客户端AC;发送分辨率为540P的直播视频给网络质量信息为“普通质量”的观众客户端AC3。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
可选的,上述本发明图1实施例中的根据多种预设分辨率,对图像数据进行编码,得到每种预设分辨率分别对应的视频数据,具体可以包括:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
为了保证服务器可以从所接收的多个视频数据中,选择可以作为直播视频的视频数据,主播客户端可以针对每种预设分辨率,将图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。此时,视频数据为可以直接作为直播视频的数据。举例而言,主播客户端可以将图像数据输入预设分辨率270P对应的编码模型,得到分辨率为270P的视频数据,该视频数据可以直接作为分辨率为270P的直播视频。类似的,对于任一种预设分辨率的视频数据,可以采样相同的方式得到,区别在于预设分辨率不同,所使用的编码模型不同。
在具体应用中,任一种预设分辨率对应的编码模型的类别可以是多种的。示例性的,任一种预设分辨率对应的编码模型的类别可以是Hardware Video Codec(视频编解码器),是一个高效的Android(安卓)音视频编码器,可以用于实现任何分辨率的视频的编码。或者,示例性的,任一种预设分辨率对应的编码模型的类别可以是MPEG系列的编码模型。MPEG系列的编码模型由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发,例如,用于实现视频编码的Mpeg1协议、Mpeg2协议以及Mpeg4协议等等。或者,示例性的,任一种预设分辨率对应的编码模型的类别可以是H.26X系列的编码模型。H.26X系列的编码模型由ITU(国际电传视讯联盟)主导,侧重编码得到的视频的网络传输性能,例如,H.26X系列的编码模型可以包括H.261协议、H.262协议、以及H.264协议。
在本可选实施例中,由于对图像数据编码得到的视频数据,可以直接作为对应分辨率的直播视频,因此,任一可以编码得到该分辨率的直播视频的编码模型均可使用,相对而言,对编码模型的适用范围更广。因此,可以在保证不同网络质量下的直播流畅度、以及降低服务器成本的同时,增强适用范围。
如图2所示,本发明另一实施例的直播视频的生成方法的流程,该方法可以包括:
S201,主播客户端采集主播进行直播的图像数据。
上述S201与本发明图1实施例的S101为相同步骤,在此不再赘述,详见上述本发明图1实施例的描述。
S202,主播客户端将多种预设分辨率和图像数据,输入预设的分级编码模型,编码得到与多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。其中,级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;最低级别的视频数据为该直播视频本身。
在具体应用中,分辨率是用于度量图像内数据量多少的一个参数,相当于单位长度内的有效像素值,通常分辨率越高视频越清晰。因此,在分辨率不同而视频内容相同的多个视频中,分辨率相对而言较高的视频的单位长度内的有效像素值包括:分辨率相对而言较低的视频的单位长度内不存在的有效像素值。并且,向某一主播客户端对应的多个观众客户端发送的相应分辨率的直播视频,为分辨率不同而视频内容相同的视频。因此,为了得到可以作为直播视频的视频数据,主播客户端可以将多种预设分辨率和图像数据,输入预设的分级编码模型,编码得到与多种预设分辨率分别对应的不同级别的视频数据。
其中,级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据。预设的分级编码模型为可以针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型。此时,主播客户端得到的视频数据为不同预设分辨率的直播视频之间的差异数据,相应的,可以针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。当然,对于多种预设分辨率中,最低的预设分辨率而言,由于不存在级别低于该预设分辨率的分辨率,因此,最低的预设分辨率的最低级别的视频数据为该直播视频本身。
示例性的,可以将预设的分级编码模型输出的视频数据看作数组[Mn],数组长度n为预设分辨率的种类,即按照所对应的预设分辨率的大小差异进行划分的级别数。数组[Mn]中,视频数据M0是分辨率为270P的视频数据,可以直接作为分辨率270P的直播视频。视频数据M1是分辨率270p的直播视频与分辨率540P的直播视频之间不同的数据,可以将视频数据M0和M1作为分辨率540p的直播视频,即:分辨率540p的直播视频=视频数据M0+视频数据M1。其中,视频数据M0相当于分辨率540p的直播视频和分辨率270P的直播视频之间相同的像素值对应的复用数据,视频数据M1相当于分辨率540p的直播视频和分辨率270P的直播视频之间不同的像素值对应的差异数据。
S203,主播客户端发送所得到的多个视频数据给主播客户端对应的服务器。
S204,服务器在接收到多个视频数据后,获取与主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率。
上述S203至S204与本发明图1实施例的S103至S104为相同步骤,在此不再赘述,详见上述本发明图1实施例的描述。
S205,服务器从多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频。
与上述步骤S202对应的,服务器所接收的分别对应于多种预设分辨率多个视频数据包括:针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。因此,服务器可以从多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频。
示例性的,服务器从多个视频数据[Mn]中,选择与所确定的分辨率270P对应级别的视频数据M0,作为分辨率270P的直播视频;选择与所确定的分辨率540P对应级别的视频数据M1,和级别低于视频数据M1的视频数据M0,作为分辨率540p的直播视频。
S206,发送所选择的直播视频给相应的观众客户端。
上述S206与本发明图1实施例的S106为相同步骤,在此不再赘述,详见上述本发明图1实施例的描述。
在上述图2实施例中,针对每种预设分辨率,该预设分辨率对应的视频数据是主播客户端利用预设的分级编码模型得到的不同级别的视频数据中,该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据。由此,主播客户端得到的视频数据包括:各预设分辨率的直播视频之间相同的复用数据和不同的差异数据。与直接编码得到每种预设分辨率的完整视频数据相比,可以减少对复用数据的重复编码,从而在保证不同网络质量下的直播流畅度,以及降低服务器成本的同时,降低视频数据的数据量。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
在具体应用中,预设分辨率之间可以成倍数关系:相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍,从而可以在尽可能保证预设分辨率多样性的同时,减少视频数据的数据量,降低视频数据传输过程中所需的带宽和时间成本。其中,指定数量倍可以包括:两倍以及三倍等等。
示例性的,上述预设的分级编码模型,具体可以包括:基于数字视频压缩格式H.264的可分级视频编码SVC编码协议。当预设的分级编码模型为基于数字视频压缩格式H.264的可分级视频编码SVC编码协议时,利用SVC编码协议得到的视频数据的级别所对应的预设分辨率中,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的两倍。
如图3所示,最低级别的视频数据M0对应的预设分辨率为270P,中等级别的视频数据M1对应的预设分辨率为540P,最高级别的视频数据M2对应的预设分辨率为1080P。相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的两倍:540P=270P×2,1080P=540P×2。并且,分辨率为1080P的直播视频=视频数据M0+M1+M2;分辨率为540P的直播视频=视频数据M0+M1;分辨率为270P的直播视频=视频数据M0。此时,服务器接收到的多个视频数据包括:视频数据M0,视频数据M1以及视频数据M2。当服务器确定观众客户端AC1的网络质量信息对应的分辨率为540P时,服务器从多个视频数据中选择视频数据M0和视频数据M1发送给观众客户端AC1。当服务器确定观众客户端AC1的网络质量信息对应的分辨率为1080P时,服务器从多个视频数据中选择视频数据M0、视频数据M1和视频数据M2发送给观众客户端AC1。
相应于上述方法实施例,本发明一实施例还提供了直播视频的生成装置。
如图4所示,本发明一实施例的直播视频的生成装置,应用于主播客户端,该装置可以包括:
数据采集模块401,用于采集主播进行直播的图像数据;
数据编码模块402,用于根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;
数据发送模块403,用于发送所得到的多个视频数据给所述主播客户端对应的服务器,以使得所述服务器在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;所述服务器从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
可选的,所述数据编码模块402,具体用于:
将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身;
针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述数据编码模块402,具体用于:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
如图5所示,本发明一实施例的直播视频的生成装置,应用于主播客户端,该装置可以包括:
数据接收模块501,用于接收所述主播客户端发送的多个视频数据;所述多个视频数据为所述主播客户端根据多种预设分辨率,对采集的主播进行直播的图像数据进行编码,得到的分别对应每种预设分辨率的数据;
分辨率确定模块502,用于获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;
视频发送模块503,用于从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
可选的,所述视频发送模块503,具体用于:
从所述多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频,发送给相应的观众客户端;
其中,所述多个视频数据为所述主播客户端将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;
所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频不同的数据;其中,最低级别的视频数据为该直播视频本身。
可选的,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
可选的,所述多种视频数据,包括:
所述主播客户端针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
可选的,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
如图6所示,本发明一实施例的直播视频的生成系统,该系统包括:
主播客户端601,用于采集主播进行直播的图像数据;根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;发送所得到的多个视频数据给所述主播客户端对应的服务器;
服务器602,用于在接收到所述多个视频数据后,获取与所述主播客户端601对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
相应于上述实施例,本发明实施例还提供了一种电子设备,如图7所示,该设备可以包括:
处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器通703过通信总线704完成相互间的通信;
存储器703,用于存放计算机程序;
处理器701,用于执行上述存储器703上所存放的计算机程序时,实现上述实施例中任一应用于主播客户端的直播视频的生成方法的步骤。
可以理解的是,在具体应用中,该电子设备可以为主播客户端。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
本发明实施例还提供了一种服务器,如图8所示,该服务器可以包括:
处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器通803过通信总线804完成相互间的通信;
存储器803,用于存放计算机程序;
处理器801,用于执行上述存储器803上所存放的计算机程序时,实现上述实施例中任一应用于与主播客户端对应的服务器的直播视频的生成方法的步骤。
可以理解的是,该服务器为与主播客户端对应的服务器。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于电子设备,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述实施例中任一直播视频的生成方法的步骤。可以理解的是,当该电子设备为服务器,该计算机程序被处理器执行时,实现上述实施例中任一应用于与主播客户端对应的服务器的直播视频的生成方法的步骤。当该电子设备为主播客户端,该计算机程序被处理器执行时,实现上述实施例中任一应用于主播客户端的直播视频的生成方法的步骤。
本发明实施例提供的方案中,由主播客户端根据多种预设分辨率,对主播进行直播的图像数据进行编码,得到每种预设分辨率分别对应的视频数据,并发送给服务器,从而使得服务器可以直接从所接收的多个视频数据中选择与观众客户端的网络质量信息对应的视频数据,发送给该观众客户端。与需要由服务器转码得到多种分辨率的直播视频相比,可以节约转码所占用的服务器的大量数据处理资源,从而降低服务器成本。并且,主播客户端编码得到的多种预设分辨率对应的多个视频数据,可以适配不同观众客户端的网络质量,保证不同网络质量下的直播流畅性。可见,通过本方案,能够在保证不同网络质量下的直播流畅度的同时,降低服务器成本。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的直播视频的生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字运维人员线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:DVD(Digital Versatile Disc,数字通用光盘))、或者半导体介质(例如:SSD(Solid StateDisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (21)
1.一种直播视频的生成方法,其特征在于,应用于主播客户端,所述方法包括:
采集主播进行直播的图像数据;
根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;
发送所得到的多个视频数据给所述主播客户端对应的服务器,以使得所述服务器在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;所述服务器从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端;
所述根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据,包括:
将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频之间的差异数据;其中,最低级别的视频数据为该直播视频本身;所述预设的分级编码模型为针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型;
针对每种预设分辨率,将该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。
2.根据权利要求1所述的方法,其特征在于,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
3.根据权利要求1所述的方法,其特征在于,所述根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据,包括:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
5.一种直播视频的生成方法,其特征在于,应用于主播客户端对应的服务器,所述方法包括:
接收所述主播客户端发送的多个视频数据;所述多个视频数据为所述主播客户端根据多种预设分辨率,对采集的主播进行直播的图像数据进行编码,得到的分别对应每种预设分辨率的数据;
获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;
从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端;
所述从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给该观众客户端,包括:
从所述多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频,发送给相应的观众客户端;
其中,所述多个视频数据为所述主播客户端将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;所述预设的分级编码模型为针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型;
所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频之间的差异数据;其中,最低级别的视频数据为该直播视频本身。
6.根据权利要求5所述的方法,其特征在于,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
7.根据权利要求5所述的方法,其特征在于,所述多个 视频数据,包括:
所述主播客户端针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
9.一种直播视频的生成装置,其特征在于,应用于主播客户端,所述装置包括:
数据采集模块,用于采集主播进行直播的图像数据;
数据编码模块,用于根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;
数据发送模块,用于发送所得到的多个视频数据给所述主播客户端对应的服务器,以使得所述服务器在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;所述服务器从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端;
所述数据编码模块,具体用于:
将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频之间的差异数据;其中,最低级别的视频数据为该直播视频本身;所述预设的分级编码模型为针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型;
针对每种预设分辨率,将该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据。
10.根据权利要求9所述的装置,其特征在于,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
11.根据权利要求9所述的装置,其特征在于,所述数据编码模块,具体用于:
针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;
针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
13.一种直播视频的生成装置,其特征在于,应用于主播客户端对应的服务器,所述装置包括:
数据接收模块,用于接收所述主播客户端发送的多个视频数据;所述多个视频数据为所述主播客户端根据多种预设分辨率,对采集的主播进行直播的图像数据进行编码,得到的分别对应每种预设分辨率的数据;
分辨率确定模块,用于获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;
视频发送模块,用于从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端;
所述视频发送模块,具体用于:
从所述多个视频数据中,选择与所确定的分辨率对应级别的视频数据,和级别低于该视频数据的全部视频数据,作为直播视频,发送给相应的观众客户端;
其中,所述多个视频数据为所述主播客户端将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据,且针对每种预设分辨率,将该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;所述预设的分级编码模型为针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型;
所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频之间的差异数据;其中,最低级别的视频数据为该直播视频本身。
14.根据权利要求13所述的装置,其特征在于,相邻级别的两种预设分辨率中,级别高的预设分辨率为级别低的预设分辨率的指定数量倍。
15.根据权利要求13所述的装置,其特征在于,所述多个 视频数据,包括:
所述主播客户端针对每种预设分辨率,从预设的分辨率与编码模型的对应关系中,查找该预设分辨率对应的编码模型;针对每种预设分辨率,将所述图像数据输入该预设分辨率对应的编码模型,得到该预设分辨率对应的视频数据。
16.根据权利要求13至15任一项所述的装置,其特征在于,所述多种预设分辨率的种类为3种;
所述观众客户端对应的网络质量信息包括:对应于第一网速的第一质量信息、对应于第二网速的第二质量信息以及对应于第三网速的第三质量信息;
其中,各网速为观众客户端的网速,且各网速之间的大小关系包括:所述第一网速>所述第二网速>所述第三网速;各质量信息所表明的质量之间的大小关系包括:所述第一质量信息所表明的质量>所述第二质量信息所表明的质量>所述第三质量信息所表明的质量。
17.一种直播系统,其特征在于,所述系统包括:
主播客户端,用于采集主播进行直播的图像数据;根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据;发送所得到的多个视频数据给所述主播客户端对应的服务器;所述根据多种预设分辨率,对所述图像数据进行编码,得到每种预设分辨率分别对应的视频数据,包括:将所述多种预设分辨率和所述图像数据,输入预设的分级编码模型,编码得到与所述多种预设分辨率分别对应的不同级别的视频数据;所述级别为按照所对应的预设分辨率的大小差异进行划分得到的;任一级别的视频数据为该级别的直播视频与低于该级别的直播视频之间的差异数据;其中,最低级别的视频数据为该直播视频本身;所述预设的分级编码模型为针对每种预设分辨率,将图像数据编码为该预设分辨率的直播视频与低于该预设分辨率的直播视频之间的差异数据的模型;针对每种预设分辨率,将该预设分辨率对应级别的视频数据和级别低于该视频数据的全部视频数据,作为与该预设分辨率对应的视频数据;
服务器,用于在接收到所述多个视频数据后,获取与所述主播客户端对应的多个观众客户端的网络质量信息,并针对每个观众客户端,根据预设的分辨率与网络质量信息之间的对应关系,确定与该观众客户端对应的分辨率;从所述多个视频数据中,选择与所确定的分辨率对应的视频数据,作为直播视频,发送给相应的观众客户端。
18.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-4任一所述的方法步骤。
19.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求5-8任一所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4任一所述的方法步骤。
21.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求5-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810001.5A CN110460871B (zh) | 2019-08-29 | 2019-08-29 | 直播视频的生成方法、装置、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810001.5A CN110460871B (zh) | 2019-08-29 | 2019-08-29 | 直播视频的生成方法、装置、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110460871A CN110460871A (zh) | 2019-11-15 |
CN110460871B true CN110460871B (zh) | 2022-01-21 |
Family
ID=68489914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910810001.5A Active CN110460871B (zh) | 2019-08-29 | 2019-08-29 | 直播视频的生成方法、装置、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110460871B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113038136B (zh) * | 2019-12-25 | 2022-10-11 | 成都鼎桥通信技术有限公司 | 一种视频自适应调整方法和装置 |
CN111107387B (zh) * | 2019-12-30 | 2021-12-28 | 广州酷狗计算机科技有限公司 | 视频转码方法、装置及计算机存储介质 |
CN111212302A (zh) * | 2020-03-17 | 2020-05-29 | 北京字节跳动网络技术有限公司 | 视频清晰度的确定方法、装置、电子设备及存储介质 |
CN113411340A (zh) * | 2021-06-22 | 2021-09-17 | 中国农业银行股份有限公司 | 视频处理方法、装置、电子设备、存储介质和程序产品 |
CN113891112B (zh) * | 2021-09-29 | 2023-12-05 | 北京拙河科技有限公司 | 十亿像素视频的直播方法、装置、介质及设备 |
CN114172873B (zh) * | 2021-12-13 | 2023-05-30 | 中国平安财产保险股份有限公司 | 分辩率调整方法、装置、服务器及计算机可读存储介质 |
CN114449311B (zh) * | 2021-12-27 | 2023-11-10 | 济南超级计算技术研究院 | 一种基于高效视频流转发的网络视频交换系统及方法 |
CN114885182A (zh) * | 2022-04-18 | 2022-08-09 | 武汉斗鱼鱼乐网络科技有限公司 | 一种视频直播管理方法及相关设备 |
CN115589499B (zh) * | 2022-10-08 | 2023-09-29 | 深圳市东恒达智能科技有限公司 | 远程教育播放码流分发控制系统及方法 |
CN116962799A (zh) * | 2023-07-24 | 2023-10-27 | 北京国际云转播科技有限公司 | 直播视频数据的传输方法、装置、主播客户端及服务器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100074341A1 (en) * | 2008-09-19 | 2010-03-25 | Wade Wan | Method and system for multiple resolution video delivery |
CN103402122A (zh) * | 2013-06-24 | 2013-11-20 | 中国联合网络通信集团有限公司 | 移动流媒体服务控制方法及其装置 |
CN105392029A (zh) * | 2015-11-09 | 2016-03-09 | Tcl集团股份有限公司 | 一种hls点播和直播的实现方法及系统 |
CN107968954B (zh) * | 2016-10-19 | 2023-03-31 | 北京新唐思创教育科技有限公司 | 在线直播系统 |
GB201706848D0 (en) * | 2017-04-28 | 2017-06-14 | Forbidden Tech Plc | Ftl uk |
CN108966008B (zh) * | 2018-08-02 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 直播视频回放方法及装置 |
-
2019
- 2019-08-29 CN CN201910810001.5A patent/CN110460871B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110460871A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460871B (zh) | 直播视频的生成方法、装置、系统及设备 | |
JP6270873B2 (ja) | メディアコンテンツの適応型ストリーミングのための品質情報の使用 | |
Laghari et al. | Quality of experience assessment of video quality in social clouds | |
US10687122B2 (en) | Concept for determining the quality of a media data stream with varying quality-to-bitrate | |
KR101467430B1 (ko) | 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템 | |
EP3506640A1 (en) | Content-aware predictive bitrate ladder | |
CN105163134A (zh) | 直播视频的视频编码参数设置方法、装置及视频编码设备 | |
US8656443B2 (en) | Method and system for providing dynamic time slice encoding for complete internet anywhere | |
CN103702139A (zh) | 一种移动环境下基于可扩展编码的视频点播系统 | |
US20080320158A1 (en) | Apparatus and method for providing multimedia content | |
CN102450014A (zh) | 用于质量感知视频优化的框架 | |
CN107005700B (zh) | 用于组成中间视频表示的方法 | |
CN105100823A (zh) | 一种自适应媒体业务的处理方法、装置、编码器及解码器 | |
CN104935952B (zh) | 一种视频转码方法和系统 | |
EP2730093A1 (en) | Techniques for dynamic switching between coded bitstreams | |
US10291677B2 (en) | Method of adaptive downloading of digital contents for several screens | |
US7925721B2 (en) | Method and apparatus for converting the modality of multimedia contents to support the quality of service according to media resource | |
JP2015510355A (ja) | コンピュータにより実行される方法及び記憶媒体 | |
CN113301388A (zh) | 一种视频流处理系统、设备和方法 | |
KR101882889B1 (ko) | 비디오 트랜스코딩 방법 및 시스템 | |
Anufrienko | Appliances of smart TV as an IoT device for Industry 4.0 | |
WO2023130893A1 (zh) | 流媒体传输方法、装置、电子设备及计算机可读存储介质 | |
KR100898769B1 (ko) | 실시간 스트리밍 서비스를 위한 svc 비디오 데이터추출기 및 방법 | |
CN104506882A (zh) | 互联网流媒体转换成iptv格式的服务器及其转换方法 | |
CN114630134B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210525 Address after: 25, 5th floor, shuangjingfang office building, 3 frisha street, Singapore Applicant after: Zhuomi Private Ltd. Address before: Room 1101, Santai Commercial Building, 139 Connaught Road, Hong Kong, China Applicant before: HONG KONG LIVE.ME Corp.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |