CN111405312A - 直播推流方法、装置、终端、服务器及存储介质 - Google Patents
直播推流方法、装置、终端、服务器及存储介质 Download PDFInfo
- Publication number
- CN111405312A CN111405312A CN202010339447.7A CN202010339447A CN111405312A CN 111405312 A CN111405312 A CN 111405312A CN 202010339447 A CN202010339447 A CN 202010339447A CN 111405312 A CN111405312 A CN 111405312A
- Authority
- CN
- China
- Prior art keywords
- stream
- stream pushing
- pushing
- server
- live
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000012360 testing method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 20
- 230000006835 compression Effects 0.000 description 14
- 238000007906 compression Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 239000000919 ceramic Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005282 brightening Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/2408—Monitoring of the upstream path of the transmission network, e.g. client requests
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种直播推流方法、装置、终端、服务器及存储介质,属于网络技术领域。所述方法用于推流端,该方法包括:接收到直播指令时,向推流服务器推送第一直播视频流,第一直播视频流采用第一编码方式编码得到;向推流服务器发送推流信息,推流信息用于表征推流端的编码能力以及推流能力;接收推流服务器发送的推流指令,推流指令由推流服务器在推流信息满足预设推流条件时发送,推流指令用于指示推流端推送第二直播视频流,第二直播视频流采用第二编码方式编码得到;根据推流指令,向推流服务器推送第二直播视频流。
Description
技术领域
本申请实施例涉及网络技术领域,特别涉及一种直播推流方法、装置、终端、服务器及存储介质。
背景技术
随着网络技术的发展,直播平台的应用越来越广泛。直播平台中可以包括主播和观看用户,主播对应网络直播过程中的推流端,而观看用户对应网络直播过程中的拉流端。推流端在推流过程中主要包括四个环节:对图像进行采集;对采集信息进行前处理;对采集信息进行编码压缩,得到视频流;将视频流推流到服务器,以便于推流服务器对视频流进行分发。
对于编码压缩环节,相关技术中,包括提供了H264视频编码技术和H265视频编码技术。H265视频编码技术通过提升计算复杂度,在同等上行带宽条件下具备更高的画面质量,但要求播放设备支持解码播放H265视频。
当播放设备不具备解码播放H265视频的硬件能力时,需要由推流服务器进行转码运算,导致服务器成本显著提高。
发明内容
本申请实施例提供了一种直播推流方法、装置、终端、服务器及存储介质,所述技术方案如下:
一方面,提供了一种直播推流方法,所述方法用于推流端,所述方法包括:
接收到直播指令时,向推流服务器推送第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
向所述推流服务器发送推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
接收所述推流服务器发送的推流指令,所述推流指令由所述推流服务器在所述推流信息满足预设推流条件时发送,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
根据所述推流指令,向所述推流服务器推送所述第二直播视频流。
另一方面,提供了一种直播推流方法,所述方法用于推流服务器,所述方法包括:
接收推流端推送的第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
获取所述推流端对应的推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
接收所述推流端推送的所述第二直播视频流。
另一方面,提供了一种直播推流装置,所述装置用于推流端,所述装置包括:
第一推送模块,用于接收到直播指令时,向推流服务器推送第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息发送模块,用于向所述推流服务器发送推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令接收模块,用于接收所述推流服务器发送的推流指令,所述推流指令由所述推流服务器在所述推流信息满足预设推流条件时发送,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二推送模块,用于根据所述推流指令,向所述推流服务器推送所述第二直播视频流。
另一方面,提供了一种直播推流装置,所述装置用于推流服务器,所述装置包括:
第一接收模块,用于接收推流端推送的第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息接收模块,用于获取所述推流端对应的推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令发送模块,用于响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二接收模块,用于接收所述推流端推送的所述第二直播视频流。
另一方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的直播推流方法。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的直播推流方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的直播推流方法。
另一方面,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述方面所述的直播推流方法。
本申请实施例中,对于直播***而言,推流端在开播后,以默认的第一编码方式对直播视频流进行压缩编码,并推送至推流服务器;然而,对于直播视频流的推送而言,存在更优编码方式下的直播视频流,即第二直播视频流,但第二直播视频流的推送需要推流端具备一定的编码能力和推流能力,因此,推流端向推流服务器发送推流信息,以让推流服务器根据推流信息判断推流端是否满足预设推流条件,当满足时,推流服务器向推流端发送推流指令;进一步的,推流端根据推流指令实现同时推送第一直播视频流和第二直播视频流。相较于相关技术中采用一种编码方式对直播视频流进行压缩编码以及由推流服务器进行转码运算的方法而言,采用本申请实施例提供的方法可以实现推流端同时推送不同编码方式下的直播视频流,以提高直播视频流推送效率;且压缩编码过程由推流端实现,能够减少推流服务器的编码运算压力,以及降低推流服务器成本。
附图说明
图1示出了本申请一示例性实施例提供的一种直播***的示意图;
图2示出了本申请一示例性实施例提供的直播推流方法的流程图;
图3示出了本申请另一示例性实施例提供的直播推流方法的流程图;
图4示出了本申请另一示例性实施例提供的直播推流方法的流程图;
图5示出了本申请一示例性实施例提供的推流端实现同时推流的流程图;
图6示出了本申请一示例性实施例提供的直播推流装置的结构框图;
图7示出了本申请另一示例性实施例提供的直播推流装置的结构框图;
图8示出了本申请一示例性实施例提供的终端的结构方框图;
图9示出了本申请一示例性实施例提供的服务器的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是本申请一示例性实施例提供的一种直播***的示意图。请参考图1,该直播***可以包括:推流端100、推流服务器200和拉流端300。
可选的,推流端100中安装和运行有网络主播所使用的主播客户端。网络主播可以在该主播客户端中注册直播间,并通过该直播间与其他观看直播的用户进行音频、视频、桌面共享、文档共享等互动。本申请实施例中,网络主播触发主播客户端进行开播,推流端100采集实时的图像,并将所采集的图像进行压缩编码得到直播视频流,继而将直播视频流发送给推流服务器200。
推流端100通过无线网络或有线网络与推流服务器200相连。
推流服务器200是直播***中直播间交互信息的中转站,用于接收来自推流端100的直播视频流,并推送给拉流端300,继而拉流端300观看直播对应的用户客户端接收到该直播视频流,并通过终端设备进行硬件解码方式或在线解码方式进行直播视频流的解码与播放。可选的,推流服务器200可以是独立的服务器,也可以集合为服务器集群、虚拟云存储或云计算中心中的任意一种,以推流服务器200为服务器集群为例,本申请实施例中,推流服务器200可以包括推流控制服务器210和视频流管理服务器220,其中,推流控制服务器210和视频流管理服务器220之间通过无线网络或有线网络相连。在推流端一侧,推流端100通过无线网络或有线网络分别与推流控制服务器210和视频流管理服务器220相连;在拉流端一侧,拉流端300通过无线网络或有线网络分别与推流控制服务器210和视频流管理服务器220相连。
结合上述推流服务器200的组成,在本申请实施例中,推流端100将压缩编码后的直播视频流推流至视频流管理服务器220,视频流管理服务器220根据拉流端300的用户观看需求将该直播视频流进行分发,继而通过拉流端300对所接收到的直播视频流进行解码与播放;此外,在本申请实施例中,推流端100还可以推送基于不同编码方式得到的直播视频流。如图1所示,推流端100首先推送第一直播视频流至视频流管理服务器220,其中,第一直播视频流是第一编码方式得到的直播视频流,当推流端100推送其它编码方式(如第二编码方式)得到的直播视频流时,需要通过推流控制服务器210的审核,其过程为推流端100将推流信息发送至推流控制服务器210,推流控制服务器210对推流信息进行审核,判断推流端100当前是否具备推送不同编码方式的直播视频流的条件,当满足时,推流控制服务器210向推流端100发送指示同意推送的推流指令,继而推流端100推送第一直播视频流和第二直播视频流。
可选的,推流服务器200还可以包括主播标识管理服务器,主播标识管理服务器用于管理网络直播过程中的主播标识创建、主播标识监督等等事件;可选的,推流服务器200还可以包括直播间标识管理服务器,直播间标识管理服务器用于管理网络直播过程中的直播间标识创建、直播间标识监督等等事件。上述推流服务器200可能包括的服务器仅为示意性的举例出,还可以根据本申请实施例的内容进行补充,本申请实施例对此不作限定。
此外,当推流服务器200是独立的服务器时,则推流服务器200具备上述各个服务器的后台服务功能。
请参考图2,其示出了本申请一示例性实施例提供的直播推流方法的流程图。该方法适用于图1所示的直播***,该方法包括:
步骤201,推流端接收到直播指令时,向推流服务器推送第一直播视频流。
其中,视频流是指视频数据的传输。推流端通过摄像头采集完图像后,需要对所采集的图像进行压缩编码,并将压缩编码后的视频数据推流至推流服务器。
在本申请实施例中,视频流包括第一直播视频流和第二直播视频流。其中,第一直播视频流是指以第一编码方式编码得到的视频流;对应的,第二直播视频流是指以第二编码方式编码得到的视频流。
需要说明的是,在本申请实施例中,以相同画面质量下第二直播视频流的带宽占用率低于第一直播视频流的带宽占用率为实施场景进行示例性的说明,即在相同的带宽条件下,第二直播视频流的播放画质高于第一直播视频流的播放画质,但并不排除相同画面质量下第二直播视频流的带宽占用率高于第一直播视频流的带宽占用率的实施场景。其中,第一编码方式可以是默认编码方式。
在本申请实施例中,在推流端接收到直播指令时进行开播,并向推流服务器推送第一直播视频流。其中,直播指令根据主播对开播控件的触发操作得到,如在直播客户端界面显示有指示开播的开播控件,当主播触摸点击该开播控件,则直播客户端根据该触发操作生成直播指令。
步骤202,推流服务器接收推流端推送的第一直播视频流。
对应的,推流服务器接收推流端推送的第一直播视频流。可选的,推流服务器将第一直播视频流进行存储;当拉流端存在观看用户进入直播间时,推流服务器将第一直播视频流分发到拉流端对应的各个用户客户端。
步骤203,推流端向推流服务器发送推流信息。
可选的,在本申请实施例中,以第一编码方式为H264编码方式和第二编码方式为H265编码方式为例进行示意性的说明。
在相关技术中,H264编码方式与H265编码方式均是视频压缩编码标准。其中,H264编码方式是相关技术中较为普遍的视频压缩编码技术,而H265编码方式是H264编码方式的改进。与H264编码方式相比,除上述的相同画面质量下,H265编码方式下的第二直播视频流的带宽占用率低于H264编码方式下的第一直播视频流的带宽占用率,此外,在相同画面质量和码率下,基于H265编码方式下的第二直播视频流所需的存储空间低于H264编码方式下的第一直播视频流所需的存储空间。
由此可见,在推流过程中,除了继续使用较为普遍的H264编码方式进行视频流的压缩编码,有必要推广使用H265编码方式来进行视频流的压缩编码。
然而,是否可使用H265编码方式来进行视频流的压缩编码是需要结合实际的网络环境以及设备支持信息来进行判断的。当推流端的用户设备或者直播***并不支持H265编码方式下直播视频流的压缩编码时,则无法进行第二直播视频流的推流。
因此,在一种可能的实施方式中,推流端向推流服务器发送推流信息,其中,推流信息用于表征推流端的编码能力。当推流信息表征推流端具备第二编码方式下的编码能力时,推流端则可进行第二直播视频流的推流;当推流信息表征推流端不具备第二编码方式下的编码能力,推流端则无法进行第二直播视频流的推流。
此外,当推流端同时推送第一直播视频流和第二直播视频流时,表明当前所占用的上行带宽更大。因此,推流端具备第二编码方式下的编码能力时,若当前上行带宽不够用,则也无法进行第二直播视频流的推流。因此,推流端向推流服务器发送的推流信息也用于表征推流端的推流能力,即推流信息用于表征推流端的编码能力以及推流能力。
步骤204,推流服务器获取推流端对应的推流信息。
对应的,推流端向推流服务器发送推流信息后,推流服务器获取推流端对应的推流信息。
步骤205,响应于推流信息指示推流端满足预设推流条件,推流服务器向推流端发送推流指令。
其中,推流指令由推流服务器在推流信息满足预设推流条件时发送,并用于指示推流端推送第二直播视频流。
在一种可能的实施方式中,推流服务器预设有预设推流条件,用于判断推流端是否满足进行第二直播视频流推送的条件。可选的,预设推流条件包括与编码能力相关的预设推流条件以及与推流能力相关的预设编码条件。
当推流信息指示推流端满足预设推流条件,则推流服务器向推流端发送推流指令。
在一个示例中,推流信息表征推流端具备第二编码方式下的编码能力,以及当前网络环境满足同时推送第一直播视频流和第二直播视频流的网络要求,则推流服务器判断推流信息指示推流端满足预设推流条件,继而向推流端发送推流指令。
步骤206,推流端接收推流服务器发送的推流指令。
对应的,推流服务器向推流端发送推流指令后,推流端接收推流服务器发送的推流指令。
步骤207,根据推流指令,推流端向推流服务器推送第二直播视频流。
由于推流指令用于指示推流端推送第二直播视频流,则推流端在继续推送第一直播视频流的基础上,同时推送有第二直播视频流,即推流端根据推流指令向推流服务器同时推送第一直播视频流和第二直播视频流。
此外,推流端也可以根据推流指令向推流服务器推送第二直播视频流,而停止向推流服务器推送第一直播视频流,本申请实施例对此并不作限定。
步骤208,推流服务器接收推流端推送的第二直播视频流。
对应的,推流服务器在接收推流端推送的第一直播视频流的同时,也接收第二直播视频流。可选的,推流服务器将第一直播视频流和第二直播视频流进行存储;当拉流端存在观看用户进入直播间时,推流服务器将第一直播视频流和第二直播视频流分发到拉流端对应的各个用户客户端。
当推流服务器仅接收到推流端推送的第二直播视频流时,推流服务器将第二直播视频流进行存储。
可选的,在本申请实施例中,步骤206之后,还包括如下内容。
内容一、推流端向推流服务器发送推流地址获取请求,该推流地址获取请求用于请求获取第二直播视频流的推流地址。
内容二、推流服务器向推流端发送推流地址。
内容三、推流端在继续推送第一直播视频流的同时,根据推流地址向推流服务器推送第二直播视频流。
综上所述,本申请实施例中,对于直播***而言,推流端在开播后,以默认的第一编码方式对直播视频流进行压缩编码,并推送至推流服务器;然而,对于直播视频流的推送而言,存在更优编码方式下的直播视频流,即第二直播视频流,但第二直播视频流的推送需要推流端具备一定的编码能力和推流能力,因此,推流端向推流服务器发送推流信息,以让推流服务器根据推流信息判断推流端是否满足预设推流条件,当满足时,推流服务器向推流端发送推流指令;进一步的,推流端根据推流指令实现同时推送第一直播视频流和第二直播视频流。相较于相关技术中采用一种编码方式对直播视频流进行压缩编码以及由推流服务器进行转码运算的方法而言,采用本申请实施例提供的方法可以实现推流端同时推送不同编码方式下的直播视频流,以提高直播视频流推送效率;且压缩编码过程由推流端实现,能够减少推流服务器的编码运算压力,以及降低推流服务器成本。
请参考图3,其示出了本申请另一示例性实施例提供的直播推流方法的流程图。该方法适用于图1所示的直播***,该方法包括:
步骤301,推流端向推流服务器上传测试数据包。
对于推流端而言,为了测试当前的网络环境是否可进行开播,在一种可能的实施方式中,推流端向推流服务器上传测试数据包。
当推流服务器成功接收该测试数据包,则表示当前网络环境可用。可选的,推流服务器可以向推流端发送反馈信息来通知推流端当前网络可用;此外,当推流端在一定时长后未接收到推流服务器发送的反馈信息,则表明当前网络不可用,进一步的,推流端生成网络连接提示信息,用于提示主播开启网络连接。
步骤302,推流端根据测试数据包的数据量和上传时长,确定可用上行带宽。
其中,推流端已知测试数据包的数据量。因此,推流端不仅可以通过推流服务器对测试数据包的反馈信息来判断当前网络是否可用,还可以根据测试数据包的数据量和上传时长,确定可用上行带宽。
在一种可能的实施方式中,当推流服务器接收到测试数据包时,推流服务器获取测试数据包的到达时间信息,并向推流端返回包含到达时间信息的反馈信息,推流端根据到达时间信息以及测试数据包的发送时间信息得到测试数据包的上传时长,继而根据测试数据包的数据量和上传时长,确定可用上行带宽。
步骤303,推流端接收到直播指令时,向推流服务器推送第一直播视频流。
本步骤请参考步骤201,本申请实施例在此不再赘述。
步骤304,推流服务器接收推流端推送的第一直播视频流。
本步骤请参考步骤202,本申请实施例在此不再赘述。
在向推流服务器发送推流信息之前,推流端需要获取推流信息。可选的,在本申请实施例中,推流信息包括硬件参数、可用上行带宽和推流参数,可用上行带宽由推流端通过上传测试数据包确定,推流参数用于指示预设推流时长内第一直播视频流的推流情况。因此,推流端获取推流信息的过程包括步骤305和步骤306。
步骤305,推流端获取硬件参数和可用上行带宽。
在推流信息包括的硬件参数、可用上行带宽和推流参数中,硬件参数和可用上行带宽可以直接获取。硬件参数包括推流端对应的主播用户端所支持的编码器类型信息,如H264编码器信息和H265编码器信息等;而可用上行带宽由推流端通过上传测试数据包确定。
步骤306,响应于第一直播视频流的推流时长达到预设推流时长,推流端获取预设推流时长内的推流参数。
在推流信息包括的硬件参数、可用上行带宽和推流参数中,推流参数无法直接获取。
其中,推流参数用于指示预设推流时长内第一直播视频流的推流情况。在一种可能的实施方式中,当第一直播视频流的推流时长达到预设推流时长,推流端获取预设推流时长内的推流参数。
可选的,推流参数可以包括丢包率、码率、分辨率等等其它用于判断推流情况的推流参数。在本申请实施例中,以推流参数为丢包率为例进行示意性的说明,丢包率通过帧率计算得到。
当上行带宽不够时,为了实现直播视频流的推送,推流端会不断降低帧率。推流端获取预设推流时长内的帧数,与计划发送帧数进行比较,得到丢包率。在一个示例中,预设推流时长为一分钟,若按照初始的帧率进行推送,则一分钟内的计划发送帧数为2000帧,而在不断降低帧率后,一分钟内的实际发送帧数为1200帧,因此,得到的丢包率为800与2000的比值,即0.4。
步骤307,推流端将硬件参数、可用上行带宽和推流参数作为推流信息发送至推流服务器。
至此,通过步骤305和步骤306推流端可全部获得推流信息所包括的内容;进一步的,推流端将硬件参数、可用上行带宽和推流参数作为推流信息发送至推流服务器。
步骤308,推流服务器获取推流端对应的推流信息。
本步骤请参考步骤204,本申请实施例在此不再赘述。
在推流服务器获取推流端对应的推流信息之后,需要根据推流信息判断推流端是否满足推送第二直播视频流的条件。可选的,推流服务器对于推流信息的判断过程包括步骤309和步骤310。
步骤309,响应于硬件参数属于预设硬件参数,推流服务器确定推流端满足预设编码能力。
其中,预设硬件参数是支持第二编码方式的硬件的参数。在上述内容已提及,本申请实施例中,以第二编码方式为H265编码方式为例,则预设硬件参数是支持H265编码方式的硬件的参数。
在一个示例中,推流信息中硬件参数包括H265编码器信息,则推流服务器判断该硬件参数属于预设硬件参数,即推流服务器确定推流端满足预设编码能力。
步骤310,响应于可用上行带宽大于上行带宽阈值,且推流参数指示丢包率小于丢包率阈值,推流服务器确定推流端满足预设推流能力。
其中,上行带宽阈值根据第一直播视频流对应的分辨率确定。
表一
分辨率 | H264上行带宽要求 | H265上行带宽要求 | 上行带宽阈值 |
480P | 150KB | 120KB | 270KB |
720P | 250KB | 200KB | 450KB |
1080P | 500KB | 400KB | 900KB |
如表一所示,当分辨率不同以及编码方式不同时,对应的上行带宽阈值也不同。如第一直播视频流对应的分辨率为480P,则推流端若要实现同时推送第一直播视频流和第二直播视频流,所需要的上行带宽阈值为170KB。
此外,推流服务器预设有丢包率阈值,在一种可能的实施方式中,响应于可用上行带宽大于上行带宽阈值,且推流参数指示丢包率小于丢包率阈值,推流服务器确定推流端满足预设推流能力。
在一个示例中,上行带宽阈值为450KB,丢包率阈值为0.3,推流信息指示可用上行带宽为600KB且丢包率为0.4,则推流服务器确定推流端不满足预设推流能力;在另一个示例中,上行带宽阈值为450KB,丢包率阈值为0.3,推流信息指示可用上行带宽为600KB且丢包率为0.2,则推流服务器确定推流端满足预设推流能力。
可选的,步骤309和步骤310的执行顺序不分先后,或推流服务器同时执行步骤309和步骤310。其中,对于步骤309,推流服务器判断出硬件参数不属于预设硬件参数,则不执行步骤309之后的过程。
步骤311,响应于硬件参数指示推流端满足预设编码能力,且可用上行带宽和推流参数指示推流端满足预设推流能力,推流服务器确定推流端满足预设推流条件,并向推流端发送推流指令。
对于预设编码能力和预设推流能力而言,推流服务器要求推流信息同时满足预设编码能力和预设推流能力,才可以确定推流端满足预设推流条件,并向推流端发送推流指令。
步骤312,推流端接收推流服务器发送的推流指令。
本步骤请参考步骤206,本申请实施例在此不再赘述。
步骤313,推流端根据推流指令,向推流服务器推送第二直播视频流。
本步骤请参考步骤207,本申请实施例在此不再赘述。
可选的,在本申请实施例中,推流服务器除了根据推流信息来判断是否同意推流端推送第二直播视频流之外,还存在其它判断方法:主播客户端通过主播用户账号来进行唯一标识,若推流端对应的主播用户账号为预设账号,则推流服务器向推流端发送转码指令,用于提示推流端只推送第二直播视频流。
其中,预设账号可以是热门主播用户账号,为了提高热门主播的直播流畅度,推流端可仅使用第二编码方式对直播视频流进行编码,并推送至推流服务器。
步骤314,推流服务器接收推流端推送的第二直播视频流。
本步骤请参考步骤208,本申请实施例在此不再赘述。
在上述实施例的基础上,本申请实施例还阐述了推流端上传测试数据的过程、推流端生成推流信息的过程以及推流服务器判断推流信息的过程。在推流端上传测试数据的过程中,推流端通过测试数据包可同时确定出网络是否可用以及可用上行带宽;在推流端生成推流信息的过程中,推流端不仅获取硬件参数和可用上行带宽,还获取预设推流时长内的推流参数,避免因网络环境较差,在无法成功推送第二直播视频流的同时,还影响了第一直播视频流的推送,使得拉流端的直播观看效果降低;在推流服务器判断推流信息的过程中,推流服务器根据与推流信息对应的预设条件来判断推流端是否满足预设推流条件,能够提高第二直播视频流的推送成功率,在不影响第一直播视频流的推送时,也提高了整体的直播视频流推送效率,继而提高直播画面效果。
请参考图4,其示出了本申请另一示例性实施例提供的直播推流方法的流程图。该方法适用于图1所示的直播***,该方法包括:
步骤401,推流端向推流服务器上传测试数据包。
本步骤请参考步骤301,本申请实施例在此不再赘述。
步骤402,推流端根据测试数据包的数据量和上传时长,确定可用上行带宽。
本步骤请参考步骤302,本申请实施例在此不再赘述。
步骤403,推流端接收到直播指令时,向推流服务器推送第一直播视频流。
本步骤请参考步骤201,本申请实施例在此不再赘述。
步骤404,推流服务器接收推流端推送的第一直播视频流。
本步骤请参考步骤202,本申请实施例在此不再赘述。
步骤405,推流端获取硬件参数和可用上行带宽。
本步骤请参考步骤305,本申请实施例在此不再赘述。
步骤406,响应于第一直播视频流的推流时长达到预设推流时长,推流端获取预设推流时长内的推流参数。
本步骤请参考步骤306,本申请实施例在此不再赘述。
步骤407,推流端将硬件参数、可用上行带宽和推流参数作为推流信息发送至推流服务器。
本步骤请参考步骤307,本申请实施例在此不再赘述。
步骤408,推流服务器获取推流端对应的推流信息。
本步骤请参考步骤204,本申请实施例在此不再赘述。
步骤409,响应于硬件参数属于预设硬件参数,推流服务器确定推流端满足预设编码能力。
本步骤请参考步骤309,本申请实施例在此不再赘述。
步骤410,响应于可用上行带宽大于上行带宽阈值,且推流参数指示丢包率小于丢包率阈值,推流服务器确定推流端满足预设推流能力。
本步骤请参考步骤310,本申请实施例在此不再赘述。
步骤411,响应于硬件参数指示推流端满足预设编码能力,且可用上行带宽和推流参数指示推流端满足预设推流能力,推流服务器确定推流端满足预设推流条件,并向推流端发送推流指令。
本步骤请参考步骤311,本申请实施例在此不再赘述。
步骤412,推流端接收推流服务器发送的推流指令。
本步骤请参考步骤206,本申请实施例在此不再赘述。
步骤413,推流端根据推流指令,向推流服务器推送第二直播视频流。
本步骤请参考步骤207,本申请实施例在此不再赘述。
步骤414,推流服务器接收推流端推送的第二直播视频流。
本步骤请参考步骤208,本申请实施例在此不再赘述。
步骤415,响应于存在推流异常,推流端显示提示信息。
推流端在同时推送第一直播视频流和第二直播视频流的过程中,可能存在推流异常,如网络波动、直播画面机卡顿等等。上述推流异常情况可能与运营商的网络环境有关,也可能是由于推流端其他应用软件抢占设备资源导致,如后台的应用程序占用过高的中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)。
在一种可能的实施方式中,当存在推流异常,推流端显示提示信息。其中,提示信息中包含推流异常原因。
可选的,步骤415包括如下内容。
内容一、推流端获取硬件占用率,硬件占用率包括CPU占用率和GPU占用率中的至少一种。
内容二、响应于硬件占用率大于占用率阈值,推流端显示第一提示信息,第一提示信息用于提示硬件占用率过高导致推流异常。
内容三、推流端获取网络参数,网络参数至少包括当前上行带宽。
内容四、响应于当前上行带宽小于上行带宽阈值,推流端显示第二提示信息,第二提示信息用于提示网络卡顿导致推流异常。
步骤416,响应于推流异常的持续时长达到时长阈值,推流端停止向推流服务器推送第二直播视频流。
当推流端在显示第一提示信息,和/或,第二提示信息后,主播用户端并未作出改善当前推流异常的操作,即推流异常的持续时长达到时长阈值,则推流端停止向推流服务器推送第二直播视频流。如后台应用程序占用过多,用户在时长阈值之内一直未关闭至少一个后台应用程序;又如当前网络卡顿,用户在时长阈值之内一直未改善网络情况,则推流端停止向推流服务器推送第二直播视频流。
在上述实施例的基础上,本申请实施例还公开有推流端如何解决推流异常的内容,当存在推流异常,推流端显示提示信息,并根据不同的推流异常情况显示不同的提示信息,以实现有针对性的信息提示;此外,当推流异常的持续时长达到时长阈值,推流端停止向推流服务器推送第二直播视频流,以维持正常的网络直播环境。
请参考图5其示出了本申请一示例性实施例提供的推流端实现同时推流的流程图。
对于推流端而言,在本申请各个实施例中,推流端在同时推流过程中主要包括四个环节:对图像进行采集;对采集图像进行预处理;通过H264编码器和H265编码器对采集图像进行编码压缩;将压缩编码后的第一直播视频流和第二直播视频流推送至推流服务器。
其中,当主播对当前的直播画面开启美颜功能、加滤镜功能等等时,推流端需要对所采集的图像进行对应的预处理;或者,当前的直播***自带有图像处理功能,如对明亮度较低的直播画面进行画面增亮调节等等,推流端也需要对所采集的图像进行对应的预处理。
请参考图6,其示出了本申请一示例性实施例提供的直播推流装置的结构框图,所述装置用于推流端,所述装置包括:
第一推送模块601,用于接收到直播指令时,向推流服务器推送第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息发送模块602,用于向所述推流服务器发送推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令接收模块603,用于接收所述推流服务器发送的推流指令,所述推流指令由所述推流服务器在所述推流信息满足预设推流条件时发送,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二推送模块604,用于根据所述推流指令,向所述推流服务器推送所述第二直播视频流。
可选的,所述信息发送模块602,包括:
第一信息发送单元,用于获取硬件参数和可用上行带宽;
第二信息发送单元,用于响应于所述第一直播视频流的推流时长达到预设推流时长,获取所述预设推流时长内的推流参数;
第三信息发送单元,用于将所述硬件参数、所述可用上行带宽和所述推流参数作为所述推流信息发送至所述推流服务器。
可选的,所述装置还包括:
数据包发送模块,用于向所述推流服务器上传测试数据包;
带宽确定模块,用于根据所述测试数据包的数据量和上传时长,确定所述可用上行带宽。
可选的,所述装置还包括:
第一异常处理模块,用于响应于存在推流异常,显示提示信息,所述提示信息中包含推流异常原因;
第二异常处理模块,用于响应于推流异常的持续时长达到时长阈值,停止向所述推流服务器推送所述第二直播视频流。
可选的,所述第一异常处理模块,包括:
第一异常处理单元,用于获取硬件占用率,所述硬件占用率包括CPU占用率和GPU占用率中的至少一种;响应于所述硬件占用率大于占用率阈值,显示第一提示信息,所述第一提示信息用于提示硬件占用率过高导致推流异常;
第二异常处理单元,用于获取网络参数,所述网络参数至少包括当前上行带宽;响应于所述当前上行带宽小于上行带宽阈值,显示第二提示信息,所述第二提示信息用于提示网络卡顿导致推流异常。
请参考图7,其示出了本申请另一示例性实施例提供的直播推流装置的结构框图,所述装置用于推流服务器,所述装置包括:
第一接收模块701,用于接收推流端推送的第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息接收模块702,用于获取所述推流端对应的推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令发送模块703,用于响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二接收模块704,用于接收所述推流端推送的所述第二直播视频流。
可选的,所述推流信息包括硬件参数、可用上行带宽和推流参数,所述可用上行带宽由所述推流端通过上传测试数据包确定,所述推流参数用于指示预设推流时长内所述第一直播视频流的推流情况;
可选的,所述指令发送模块703,包括:
指令发送单元,用于响应于所述硬件参数指示所述推流端满足预设编码能力,且所述可用上行带宽和所述推流参数指示所述推流端满足预设推流能力,确定所述推流端满足所述预设推流条件,并向所述推流端发送所述推流指令。
可选的,所述装置还包括:
第一推流判断模块,用于响应于所述硬件参数属于预设硬件参数,确定所述推流端满足所述预设编码能力,所述预设硬件参数是支持所述第二编码方式的硬件的参数;
第二推流判断模块,用于响应于所述可用上行带宽大于上行带宽阈值,且所述推流参数指示丢包率小于丢包率阈值,确定所述推流端满足预设推流能力,所述上行带宽阈值根据所述第一直播视频流对应的分辨率确定。
请参考图8,其示出了本申请一个示例性实施例提供的终端800的结构框图。该终端800可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器。终端800还可能被称为用户设备、便携式终端等其他名称。可选的,终端800可以是如图1所示出的推流端100对应的终端设备。
通常,终端800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请实施例提供的方法。
在一些实施例中,终端800还可选包括有:***设备接口803和至少一个***设备。具体地,***设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
***设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和***设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和***设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
触摸显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏805还具有采集在触摸显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。触摸显示屏805用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,触摸显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,触摸显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,触摸显示屏805还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏805可以采用LCD(LiquidCrystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807用于提供用户和终端800之间的音频接口。音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
定位组件808用于定位终端800的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件808可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***或俄罗斯的伽利略***的定位组件。
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制触摸显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端800的侧边框和/或触摸显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器813设置在触摸显示屏805的下层时,可以根据用户对触摸显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器814用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商Logo时,指纹传感器814可以与物理按键或厂商Logo集成在一起。
光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制触摸显示屏805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏805的显示亮度;当环境光强度较低时,调低触摸显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器816,也称距离传感器,通常设置在终端800的正面。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制触摸显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制触摸显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
请参考图9,其示出了本申请一个实施例提供的服务器900的结构示意图。该服务器900可用于实施于上述实施例中提供的直播推流方法。该服务器900可以是图1实施例中介绍的推流服务器200。具体来讲:
所述服务器900包括中央处理单元(CPU)901、包括随机存取存储器(RAM)902和只读存储器(ROM)903的***存储器904,以及连接***存储器904和中央处理单元901的***总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)906,和用于存储操作***913、应用程序914和其他程序模块915的大容量存储设备907。
所述基本输入/输出***906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到***总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出***906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备907通过连接到***总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器904和大容量存储设备907可以统称为存储器。
根据本申请的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述***总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机***(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于实现上述服务器侧的直播推流方法的指令。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述各个实施例提供的直播推流方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种直播推流方法,其特征在于,所述方法用于推流端,所述方法包括:
接收到直播指令时,向推流服务器推送第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
向所述推流服务器发送推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
接收所述推流服务器发送的推流指令,所述推流指令由所述推流服务器在所述推流信息满足预设推流条件时发送,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
根据所述推流指令,向所述推流服务器推送所述第二直播视频流。
2.根据权利要求1所述的方法,其特征在于,所述向所述推流服务器发送推流信息,包括:
获取硬件参数和可用上行带宽;
响应于所述第一直播视频流的推流时长达到预设推流时长,获取所述预设推流时长内的推流参数;
将所述硬件参数、所述可用上行带宽和所述推流参数作为所述推流信息发送至所述推流服务器。
3.根据权利要求2所述的方法,其特征在于,所述向推流服务器推送第一直播视频流之前,所述方法还包括:
向所述推流服务器上传测试数据包;
根据所述测试数据包的数据量和上传时长,确定所述可用上行带宽。
4.根据权利要求1至3任一所述的方法,其特征在于,所述向所述推流服务器推送所述第二直播视频流之后,所述方法还包括:
响应于存在推流异常,显示提示信息,所述提示信息中包含推流异常原因;
响应于推流异常的持续时长达到时长阈值,停止向所述推流服务器推送所述第二直播视频流。
5.根据权利要求4所述的方法,其特征在于,所述响应于存在推流异常,显示提示信息,包括:
获取硬件占用率,所述硬件占用率包括中央处理器CPU占用率和图形处理器GPU占用率中的至少一种;响应于所述硬件占用率大于占用率阈值,显示第一提示信息,所述第一提示信息用于提示硬件占用率过高导致推流异常;
获取网络参数,所述网络参数至少包括当前上行带宽;响应于所述当前上行带宽小于上行带宽阈值,显示第二提示信息,所述第二提示信息用于提示网络卡顿导致推流异常。
6.一种直播推流方法,其特征在于,所述方法用于推流服务器,所述方法包括:
接收推流端推送的第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
获取所述推流端对应的推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
接收所述推流端推送的所述第二直播视频流。
7.根据权利要求6所述的方法,其特征在于,所述推流信息包括硬件参数、可用上行带宽和推流参数,所述可用上行带宽由所述推流端通过上传测试数据包确定,所述推流参数用于指示预设推流时长内所述第一直播视频流的推流情况;
所述响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,包括:
响应于所述硬件参数指示所述推流端满足预设编码能力,且所述可用上行带宽和所述推流参数指示所述推流端满足预设推流能力,确定所述推流端满足所述预设推流条件,并向所述推流端发送所述推流指令。
8.根据权利要求7所述的方法,其特征在于,获取所述推流端对应的推流信息之后,所述方法包括:
响应于所述硬件参数属于预设硬件参数,确定所述推流端满足所述预设编码能力,所述预设硬件参数是支持所述第二编码方式的硬件的参数;
响应于所述可用上行带宽大于上行带宽阈值,且所述推流参数指示丢包率小于丢包率阈值,确定所述推流端满足预设推流能力,所述上行带宽阈值根据所述第一直播视频流对应的分辨率确定。
9.一种直播推流装置,其特征在于,所述装置用于推流端,所述装置包括:
第一推送模块,用于接收到直播指令时,向推流服务器推送第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息发送模块,用于向所述推流服务器发送推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令接收模块,用于接收所述推流服务器发送的推流指令,所述推流指令由所述推流服务器在所述推流信息满足预设推流条件时发送,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二推送模块,用于根据所述推流指令,向所述推流服务器推送所述第二直播视频流。
10.一种直播推流装置,其特征在于,所述装置用于推流服务器,所述装置包括:
第一接收模块,用于接收推流端推送的第一直播视频流,所述第一直播视频流采用第一编码方式编码得到;
信息接收模块,用于获取所述推流端对应的推流信息,所述推流信息用于表征所述推流端的编码能力以及推流能力;
指令发送模块,用于响应于所述推流信息指示所述推流端满足预设推流条件,向所述推流端发送推流指令,所述推流指令用于指示所述推流端推送第二直播视频流,所述第二直播视频流采用第二编码方式编码得到;
第二接收模块,用于接收所述推流端推送的所述第二直播视频流。
11.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至5任一所述的直播推流方法。
12.一种服务器,其特征在于,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求6至8任一所述的直播推流方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至5任一所述的直播推流方法,或,以实现如权利要求6至8任一所述的直播推流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010339447.7A CN111405312A (zh) | 2020-04-26 | 2020-04-26 | 直播推流方法、装置、终端、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010339447.7A CN111405312A (zh) | 2020-04-26 | 2020-04-26 | 直播推流方法、装置、终端、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111405312A true CN111405312A (zh) | 2020-07-10 |
Family
ID=71429835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010339447.7A Pending CN111405312A (zh) | 2020-04-26 | 2020-04-26 | 直播推流方法、装置、终端、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405312A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738445A (zh) * | 2020-12-23 | 2021-04-30 | 北京大米科技有限公司 | 多线路推流方法、装置、存储介质及电子设备 |
CN113905249A (zh) * | 2021-09-30 | 2022-01-07 | 上海哔哩哔哩科技有限公司 | 推流异常检测方法及装置 |
CN114390363A (zh) * | 2021-12-22 | 2022-04-22 | 广州方硅信息技术有限公司 | 编码器的适配方法、装置、***和存储介质 |
CN114760528A (zh) * | 2022-04-19 | 2022-07-15 | 广州方硅信息技术有限公司 | 视频数据传输的方法、***、装置、计算机设备及介质 |
CN115499673A (zh) * | 2022-08-30 | 2022-12-20 | 深圳市思为软件技术有限公司 | 一种直播方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047853A (zh) * | 2006-03-30 | 2007-10-03 | 株式会社东芝 | 服务器设备和视频传送方法 |
CN106162214A (zh) * | 2016-09-05 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 视频编码方法及视频直播客户端 |
CN107027045A (zh) * | 2017-04-11 | 2017-08-08 | 广州华多网络科技有限公司 | 视频流推送控制方法、装置及视频流导播端 |
CN108848390A (zh) * | 2018-05-28 | 2018-11-20 | 北京文香信息技术有限公司 | 一种多流直播观看*** |
CN108966008A (zh) * | 2018-08-02 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 直播视频回放方法及装置 |
CN109068157A (zh) * | 2018-08-21 | 2018-12-21 | 北京潘达互娱科技有限公司 | 一种直播中推流参数的调整方法、装置及服务器 |
CN109361893A (zh) * | 2018-11-21 | 2019-02-19 | 华平信息技术股份有限公司 | 视频会议同路多源直播方法及*** |
CN109462773A (zh) * | 2018-08-31 | 2019-03-12 | 北京潘达互娱科技有限公司 | 一种推流方法、装置、电子设备及存储介质 |
CN109688425A (zh) * | 2019-01-11 | 2019-04-26 | 北京三体云联科技有限公司 | 直播数据推流方法 |
CN109788303A (zh) * | 2019-01-28 | 2019-05-21 | 广州酷狗计算机科技有限公司 | 直播视频流的推送方法、装置、电子设备及存储介质 |
US20190158889A1 (en) * | 2016-09-18 | 2019-05-23 | Tencent Technology (Shenzhen) Company Limited | Live streaming method and system, server, and storage medium |
CN110636327A (zh) * | 2019-10-28 | 2019-12-31 | 成都超有爱科技有限公司 | 一种视频缓存方法、装置、电子设备及存储介质 |
CN111064973A (zh) * | 2019-11-28 | 2020-04-24 | 湖北工业大学 | 一种基于ipv9的直播*** |
-
2020
- 2020-04-26 CN CN202010339447.7A patent/CN111405312A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047853A (zh) * | 2006-03-30 | 2007-10-03 | 株式会社东芝 | 服务器设备和视频传送方法 |
CN106162214A (zh) * | 2016-09-05 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 视频编码方法及视频直播客户端 |
US20190158889A1 (en) * | 2016-09-18 | 2019-05-23 | Tencent Technology (Shenzhen) Company Limited | Live streaming method and system, server, and storage medium |
CN107027045A (zh) * | 2017-04-11 | 2017-08-08 | 广州华多网络科技有限公司 | 视频流推送控制方法、装置及视频流导播端 |
CN108848390A (zh) * | 2018-05-28 | 2018-11-20 | 北京文香信息技术有限公司 | 一种多流直播观看*** |
CN108966008A (zh) * | 2018-08-02 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 直播视频回放方法及装置 |
CN109068157A (zh) * | 2018-08-21 | 2018-12-21 | 北京潘达互娱科技有限公司 | 一种直播中推流参数的调整方法、装置及服务器 |
CN109462773A (zh) * | 2018-08-31 | 2019-03-12 | 北京潘达互娱科技有限公司 | 一种推流方法、装置、电子设备及存储介质 |
CN109361893A (zh) * | 2018-11-21 | 2019-02-19 | 华平信息技术股份有限公司 | 视频会议同路多源直播方法及*** |
CN109688425A (zh) * | 2019-01-11 | 2019-04-26 | 北京三体云联科技有限公司 | 直播数据推流方法 |
CN109788303A (zh) * | 2019-01-28 | 2019-05-21 | 广州酷狗计算机科技有限公司 | 直播视频流的推送方法、装置、电子设备及存储介质 |
CN110636327A (zh) * | 2019-10-28 | 2019-12-31 | 成都超有爱科技有限公司 | 一种视频缓存方法、装置、电子设备及存储介质 |
CN111064973A (zh) * | 2019-11-28 | 2020-04-24 | 湖北工业大学 | 一种基于ipv9的直播*** |
Non-Patent Citations (1)
Title |
---|
LIVEVIDEOSTACK: "《H.265在花椒直播中的应用与优化》", 《云+社区-腾讯云》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738445A (zh) * | 2020-12-23 | 2021-04-30 | 北京大米科技有限公司 | 多线路推流方法、装置、存储介质及电子设备 |
CN112738445B (zh) * | 2020-12-23 | 2023-06-02 | 北京大米科技有限公司 | 多线路推流方法、装置、存储介质及电子设备 |
CN113905249A (zh) * | 2021-09-30 | 2022-01-07 | 上海哔哩哔哩科技有限公司 | 推流异常检测方法及装置 |
CN114390363A (zh) * | 2021-12-22 | 2022-04-22 | 广州方硅信息技术有限公司 | 编码器的适配方法、装置、***和存储介质 |
CN114390363B (zh) * | 2021-12-22 | 2024-07-23 | 广州方硅信息技术有限公司 | 编码器的适配方法、装置、***和存储介质 |
CN114760528A (zh) * | 2022-04-19 | 2022-07-15 | 广州方硅信息技术有限公司 | 视频数据传输的方法、***、装置、计算机设备及介质 |
CN115499673A (zh) * | 2022-08-30 | 2022-12-20 | 深圳市思为软件技术有限公司 | 一种直播方法及装置 |
CN115499673B (zh) * | 2022-08-30 | 2023-10-20 | 深圳市思为软件技术有限公司 | 一种直播方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110881136B (zh) | 视频帧率控制方法、装置、计算机设备及存储介质 | |
CN111405312A (zh) | 直播推流方法、装置、终端、服务器及存储介质 | |
CN110213616B (zh) | 视频提供方法、获取方法、装置及设备 | |
CN108495142B (zh) | 视频编码方法及装置 | |
CN108966008B (zh) | 直播视频回放方法及装置 | |
CN109788303B (zh) | 直播视频流的推送方法、装置、电子设备及存储介质 | |
CN110022373B (zh) | 业务分配方法、装置、服务器及存储介质 | |
CN111417006A (zh) | 视频投屏方法、装置、终端及存储介质 | |
CN111586431B (zh) | 进行直播处理的方法、装置、设备及存储介质 | |
CN108769726B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
CN111107389B (zh) | 确定观看直播时长的方法、装置和*** | |
CN110996117B (zh) | 视频转码方法、装置、电子设备和存储介质 | |
CN112714327A (zh) | 基于直播应用程序的互动方法、装置、设备及存储介质 | |
KR20140092517A (ko) | 카메라의 영상 데이터 압축 방법 및 이를 지원하는 단말기 | |
CN111669640B (zh) | 虚拟物品转移特效的显示方法、装置、终端及存储介质 | |
CN111010588B (zh) | 直播处理方法、装置、存储介质及设备 | |
KR101311463B1 (ko) | 원격 영상정보 제공시스템 | |
CN113141541B (zh) | 码率切换方法、装置、设备及存储介质 | |
CN111586433B (zh) | 码率调整方法、装置、设备及存储介质 | |
CN111050211B (zh) | 视频处理方法、装置及存储介质 | |
CN110113669B (zh) | 获取视频数据的方法、装置、电子设备及存储介质 | |
CN109714628B (zh) | 播放音视频的方法、装置、设备、存储介质及*** | |
CN111478915A (zh) | 直播数据的推流方法、装置、终端及存储介质 | |
CN111698262B (zh) | 带宽确定方法、装置、终端及存储介质 | |
CN112153404B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200710 |
|
RJ01 | Rejection of invention patent application after publication |