CN113315982A - 一种直播方法、计算机存储介质及设备 - Google Patents
一种直播方法、计算机存储介质及设备 Download PDFInfo
- Publication number
- CN113315982A CN113315982A CN202110495306.9A CN202110495306A CN113315982A CN 113315982 A CN113315982 A CN 113315982A CN 202110495306 A CN202110495306 A CN 202110495306A CN 113315982 A CN113315982 A CN 113315982A
- Authority
- CN
- China
- Prior art keywords
- video stream
- live
- resource
- html page
- image sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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, manipulating MPEG-4 scene graphs
- H04N21/23424—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
-
- 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44016—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
Abstract
本说明书提供一种直播方法、计算机存储介质及设备,该直播方法中,服务端获取主播端推送的直播视频流以及主播端指定的需合成至直播视频流的资源的标识信息,再根据标识信息,通过浏览器渲染资源对应的HTML页面,以获取浏览器在渲染该HTML页面时产生的图像序列,并将该图像序列合成至直播视频流中,进而将合成得到的视频流推送给观众端。这样,由服务端来实现将主播端指定的内容合成到直播视频流,减轻了主播端所在设备的负担,从而为一些硬件性能较差的开播设备提供了将复杂图层叠加到直播视频流的能力。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种直播方法、计算机存储介质及设备。
背景技术
主播在进行直播的过程中,经常需要往视频流中叠加一些其他内容,如文本、图片、视频等等,以此吸引观众。然而,在主播使用智能手机、平板电脑等作为直播设备时,由于开播本身就需要占用大量的系统资源,若再做图层合成操作,这对于直播设备来说会造成较大的负担,也会影响直播效果。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种直播方法、计算机存储介质及设备。
根据本说明书实施例的第一方面,提供一种直播方法,所述方法应用于服务端,包括:
获取主播端推送的直播视频流;
获取主播端指定的需合成至所述直播视频流的资源的标识信息后,通过所述标识信息获取所述资源对应的HTML页面代码;
根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列;
将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
在某些例子中,上述将所述图像序列合成至所述直播视频流中,包括:
基于所述直播视频流得到直播图像序列;
按照预设规则,将所述图像序列合成至所述直播图像序列中,所述预设规则包括图像序列在直播图像序列上的合成位置、图像序列的旋转角度的变换规则。
在某些例子中,上述直播视频流和所述标识信息中分别携带有时间戳;
上述将所述图像序列合成至所述直播视频流中,包括:
将所述图像序列中的图像合成至所述直播视频流中的相同时间戳的直播图像。
在某些例子中,上述浏览器为无头浏览器。
在某些例子中,上述方法还包括:
获取预存的多个资源的标识信息,并发送给主播端,以使主播端展示所述多个资源,以供主播端的用户选择需合成至所述直播视频流的资源。
根据本说明书实施例的第二方面,提供一种直播方法,所述方法应用于主播端,包括:
将直播视频流推送至服务端;
将指定的需合成至所述直播视频流的资源的标识信息发送给所述服务端,以使所述服务端通过所述标识信息获取所述资源对应的HTML页面代码,根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列,并将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
在某些例子中,上述标识信息包括所述资源的网络地址,所述方法还包括:
创建WebView控件,利用所述WebView访问标识信息中的网络地址,请求资源对应的HTML页面代码,再对获取到的HTML页面代码进行解析,并渲染资源对应的HTML页面至直播画面上,以供本端用户预览合成后的画面的效果。
在某些例子中,上述指定的需合成至所述直播视频流的资源是响应于本端用户对展示的多个资源的选择操作而确定的。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。
根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,公开了一种直播方法、计算机存储介质及设备,该直播方法中,服务端获取主播端推送的直播视频流以及主播端指定的需合成至直播视频流的资源的标识信息,再根据标识信息,通过浏览器渲染资源对应的HTML页面,以获取浏览器在渲染该HTML页面时产生的图像序列,并将该图像序列合成至直播视频流中,进而将合成得到的视频流推送给观众端。这样,由服务端来实现将主播端指定的内容合成到直播视频流,减轻了主播端所在设备的负担,从而为一些硬件性能较差的开播设备提供了将复杂图层叠加到直播视频流的能力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种直播方法的流程图;
图2是本说明书根据一示例性实施例示出的另一种直播方法的流程图;
图3是本说明书根据一示例性实施例示出的一种直播系统的交互过程的示意图;
图4是本说明书根据一示例性实施例示出的直播装置所在计算机设备的一种硬件结构图;
图5是本说明书根据一示例性实施例示出的一种直播装置的框图;
图6是本说明书根据一示例性实施例示出的另一种直播装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
主播在进行直播的过程中,经常需要往视频流中叠加一些其他内容,如文本、图片、视频等等,以此吸引观众。相关技术中,往视频流中叠加内容通常是借助OBS(OpenBroadcaster Software)推流工具来实现,用户可以将要作为直播画面的摄像头画面显示在显示屏的当前桌面的某个区域或某个窗口中,OBS推流工具会录制该区域或该窗口的内容并进行推流,基于此,用户可以通过将所需叠加的内容拖入捕捉区域,从而将该所需叠加的内容呈现在直播画面中。然而,OBS推流工具需要消耗较多的网络、显卡等资源,对机器配置的要求较高,因此,在主播使用智能手机、平板电脑等作为直播设备时,由于开播本身就需要占用大量的系统资源,若再做图层合成操作,这对于直播设备来说会造成较大的负担,也会影响直播效果。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种直播方法的流程图,所述方法应用于服务端,包括:
在步骤101、获取主播端推送的直播视频流;
本步骤中提到的主播端是指主播客户端,即提供主播进行直播这项服务的客户端。主播端可以是安装在主播使用的终端设备上的一个客户端软件,这里的终端设备可以是智能手机、平板电脑等便捷式终端,也可以是PC、智能交互平板等非便捷式终端。
直播视频流可以是主播端将摄像头捕获的画面数据进行编码后得到的视频流。传统的直播服务器一般是用于将收到的来自主播端的直播视频流转推给观众端,或者转推到CDN(Content Delivery Network,内容分发网络),由CDN分发给观众端。而本实施例中提到的服务端,可以是运行于对传统的直播服务器的处理流程进行改进而得到的服务器,也可以是运行于单独设置的云端服务器或服务器集群,由这个云端服务器或服务器集群对主播端的直播视频流加工处理后,再交由传统的直播服务器进行转推。
在步骤102、获取主播端指定的需合成至所述直播视频流的资源的标识信息后,通过所述标识信息获取所述资源对应的HTML页面代码;
本步骤中提到的资源是主播想要叠加在直播视频流中的内容,其可以包括文本、图片、视频等内容中的至少一种。在实际应用中,这里的资源可以是根据广告商的要求,需要在直播过程中插播的广告内容,也可以是用于辅助主播进行直播的内容,例如,主播在跟观众进行猜谜游戏的互动时,若是由主播临时将字谜写到纸上再展示给观众看,无疑是比较不方便的,而将字谜图案作为叠加在直播视频流中的内容,可以使得主播更加方便显示相关内容,实现与观众之间的不间断互动。
为了更好地满足实际业务对所要叠加的内容的需求,本实施例中使用HTML文件作为资源的载体。HTML(Hyper Text Markup Language,超文本标记语言)文件是使用HTML这种标记语言,将所需要表达的内容按照预设规则写成的文件。HTML文件是HTML页面的代码文件,也就是说,浏览器可以执行HTML文件进而展示对应的HTML页面。HTML页面中可以包含多种HTML元素,而HTML元素可以是文本、图片以及视频等内容,因此,使用HTML文件作为资源的载体,资源与HTML页面代码的对应关系,是指HTML页面中嵌有资源,通过执行资源对应的HTML页面代码,即渲染出嵌有该资源的HTML页面,可以展示出该资源。在本实施例中,服务器一侧通过渲染HTML页面,可以显示出相对应的资源,从而可以实现所叠加的资源的多样性。
在某些例子中,本步骤中提到的资源的标识信息可以包括资源的网络地址。这里的网络地址可以是指URL(Uniform Resource Locator,统一资源定位器),是互联网上标准资源的地址。每个资源都有对应的一个唯一的URL。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,也就是说,URL包含的信息指示了资源的位置,以及浏览器应该怎么处理它。一般来说,将URL输入至浏览器后,浏览器的处理过程包括:浏览器根据URL中的域名寻找网站服务器的IP地址,网站服务器中存储有URL与HTML文件的映射关系,这里的HTML文件是HTML页面代码的文件;浏览器发送一个HTTP请求给网站服务器,等待网站服务器接受请求、处理请求生成URL对应的HTTP文件,并将该HTTP文件返回给浏览器;浏览器接收网站服务器的响应结果,解析HTTP文件并开始显示HTML页面。相应的,本实施例中,服务器在获取主播端指定的需合成至直播视频流的资源的标识信息后,可以将标识信息输入浏览器,以使浏览器基于上述处理过程,获取到资源对应的HTML页面代码。基于此,本步骤中提到的资源可以是指网络资源。当然,在某些例子中,主播端也可以通过发布系统,为本端设备上的图片、视频等资源创建对应的URL。另外,需要说明的是,服务器可以预存标识信息和资源的URL的映射关系,此时的标识信息可以是文字、数字或其他类型的信息,这样,服务器获取到标识信息后,可以通过映射关系查找到对应的URL,进而通过URL获取资源对应的HTML页面代码。
另外,需要说明的是,HTML页面具有数据驱动视图的模式,也就是说,主播端可以通过改变指定的资源的标识信息,驱动服务器所加载的HTML页面的更新。基于此,主播端和服务器之间可以建立数据通道,这里的数据通道可以是基于TCP协议的数据通道,也可以是基于WebSocket协议、HTTP协议等其他协议的数据通道。以数据通道是基于TCP协议的数据通道为例,主播端和服务器使用三次握手协议成功建立连接后,两者之间就建立了数据通道,主播端可以使用这一数据通道向服务器推送另一个资源的标识信息,以使服务器根据这一资源的标识信息,获取到资源对应的HTML页面代码。
在步骤103、根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列;
在获取到资源对应的HTML页面代码后,服务端可以通过浏览器的浏览器内核对获取到的HTML页面代码进行解析,并渲染出资源对应的HTML页面。浏览器内核是浏览器的核心,负责对网页语法,如HTML、JavaScript的解释,并渲染网页。这里所采用的浏览器内核可以是CEF(Chromium Embedded Framework,Chromium嵌入式框架),也可以是Webkit、Miniblink等等。通常来说,浏览器内核渲染HTML页面的过程可以包括:解析HTML页面代码得到HTML结构,生成DOM(Document Object Model,文档对象模型)树;解析HTML页面代码中的CSS(Cascading Style Sheets,叠层样式表),生成CSS规则树;合并DOM树和CSS规则树,构建得到渲染树;对渲染树进行排版布局;调用操作系统底层API,遍历渲染树的每一个节点绘制到屏幕上,渲染得到HTML页面。当然,在其他实施例中,本步骤中提到的通过浏览器渲染资源对应的HTML页面的具体过程也可以根据实际场景的需求进行相应改进,本说明书对此不作限制。
在某些例子中,本步骤中提到的浏览器可以是无头浏览器。无头浏览器是一种没有图形用户界面(GUI)的浏览器,常用于网页自动化测试。由于无头浏览器相比较于常规浏览器而言,没有图形用户界面,所以更轻量,也更适合部署在服务器。
为了实现将主播端指定的资源叠加到直播视频流中,服务器需要将资源转换成可以合成至直播视频流中的类型。视频的本质是连续的图像序列,因此,本实施例中,服务器获取浏览器在渲染资源对应的HTML页面时产生的图像序列,用以在后续将图像序列合成至直播视频流中。图像序列中的各图像与资源是相对应的,若资源是一张静态图片,则服务器获取得到的图像序列中各图像都是该静态图片;而若资源是一张动态图片,则服务器获取得到的图像序列中各图像是形成该动态图片的各帧图像,以资源是一呈现秒表的动态图片为例,则图像序列实际上就是一系列显示“1”、“2”、“3”的秒表状态的图片。本实施例对于图像序列中图像的格式不进行限制,例如,这里的图像序列可以包括位图(BitMap)序列,由于位图采用了Bit为单位来存储数据,因此可以大大节省存储空间。
在步骤104、将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
在某些例子中,本步骤中提到的将图像序列合成至直播视频流中可以包括:基于直播视频流得到直播图像序列;按照预设规则,将图像序列合成至所述直播图像序列中。这里的预设规则可以包括图像序列在直播图像序列上的合成位置、图像序列的旋转角度等变换规则。举例说明:通过对直播视频流进行解码,可以得到直播图像序列,该直播图像序列为Cam1、Cam2、Cam3、Cam4等,而浏览器在渲染资源对应的HTML页面时产生的图像序列为Web1、Web2、Web3、Web4等,若预设规则是图像序列绘制在直播图像序列的左上角区域,且顺时针旋转90°的话,则服务器将Web1绘制到Cam1的左上角区域,并将Web1顺时针旋转90°,再针对Web2和Cam2、Web3和Cam3等图像也进行相同的处理。这样,服务器得到合成后的图像序列,服务器可以通过编码器对合成后的图像序列进行编码,得到编码后的数据,即合成得到的视频流,然后通过直播协议,将合成得到的视频流送到观众端。
另外,主播端的直播视频流上传到服务器、主播端将指定的需合成至直播视频流的资源的标识信息上传到服务器、服务器渲染资源的对应的HTML页面,这些过程都是需要时间的,而这个耗时的差异可能导致观众看到的直播画面,跟主播真实想要的合成的画面是不一致的。沿用前面的例子,主播端想要实现的合成的画面是将Web1合成至Cam1中,Web2合成至Cam2中,以此类推,而由于耗时的差异,服务器可能将Web2合成至Cam1中,Web3合成至Cam2中,这样容易影响直播效果。基于此,在某些例子中,直播视频流和标识信息中分别携带有时间戳,前面提到的将所述图像序列合成至所述直播视频流中可以包括:将图像序列中的图像合成至所述直播视频流中的相同时间戳的直播图像。这里的时间戳可以包括显示时间戳(Presentation Time Stamp,PTS),PTS是帧的呈现时间,主要用于度量解码后的视频帧什么时候被显示出来。直播视频流中携带的显示时间戳可以是由主播端在确定将直播视频流发送给服务端的时候生成的;对应的,标识信息中携带的显示时间戳也可以是由主播端在确定将标识信息发送给服务端的时候生成的。这样,将显示时间戳作为参考时钟后,服务器可以将图像序列中的图像合成至直播视频流中的相同时间戳的直播图像,即将相同时间戳的图像序列和直播图像序列进行合成,从而实现观众看到的直播画面跟主播想要的合成画面的效果的一致性。还有,这里的显示时间戳可以由主播端封装于补充增强信息(Supplemental Enhancement Information,SEI)中,SEI消息用于辅助处理解码、显示等操作,发送设备可以将自定义数据添加到SEI消息的data字段中作为SEI消息的有效载荷,将该SEI消息发送给接收设备后,接收设备可以解析该SEI消息得到该自定义数据。由于SEI消息不会影响服务端上视频解码器的解码,因此主播端可以使用SEI消息来进行时间戳这一自定义数据的传输。当然,其也可以根据其他场景的需求进行设置。
还有,针对服务端执行合成操作的持续时长,在某些例子中,其可以是基于主播端发送的控制指令来控制的,例如,主播端中可以配置一插件,该插件具有配套的业务逻辑,主播端可以通过这一插件向服务端发送控制合成操作的开始和结束的控制指令。在其他实施例中,其也可以是基于资源的标识信息中携带的指定时间信息来控制的,例如,主播端发送的资源的标识信息中携带指定时间信息,该指定时间信息为1min,则服务端针对该资源渲染出总共时长为1min的图像序列,并将图像序列合成至直播视频流中,使得观众端看到的直播画面中,该资源叠加在主播画面中的持续时长为1min。当然,根据具体场景的需求,服务端执行合成操作的持续时长也可以采用其他方式来进行控制,本说明书对此不作限制。
本说明书实施例的直播方法中,服务端获取主播端推送的直播视频流以及主播端指定的需合成至直播视频流的资源的标识信息,再根据标识信息,通过浏览器渲染资源对应的HTML页面,以获取浏览器在渲染该HTML页面时产生的图像序列,并将该图像序列合成至直播视频流中,进而将合成得到的视频流推送给观众端。这样,由服务端来实现将主播端指定的内容合成到直播视频流,从而为一些硬件性能较差的开播设备提供了将复杂图层叠加到直播视频流的能力。
相对应的,如图2所示,图2是本说明书根据一示例性实施例示出的另一种直播方法的流程图,所述方法应用于主播端,包括:
在步骤201、将直播视频流推送至服务器;
在步骤202、将指定的需合成至所述直播视频流的资源的标识信息发送给所述服务器,所述标识信息指示所述资源对应的HTML文件,所述HTML文件是所述资源对应的HTML页面的代码文件,以使所述服务器根据所述标识信息,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列后,将所述图像序列合成至所述直播视频流中,并将合成得到的视频流推送给观众端。
本实施例中各步骤的细节可以参见前面的描述,在此不再赘述。而除此之外,本实施例还提供以下内容的改进,进一步丰富方案的功能:
通常来说,主播端在进行直播的过程中,本地设备只会显示摄像头的内容,此时主播看不到合成后的画面的效果,无法及时进行调整,容易影响直播效果。基于此,在某些例子中,前面提到的标识信息可以包括资源的网络地址,主播端可以创建WebView控件,利用该WebView控件访问标识信息中的网络地址,请求资源对应的HTML文件,再对获取到的HTML文件进行解析,并渲染资源对应的HTML页面至直播画面上,以供本端用户预览合成后的画面的效果。WebView(网页视图)控件是一个用于显示网页的控件,在本实施例中可以认为是一个嵌套在主播端界面中的浏览器控件。主播端将资源的网络地址给到WebView控件后,WebView控件在内部可以实现访问该网络地址对应的网站服务器,并请求资源对应的HTML文件,之后采用浏览器内核对获取到的HTML文件进行解析并渲染,从而展示资源对应的HTML页面。这样,通过WebView控件加载资源对应的HTML页面至摄像头画面上,主播可以预览到合成后的画面的效果,为主播后续对直播内容的调整提供了便利,有助于提高直播内容的质量。
在实际应用中,主播可能会遇见在一次直播中,往直播视频流中多次叠加内容的需求,例如,根据广告商的要求,需要每隔一段时间就在直播视频中插播一段广告。针对这类场景,前面提到的指定的需合成至所述直播视频流的资源是响应于本端用户对展示的多个资源的选择操作而确定的。也就是说,在主播开始直播前,主播端中可以获取多个资源的标识信息并存储至本端所在设备中,进而主播端可以在主播进行直播的过程中展示预存的多个资源,以供主播选择需合成至直播视频流中的资源。这样,主播进行直播时可以更加方便确定需合成至直播视频流中的资源,节约了操作时间。而针对具体的实现方式,其可以是用一个直播间插件来展示预存的多个资源,其展示形式可以是按钮、图标等形式,在响应用户的选择操作时,由这一直播间插件将对应的资源的标识信息发送给服务器。当然,根据具体场景的需求,也可以采用其他的实现方式,本说明书对此不作限制。
另外,在本说明书的一个实施例中,服务端可以获取预存的多个资源的标识信息,并发送给主播端,以使主播端展示所述多个资源,以供主播端的用户选择需合成至直播视频流中的资源。也就是说,主播端所获取到的多个资源的标识信息,可以是由服务端提供的,以进一步方便主播的直播操作。当然,在其他实施例中,其也可以是由主播端的用户通过网络查找得到的,本说明书对此不作限制。
为方便对本说明书的直播方案做更为详细的说明,接下来介绍一具体实施例:
如图3所示,图3是本说明书根据一示例性实施例示出的一种直播系统的交互过程的示意图,所述直播系统包括主播端31、云端服务器32和观众端33,其中,直播过程可以基于以下的直播系统交互过程进行体现:
S301、主播端31开播后,将直播视频流推送给云端服务器32;
S302、主播端31将第一标识信息发送至云端服务器32,这里的第一标识信息是主播端31指定的需合成至直播视频流的资源的标识信息,其中,资源对应有HTML文件;在本实施例中,资源是图片A,第一标识信息是指图片A的URL;
S303、云端服务器32接收第一标识信息后,启动基于CEF的无头浏览器,通过无头浏览器加载该资源对应的HTML页面;
具体的,云端服务器32是通过无头浏览器访问图片A的URL,获取图片A对应的HTML文件后,调用CEF解析该HTML文件并进行渲染出图片A对应的HTML页面,进而获取得到CEF在渲染该HTML页面时产生的图像序列,记为第一图像序列;另外,在本实施例中,云端服务器32加载的HTML页面是HTML5页面,HTML5技术结合了上一代的HTML的相关标准并革新,相比较而言,HTML5技术可以更加便捷地处理多媒体内容;
S304、云端服务器32将该资源对应的HTML页面合成到直播视频流中;
具体的,云端服务器32对直播视频流进行解码,得到第二图像序列,并按照预设规则,将第一图像序列合成至第二图像序列中,得到合成后的图像序列,再通过编码器对合成后的图像序列进行编码,得到合成后的视频流;另外,在本实施例中,主播端31发送的直播视频流和第一标识信息中携带有显示时间戳,云端服务器32是根据显示时间戳,将第一图像序列同步合成至对应的第二图像序列中;
S305、云端服务器32将合成后的视频流推送给观众端33;
需要说明的是,在其他实施例中,云端服务器32可以是将合成后的视频流,通过直播协议推送给CDN,再由CDN分发给观众端33;
S306、主播端31加载WebView控件,利用WebView控件加载该资源对应的HTML页面至直播画面上,以供主播预览合成后的画面的效果;
需要说明的是,S306可以是在S302之后执行,也就是说,S306可以是与前面的S303同步进行的,本实施例对此不作限制;
S307、主播端31在需要更新叠加内容时,将第二标识信息发送至云端服务器32,这里的第二标识信息是主播端31指定的新资源的标识信息,其中,新资源对应有HTML文件;在本实施例中,新资源是图片B,第二标识信息是指图片B的URL;
S308、云端服务器32接收第二标识信息后,按照S303至S305的流程更新所加载的HTML页面,具体的,云端服务器32加载新资源的HTML页面,将新资源的HTML页面合成至直播视频流中,并将合成后的直播视频流推送给观众端33。
本说明书实施例的直播方案,通过S301至S308的步骤,主播端只需要将直播视频流以及需合成至直播视频流的资源的标识信息给到云端服务器,即可由云端服务器实现将该资源合成至直播视频流的操作,并且主播端可以通过改变指定的资源的标识信息,驱动云端服务器对加载的HTML页面的更新,从而可以实现根据需要将不同的内容叠加到直播视频流的效果。这一直播方案,降低了对主播端所在的开播设备的性能要求,为硬件性能较差的开播设备提供了将复杂图层叠加到直播视频流的能力。
与前述方法的实施例相对应,本说明书还提供了直播装置及其所应用的终端的实施例。
本说明书直播装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书实施例直播装置所在计算机设备的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
如图5所示,图5是本说明书根据一示例性实施例示出的一种直播装置的框图,所述装置应用于服务端,包括:
视频获取模块51,用于获取主播端推送的直播视频流;
资源获取模块52,用于获取主播端指定的需合成至所述直播视频流的资源的标识信息后,通过所述标识信息获取所述资源对应的HTML页面代码;
渲染页面模块53,用于根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列;
视频合成模块54,用于将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
如图6所示,图6是本说明书根据一示例性实施例示出的另一种直播装置的框图,所述装置应用于主播端,包括:
视频推送模块61,用于将直播视频流推送至服务端;
资源推送模块62,用于将指定的需合成至所述直播视频流的资源的标识信息发送给所述服务端,以使所述服务端通过所述标识信息获取所述资源对应的HTML页面代码,根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列,并将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种直播方法,其特征在于,所述方法应用于服务端,包括:
获取主播端推送的直播视频流;
获取主播端指定的需合成至所述直播视频流的资源的标识信息后,通过所述标识信息获取所述资源对应的HTML页面代码;
根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列;
将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
2.根据权利要求1所述的方法,其特征在于,所述将所述图像序列合成至所述直播视频流中,包括:
基于所述直播视频流得到直播图像序列;
按照预设规则,将所述图像序列合成至所述直播图像序列中,所述预设规则包括图像序列在直播图像序列上的合成位置、图像序列的旋转角度的变换规则。
3.根据权利要求1所述的方法,其特征在于,所述直播视频流和所述标识信息中分别携带有时间戳;
所述将所述图像序列合成至所述直播视频流中,包括:
将所述图像序列中的图像合成至所述直播视频流中的相同时间戳的直播图像。
4.根据权利要求1所述的方法,其特征在于,所述浏览器为无头浏览器。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取预存的多个资源的标识信息,并发送给主播端,以使主播端展示所述多个资源,以供主播端的用户选择需合成至所述直播视频流的资源。
6.一种直播方法,其特征在于,所述方法应用于主播端,包括:
将直播视频流推送至服务端;
将指定的需合成至所述直播视频流的资源的标识信息发送给所述服务端,以使所述服务端通过所述标识信息获取所述资源对应的HTML页面代码,根据所述HTML页面代码,通过浏览器渲染所述资源对应的HTML页面,以获取所述浏览器在渲染所述HTML页面时产生的图像序列,并将所述图像序列合成至所述直播视频流中,将合成得到的视频流推送给观众端。
7.根据权利要求6所述的方法,其特征在于,所述标识信息包括所述资源的网络地址,所述方法还包括:
创建WebView控件,利用所述WebView访问标识信息中的网络地址,请求资源对应的HTML页面代码,再对获取到的HTML页面代码进行解析,并渲染资源对应的HTML页面至直播画面上,以供本端用户预览合成后的画面的效果。
8.根据权利要求6所述的方法,其特征在于,所述指定的需合成至所述直播视频流的资源是响应于本端用户对展示的多个资源的选择操作而确定的。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110495306.9A CN113315982B (zh) | 2021-05-07 | 2021-05-07 | 一种直播方法、计算机存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110495306.9A CN113315982B (zh) | 2021-05-07 | 2021-05-07 | 一种直播方法、计算机存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315982A true CN113315982A (zh) | 2021-08-27 |
CN113315982B CN113315982B (zh) | 2023-06-27 |
Family
ID=77371684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110495306.9A Active CN113315982B (zh) | 2021-05-07 | 2021-05-07 | 一种直播方法、计算机存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113315982B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113949900A (zh) * | 2021-10-08 | 2022-01-18 | 上海哔哩哔哩科技有限公司 | 直播贴图处理方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030025728A1 (en) * | 2001-07-10 | 2003-02-06 | Ebbo David S. | User control objects for providing server-side code generation from a user-defined dynamic web page content file |
CN106484383A (zh) * | 2015-08-31 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 页面渲染方法、装置及设备 |
CN107911708A (zh) * | 2017-11-09 | 2018-04-13 | 腾讯数码(天津)有限公司 | 弹幕显示方法、直播方法、及相关装置 |
CN109218754A (zh) * | 2018-09-28 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 一种直播中的信息显示方法、装置、设备及介质 |
CN109547838A (zh) * | 2018-12-06 | 2019-03-29 | 青岛海信传媒网络技术有限公司 | 视频窗口的处理方法及装置 |
US20190200047A1 (en) * | 2016-12-06 | 2019-06-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method, apparatus, and system for live streaming page |
CN109963163A (zh) * | 2017-12-26 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 网络视频直播方法、装置及电子设备 |
CN110096659A (zh) * | 2019-03-27 | 2019-08-06 | 北京三快在线科技有限公司 | 一种页面显示方法、装置、设备及可读存储介质 |
CN110475150A (zh) * | 2019-09-11 | 2019-11-19 | 广州华多网络科技有限公司 | 虚拟礼物特效的渲染方法和装置、直播系统 |
CN110996151A (zh) * | 2019-11-22 | 2020-04-10 | 广州虎牙科技有限公司 | 视频图层叠加方法、装置、电子设备和存储介质 |
CN112637623A (zh) * | 2020-12-11 | 2021-04-09 | 创盛视联数码科技(北京)有限公司 | 直播处理方法、装置及电子设备 |
CN112714365A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 视频播放方法和系统 |
-
2021
- 2021-05-07 CN CN202110495306.9A patent/CN113315982B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030025728A1 (en) * | 2001-07-10 | 2003-02-06 | Ebbo David S. | User control objects for providing server-side code generation from a user-defined dynamic web page content file |
CN106484383A (zh) * | 2015-08-31 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 页面渲染方法、装置及设备 |
US20190200047A1 (en) * | 2016-12-06 | 2019-06-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method, apparatus, and system for live streaming page |
CN107911708A (zh) * | 2017-11-09 | 2018-04-13 | 腾讯数码(天津)有限公司 | 弹幕显示方法、直播方法、及相关装置 |
CN109963163A (zh) * | 2017-12-26 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 网络视频直播方法、装置及电子设备 |
CN109218754A (zh) * | 2018-09-28 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 一种直播中的信息显示方法、装置、设备及介质 |
CN109547838A (zh) * | 2018-12-06 | 2019-03-29 | 青岛海信传媒网络技术有限公司 | 视频窗口的处理方法及装置 |
CN110096659A (zh) * | 2019-03-27 | 2019-08-06 | 北京三快在线科技有限公司 | 一种页面显示方法、装置、设备及可读存储介质 |
CN110475150A (zh) * | 2019-09-11 | 2019-11-19 | 广州华多网络科技有限公司 | 虚拟礼物特效的渲染方法和装置、直播系统 |
CN112714365A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 视频播放方法和系统 |
CN110996151A (zh) * | 2019-11-22 | 2020-04-10 | 广州虎牙科技有限公司 | 视频图层叠加方法、装置、电子设备和存储介质 |
CN112637623A (zh) * | 2020-12-11 | 2021-04-09 | 创盛视联数码科技(北京)有限公司 | 直播处理方法、装置及电子设备 |
Non-Patent Citations (4)
Title |
---|
杨涛: "浏览器如何渲染页面?", 《腾讯视频》 * |
杨涛: "浏览器如何渲染页面?", 《腾讯视频》, 18 October 2017 (2017-10-18), pages 0 - 3 * |
知乎用户: "什么是无头浏览器,它有什么应用场景?", 《知乎》 * |
知乎用户: "什么是无头浏览器,它有什么应用场景?", 《知乎》, 8 April 2019 (2019-04-08), pages 2 - 14 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113949900A (zh) * | 2021-10-08 | 2022-01-18 | 上海哔哩哔哩科技有限公司 | 直播贴图处理方法及系统 |
CN113949900B (zh) * | 2021-10-08 | 2023-11-24 | 上海哔哩哔哩科技有限公司 | 直播贴图处理方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113315982B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327727B (zh) | 一种WebRTC中的直播流处理方法及推流客户端 | |
JP6570646B2 (ja) | オーディオビデオファイルのライブストリーミング方法、システム及びサーバー | |
Li et al. | Fundamentals of multimedia | |
CN109889907B (zh) | 一种基于html5的视频osd的显示方法及装置 | |
US9224156B2 (en) | Personalizing video content for Internet video streaming | |
CN107645491A (zh) | 媒体流传输设备和媒体服务设备 | |
CN110446114B (zh) | 多媒体数据的处理装置、方法、电子设备及存储介质 | |
CN104361075A (zh) | 一种图像网址系统及实现方法 | |
US11128894B2 (en) | Method and mobile terminal for processing data | |
CN110505511B (zh) | 一种在网页中播放视频的方法、装置、系统及计算设备 | |
WO2022127890A1 (zh) | 一种基于云服务的渲染方法及其相关设备 | |
WO2020097857A1 (zh) | 一种媒体流处理方法及装置、存储介质及程序产品 | |
CN112449250B (zh) | 一种视频资源的下载方法、装置、设备和介质 | |
CN113315982B (zh) | 一种直播方法、计算机存储介质及设备 | |
CN108632644B (zh) | 预览图的展示方法以及设备 | |
US20210127181A1 (en) | Systems and methods for providing real time dynamic modification of content in a video | |
JP2022522575A (ja) | カプセル化されたメディアコンテンツの利用可能な部分をシグナリングするための方法、装置、及びコンピュータプログラム | |
KR20140133096A (ko) | 가상화 웹 iptv 및 이를 이용한 동영상 스트리밍 방법 | |
US10567837B2 (en) | System for providing cloud-based user interfaces and method thereof | |
RU2690888C2 (ru) | Способ, устройство и вычислительное устройство для получения широковещательного контента | |
US10499089B2 (en) | System for providing cloud-based user interfaces and method therefor | |
CN110662082A (zh) | 数据处理方法、装置、系统、移动终端及存储介质 | |
KR20150032059A (ko) | 반응형 컨텐츠 제공 시스템 및 방법 | |
JP2020135505A (ja) | 情報処理装置、及びプログラム | |
JP7101336B2 (ja) | Cta表示プログラム、情報処理装置、cta表示方法、および動画再生システム |
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 |