CN114222149A - 一种推流方法、装置、介质及计算机设备 - Google Patents

一种推流方法、装置、介质及计算机设备 Download PDF

Info

Publication number
CN114222149A
CN114222149A CN202111358863.2A CN202111358863A CN114222149A CN 114222149 A CN114222149 A CN 114222149A CN 202111358863 A CN202111358863 A CN 202111358863A CN 114222149 A CN114222149 A CN 114222149A
Authority
CN
China
Prior art keywords
canvas
material object
audio
sub
user
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
Application number
CN202111358863.2A
Other languages
English (en)
Inventor
余潇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN202111358863.2A priority Critical patent/CN114222149A/zh
Publication of CN114222149A publication Critical patent/CN114222149A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream

Abstract

本发明提供一种推流方法、装置、介质及计算机设备,包括:确定各视觉元素对应的素材对象,视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;基于预设的帧率对总画布进行流捕获,获得视频轨;总画布中还包括有屏幕窗口对应的第一素材对象;获取用户的各路音频,根据各路音频获得音频轨;基于视频轨及音频轨创建媒体流;推送媒体流;如此,用户只需在浏览器端进行音频混流及推流,无需下载并安装任何插件或第三方的软件的情况下直接进行直播推流,操作简单,提高直播效率;同时降低了新用户的直播门槛,提高用户尝试直播的积极性。

Description

一种推流方法、装置、介质及计算机设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种推流方法、装置、介质及计算机设备。
背景技术
目前,市面上各直播平台及开播推流工具都是基于客户端实现的。用户想在PC端进行直播必须先下载并安装对应的客户端软件,操作繁琐,影响直播效率。并且这样对新主播或者仅仅是想尝试直播功能的用户非常不友好,甚至有一定的门槛(比如需要)。同时客户端还存在数据更新不及时,部署繁琐等弊端。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种推流方法、装置、介质及计算机设备,用于解决现有技术中,用户在进行直播时必须下载对应的客户端,操作繁琐,导致直播效率不高的技术问题。
本发明的第一方面,提供一种推流方法,应用在WebRTC浏览器端,所述方法包括:
确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取用户的各路音频,根据各路音频获得音频轨;
基于所述视频轨及所述音频轨创建媒体流;
推送所述媒体流。
上述方案中,所述获取各视觉元素对应的素材对象后,还包括:
当所述素材对象为所述屏幕窗口对应的第一素材对象时,利用预设的第一视频元素承载所述第一素材对象;
响应用户对所述第一素材对象的位置操作指令,根据所述操作指令将所述第一素材对象的实际位置信息同步至位置属性参数中。
上述方案中,所述根据所述操作指令将所述第一素材对象的实际位置信息同步至位置属性参数中后,方法还包括:
当确定所述第一素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第一不可见文档对象DOM,所述第一不可见文档对象为所述第一视频元素的备用承载区域;
将所述第一素材对象迁移至所述第一不可见文档对象中,以持续渲染所述第一素材对象对应的图像。
上述方案中,所述确定所述第一素材对象所在的区域为不可见区域,包括:
基于预设的时间间隔将所述第一视频元素中的第一素材对象绘制在第一子画布中;
针对每个时刻,获取所述第一子画布中的黑像素在像素数据中的占比;
若所述占比大于预设的阈值,则确定所述述第一素材对象所在的区域为不可见区域。
上述方案中,所述将所述素材对象材渲染至对应的子画布中,包括:
若所述素材对象为所述摄像头对应的第二素材对象时,利用预设的第二视频元素承载所述第二素材对象;
当确定所述第二素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第二不可见文档对象DOM,所述第二不可见文档对象为所述第二视频元素的备用承载区域;
将所述第二素材对象迁移至所述第二不可见文档对象中;
当所述第二视频元素处于正常播放状态时,将所述第二素材对象绘制到第二子画布的第一层画布上;所述第一层画布用于呈现所述第二素材对象对应的原始图像;
从所述第一层画布中读取原始图像数据,利用第二层画布对所述图像数据进行美化处理。
上述方案中,所述目标视觉元素还包括:字幕;所述将所述素材对象材渲染至对应的子画布中,包括:
若所述素材对象为所述字幕对应的第三素材对象时,基于字幕属性设置信息,利用第三子画布绘制用户输入的所述第三素材对象。
上述方案中,所述利用所述第三子画布绘制用户输入的第三素材图像,包括:
若确定所述字幕为水平布局,则基于公式X1=S1+alignX+shiftX确定所述字幕的第一横坐标X1;
基于公式Y1=(M-1)*T+alignY+shiftY确定所述字幕的第一纵坐标Y1;
基于所述第一横坐标及所述第一纵坐标进行逐行绘制所述第三素材图像;其中,
所述S1为当前行对齐点到文本矩形左侧边界的距离,所述M为当前行数,所述T为字体的字号大小,所述alignX为水平对齐参数,所述shiftX为水平偏移参数,所述alignY为竖直对齐参数,所述shiftY为竖直偏移参数。
本发明的第二方面,提供一种推流装置,应用在WebRTC浏览器端,所述装置包括:
确定单元,用于确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
渲染单元,用于将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
捕获单元,用于基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取单元,用于获取用户的各路音频,根据各路音频获得音频轨;
推送单元,用于基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流。
本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的方法。
本发明的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中任一项所述的方法。
本发明提供一种推流方法、装置、介质及计算机设备,方法包括:确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;将所述目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;获取用户的各路音频,根据各路音频获得音频轨;基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流;如此,用户只需在浏览器端进行音频混流及推流,无需下载并安装任何插件或第三方的软件的情况下直接进行直播推流,操作简单,提高直播效率;同时降低了新用户的直播门槛,提高用户尝试直播的积极性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的推流方法流程示意图;
图2为本发明实施例提供的各视觉元素的素材对象添加示意图;
图3为本发明实施例提供的推流装置结构示意图;
图4为本发明实施例提供的计算机设备整体结构示意图;
图5为本发明实施例提供的计算机可读存储介质的整体结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本实施例提供一种推流方法,应用在WebRTC浏览器端,如图1所示,方法包括以下步骤:
S110,确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
本实施例的视觉元素主要包括用于呈现第三方应用程序画面的屏幕窗口、用于呈现主播画面的摄像头、用于呈现主播输入文字信息的字幕及用于呈现主播输入图片信息的图片,即这些视觉元素对应的素材对象为主播用户配置的图像、声音等数据。具体的,屏幕窗口可以理解为用于播放视频画面的窗口,摄像头主要是用于采集主播画面,字幕为主播输入的字幕,比如一些广告字幕等;图片为主播输入的一些图片,比如表情图片等。
因此在WebRTC浏览器端实现画面直播或短视频播放时,需要确定各视觉元素并获取各视觉元素对应的素材对象。可以理解的是,若视觉元素为屏幕窗口时,视觉元素对应的第一素材对象可以为第三方应用程序的画面,比如竞技类游戏等应用程序的视频画面;若视觉元素为摄像头时,视觉元素对应的第二素材对象应为主播的头像画面;若视觉元素为字幕时,视觉元素对应的第三素材对象为主播输入的文字;若视觉元素为图片时,视觉元素对应的第四素材对象为主播输入的图片。
这里,WebRTC(Web Real-Time Communications)是一项实时通讯技术,允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。
本实施例中,可通过MediaDevices接口获取视觉元素的素材对应的图像、声音等数据。其中,MediaDevices接口供访问连接媒体输入的设备,如照相机和麦克风,以及屏幕共享等。可通过该接取得硬件资源的媒体数据。
需要说明的是,本实施例中在WebRTC浏览器中,可以通过人机交互的方法引导用户对各视觉元素添加对应的素材对象。其中,该人机交互界面如图2所示。
在图2中,各视觉元素的素材对象均可以通过IVisualElement接口实现添加,IVisualElement接口约束了素材对象在编辑区的展示形式、在最终直播流中的位置信息(比如坐标以及长、宽尺寸)、混流时的绘制方式、销毁方式等功能。
本实施例中在WebRTC浏览器中引导用户对不同视觉元素添加对应的素材对象,为后续推流奠定好数据基础。
S111,将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
可理解的是,所述目标视觉元素的素材对象表征在实现画面直播或短视频播放过程中需要被计算机设备进行二次编辑并渲染的视觉元素对应的素材对象。
当用户为各视觉元素添加了对应的素材对象后,本实施例将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;目标视觉元素包括:用于呈现主播画面的摄像头;目标视觉元素还包括:字幕及图片。
这里,值得注意的是,因屏幕窗口对应的素材对象可以直接用来播放,并不需要进行二次编辑,因此确定各视觉元素对应的素材对象后,方法还包括:
当素材对象为屏幕窗口对应的第一素材对象时,利用预设的第一视频元素<video1>承载第一素材对象;并将第一素材对象直接作为屏幕窗口的展示内容;
响应用户对所述第一素材对象的位置操作指令,根据所述操作指令将所述第一素材对象的实际位置信息同步至位置属性参数中。
这里,当用户在编辑区域对第一素材对象进行托拽、缩放等操作时,本实施例可以响应用户对第一素材对象的位置操作指令,根据操作指令将第一素材对象的实际位置信息同步至位置属性参数中。最终在对视频及音频进行混流时,直接将第一视频元素承载的内容绘制在总画布中。
因在实际应用时,用户可能会将第一视频元素操作至整个编辑区域(非屏幕窗口中)的不可见区域,那么在一种可选的实施例中,根据操作指令将第一素材对象的实际位置信息同步至位置属性参数中后,方法还包括:
当确定第一素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第一不可见文档对象DOM,第一不可见文档对象为第一视频元素的备用承载区域;
将第一素材对象迁移至第一不可见文档对象中,以持续渲染第一素材对象对应的图像(视频画面)。
在一种可选的实施例中,由于应用程序在最小化之后,操作系统将会停止画面的绘制,因此本实施例需要对第一视频元素承载的第一素材对象进行黑屏检测(黑屏可理解为不可见),也即确定第一素材对象所在的区域为不可见区域,包括:
基于预设的时间间隔将第一视频元素中的第一素材对象绘制在第一子画布中;
针对每个时刻,获取第一子画布中的黑像素在像素数据中的占比;第一子画布的尺寸可以为10px*10px;
若占比大于预设的阈值,则确定第一素材对象所在的区域为不可见区域。
若占比小于或等于预设的阈值,则确定第一素材对象所在的区域为可见区域时,可保存该时刻的完整像素数据作为备份数据。
若确定第一素材对象所在的区域为不可见区域时,则认为已经停止绘制第一素材对象对应的画面,后续在混流时,可以使用上述的备份数据作为混流的源图像。
在一种可选的实施例中,将素材对象材渲染至对应的子画布中,包括:
若素材对象为摄像头对应的第二素材对象时,利用预设的第二视频元素<video2>承载第二素材对象;
当确定第二素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第二不可见文档对象DOM,第二不可见文档对象为第二视频元素的备用承载区域;其中,第二不可见文档对象DOM的尺寸为10px*10px;
将第二素材对象迁移至第二不可见文档对象中;
当第二视频元素处于正常播放状态时,将第二素材对象绘制到第二子画布的第一层画布上;第一层画布用于呈现第二素材对象对应的原始图像;
从第一层画布中读取原始图像数据,利用第二层画布对所述图像数据进行美化处理。
具体来讲,摄像头对应的第二素材对象也可通过MediaDevices接口获取,并利用第二视频元素承载第二素材对象。同样的原因,用户可能会将第二视频元素操作至整个编辑区域(非屏幕窗口中)的不可见区域,因此需要创建第二不可见文档对象作为第二视频元素的备用承载区域,使得摄像头的画面可以持续播放。
并且由于摄像头输入的美颜功能已成为当前视频播放的标配功能,因此本实施例中基于两层画布实现,第一层画布利用CanvasRenderingContext2D函数呈现摄像头的原始图像,并响应用户对画面的操作指令,比如水平翻转及竖直翻转等;第二层画布从第一层画布中读取原始图像数据,利用WebGL2RenderingContext函数对图像数据进行美化处理。
若用户没有启用美颜功能,则在混流时直接使用第一层子画布的图像进行混流;若用户启用了美颜功能,在混流时使用第二层子画布的图像进行混流。
和第一子画布一样,若用户对第二素材对象进行拖拽、缩放等操作后,本实施例的浏览器需要根据用户的操作指令将第二素材对象的实际位置信息同步至对应的位置属性参数中。
在一种可选的实施例中,将素材对象材渲染至对应的子画布中,包括:
若素材对象为字幕对应的第三素材对象时,基于字幕属性设置信息,利用第三子画布绘制用户输入的第三素材对象。
这里,第三素材对象为主播输入的字幕信息,本实施例可以基于主播对第三素材对象的属性设置信息来对字幕信息进行调整。其中,第三对象的属性设置信息可以包括:字体、字号、字形颜、描边颜色、背景颜色、粗体、斜体、下划线、排版方式、移动方式等常规的文字排版相关设置信息。当用户输入文字时,通过第三子画布承载输入的文字,作为展示内容。
同样的,当用户对第三素材对象进行拖拽、缩放等操作后,本实施例的浏览器需要根据用户的操作指令将第三素材对象的实际位置信息同步至对应的位置属性参数中。
进一步地,为了使得字幕呈现更好的效果,比如动态的跑马灯效果,本实施例在利用第三子画布绘制输入的文字时,还需利用文字偏移参数对输入的文字进行位置修正。
具体来讲,文字偏移参数包括:水平偏移参数shiftX及竖直偏移参数shiftY;当字幕为水平布局时,竖直偏移参数取值为0;
根据公式[(t/1000*v)/100]%1*w1确定水平偏移参数,基于水平偏移参数对文字位置进行修正。其中,“%”为取余符号,t为输入当前字对应的时刻与跑马灯效果应用时刻之间的时间差,v为预设的跑马灯速度,w1为字幕宽度。
当字幕为垂直布局时,水平偏移参数取值为0;
根据公式[(t/1000*v)/100]%1*h确定竖直偏移参数,基于竖直偏移参数对文字位置进行修正。其中,“%”为取余符号,t为输入当前字对应的时刻与跑马灯效果应用时刻的时间差,v为预设的跑马灯速度,h为字幕总高度。
进一步地,为支持高级排版的自动换行和对齐方式设置方式,本实施例对水平对齐参数alignX和竖直对齐参数alignY属性对文字进行对齐修正。
具体来讲,当字幕为水平布局,用户选择的为字幕设置方式为水平居左时,此时水平对齐参数alignX的取值为0,竖直对齐参数alignY无设置。
当用户选择的字幕方式为水平居中时,基于公式(w2-w)/2确定水平对齐参数的取值,竖直对齐参数alignY无设置。其中,w2为当前行宽,w为用户设置的字幕区域的实际宽度。
当用户选择的字幕方式为水平居右时,基于公式w2-w确定水平对齐参数的取值,竖直对齐参数alignY无设置。
当用户选择的字幕方式为垂直居上时,水平对齐参数无取值,竖直对齐参数取值为0。
当用户选择的字幕方式为垂直居中时,水平对齐参数无取值,竖直对齐参数取值根据公式(T-h)/2确定;其中,T为字体的字号大小,h为字幕总高度。
当用户选择的字幕方式为垂直居下时,水平对齐参数无取值竖直对齐参数取值根据公式T-h确定;其中,T为字体的字号大小,h为字幕总高度。
水平布局时,第三子画布的绘制方式为逐行绘制,那么利用第三子画布绘制用户输入的第三素材图像,包括:
若确定字幕为水平布局,则基于公式X1=S1+alignX+shiftX确定字幕的第一横坐标X1;
基于公式Y1=(M-1)*T+alignY+shiftY确定字幕的第一纵坐标Y1;
基于第一横坐标及第一纵坐标逐行绘制第三素材图像;其中,
S1为当前行对齐点到文本矩形左侧边界的距离,M为当前行数,T为字体的字号大小。
在一种可选的实施例中,当字幕为垂直布局,用户选择的为字幕设置方式为水平居左时,此时水平对齐参数alignX的取值为0,竖直对齐参数alignY无设置。
当用户选择的字幕方式为水平居中时,基于公式(w3-w)/2确定水平对齐参数的取值,竖直对齐参数alignY无设置。其中,w3为字幕区域的理想宽度,该理想宽度可以理解为计算机根据用户输入的字自动计算出的所需展示的最佳宽度;w为用户设置的字幕区域的实际宽度,w可能大于w3,也可能小于w3。
当用户选择的字幕方式为水平居右时,基于公式w3-w确定水平对齐参数的取值,竖直对齐参数alignY无设置。
当用户选择的字幕方式为垂直居上时,水平对齐参数无取值,竖直对齐参数取值为0。
当用户选择的字幕方式为垂直居中时,水平对齐参数无取值,竖直对齐参数取值根据公式(h-h1)/2确定;其中,h为字幕总高度,h1为当前列高度。
当用户选择的字幕方式为垂直居下时,水平对齐参数无取值竖直对齐参数取值根据公式h-h1确定;其中,h为字幕总高度,h1为当前列高度。
垂直布局时,第三子画布的绘制方式为逐字绘制,那么利用第三子画布绘制用户输入的第三素材图像,包括:
若确定字幕为垂直布局,则基于公式X2=w-N*w4+alignX+shiftX确定字幕的第二横坐标X2;
基于公式Y2=F*T+alignY+shiftY确定字幕的第二纵坐标Y1;
基于第二横坐标及第二纵坐标逐字绘制第三素材图像;其中,
w为用户设置的字幕区域的实际宽度,N为当前列数,w4为单字最大宽度,alignX为水平对齐参数,shiftX为水平偏移参数;F为当前字所在列的序数,T为文字的字号大小,alignY为竖直对齐参数,shiftY为竖直偏移参数。
举例来说,比如字幕为垂直布局时,用户输入
一二三
四五六”两列字,“一二三”为第一列,“四五六”为第二列,那么“二”和“五”均在第二行,“二”所在列的序数为第一列的第二序数,那么F取值为2;“五”所在列的序数为第二列的第二序数,那么F取值也为2。
这样即可利用第三子画布绘制第三素材对象。
在一种可选的实施例中,当素材对象为图片对应的第四素材对象时,用户可通过函数<input type="file">从操作系统内选择图片,那么浏览器可使用图片元素<image>对第四素材对象进行承载并展示。
值得注意的是,当图片为GIF图像时,本实施例中考到虑GIF的帧信息可能存在压缩,因此这里也会使用两层画布(第三层画布和第四层画布)对图片进行渲染;其中,第三层画布用于渲染当前帧的信息,第四层画布用于合成最终画面,并将最终画面作为混流的源图像。
当图片为非GIF图片时,可以直接将图片元素<image>承载的第四素材对象作为混流的源图像。
同样的,当用户对第四素材对象进行拖拽、缩放等操作后,本实施例的浏览器需要根据用户的操作指令将第四素材对象的实际位置信息同步至对应的位置属性参数中。
值得注意的是,当用户按照自行顺序依次选择并提交各视觉元素的素材对象时,浏览器会利用IVisualElement集合基于该顺序保存对应的素材对象。
本步骤中通过将各素材对象渲染至对应的子画布中,然后利用总画布对各子画布进行汇合,这样总画布中存在了所有子画布中的信息,因此后续可通过对总画布进行流捕获,获得用于混流的视频轨。
S112,基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
在浏览器进行初始化时,可基于预设的帧率对所述总画布进行流捕获,获得视频轨;该视频轨作为后续推流的视频轨。其中,总画布中还包括有屏幕窗口对应的第一素材对象。
由于在实际应用中,视频是逐帧进行绘制的,每帧视频在生产之后才能进行绘制。为了确保可以顺利的进行绘制,本实施例通过利用计时器来触发帧的生产,每帧的生产时长小于帧绘制时长,也即计时器的触发周期大于帧绘制周期。比如绘制每帧需要30ms,那么生产每帧的时长可为25ms。
在计时器触发后,可以调用IVisualElement集合内的混流绘制方法,将所有视觉元素依次对应的素材对象在总画布进行绘制,获得视频轨。
值得注意的是,为了正确响应用户对视觉元素的位置操作,本实施例在将所有视觉元素依次对应的素材对象在总画布进行绘制之前,还需要按照编辑区域与总画布的尺寸确定换算系数R(换算系数R为编辑区域的尺寸与总画布尺寸之间的商值),并基于R对视觉元素对应区域的尺寸进行调整,最后再作用于总画布中。
本步骤通过对总画布进行流捕获,获得视频轨,便于浏览器后续的流混合。
S113,获取用户的各路音频,根据各路音频获得音频轨;
视频轨获取到之后,还需通过MediaDevices接口获取用户的各路音频,基于各路音频获取的音频轨。
具体来讲,用户在进行短视频播放或者进行直播时,必然要输入音频,因此当获取到各路音频后,可以基于对应的音量控制节点GainNode分别对各路音频进行音量调节,然后通过混音节点DynamicsCompressorNode对音量调节后的各路音频进行混音。其中,音频可以包括主播说话对应的音频以及非主播音频(比如第三方应用程序中携带的音频)。
混音节点将混音后的音频接入到最终的MediaStreamAudioDestinationNode节点,作为最终的音频轨。
进一步地,因为音频的声音会时大时小,为了可以动态地展示出音量大小,,基于对应的音量控制节点GainNode分别对各路音频进行音量调节后,还可以在视频画面中可视化音量,那么方法还包括:
对所有通道的音频进行采样,获得音频样本;
基于公式
Figure BDA0003358230320000131
确定所有音频样本的当前瞬时音量值Vs
基于公式Vc=Vc′*0.98+Vs*0.02确定音频样本的当前音量残值Vc
基于音量残值调整音量的波动幅度。其中,
n为音频样本的数量,i为当前音频样本的序号,xi为当前音频样本的音量值,Vc′为当前音量残值的上一音量残值。
本步骤通过将各路音频进行音量调节后进行混音,获得推流所需要的音频轨,并将音量进行可视化,动态展示出音频波动幅度。
S114,基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流。
获取视频轨和音频轨后,基于视频轨及音频轨创建媒体流MediaStream。
具体的,利用MediaMuxer函数对视频轨和音频轨进行混合,形成媒体流。该媒体流符合WebRTC标准,利用自建信令服务器将媒体流推送至收流服务器,后由收流服务器转发至CDN推流服务器,完成媒体流的推送。
本实施例提供的推流方法,通过在WebRTC浏览器端进行音视频混流及直播推流,使用户可以在无需安装任何插件或者第三方的软件的情况下直接进行直播推流,操作简单,提高了直播效率;同时降低了新用户的直播门槛,提高用户尝试直播的积极性。
并且本申请支持日常直播中常见的桌面/应用画面、摄像头(含美颜)画面、文字字幕、图片等视觉元素的添加,同时支持视觉元素的布局、缩放、层级调整等功能,可覆盖绝大多数直播场景的需求;本申请基于BS架构,后期可以快速迭代开发完善功能,满足不同的视频播放需求。
基于同样的发明构思,本实施例还提供一种推流装置,如图3所示,装置包括:
确定单元31,用于确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
渲染单元32,用于将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
捕获单元33,用于基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取单元34,用于获取用户的各路音频,根据各路音频获得音频轨;
推送单元35,用于基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流。
以上各单元的具体功能可参见上述方法实施例中的对应描述,在此不再赘述。由于本发明实施例所介绍的装置,为实施本发明实施例的方法所采用的装置,故而基于本发明实施例所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例的方法所采用的装置都属于本发明所欲保护的范围。
本发明推流方法、装置、介质及计算机设备能带来的有益效果至少是:
本发明提供一种推流方法、装置、介质及计算机设备,方法包括:确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;获取用户的各路音频,根据各路音频获得音频轨;基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流;如此,用户只需在浏览器端进行音频混流及推流,无需下载并安装任何插件或第三方的软件的情况下直接进行直播推流,操作简单,提高直播效率;同时降低了新用户的直播门槛,提高用户尝试直播的积极性。并且本申请支持日常直播中常见的桌面/应用画面、摄像头(含美颜)画面、文字字幕、图片等视觉元素的添加,同时支持视觉元素的布局、缩放、层级调整等功能,可覆盖绝大多数直播场景的需求;本申请基于BS架构,后期可以快速迭代开发完善功能,满足不同的视频播放需求。
基于与前述实施例同样的发明构思,本实施例提供一种计算机设备400,如图4所示,包括存储器410、处理器420及存储在存储器410上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取用户的各路音频,根据各路音频获得音频轨;
基于所述视频轨及所述音频轨创建媒体流;
推送所述媒体流。
在具体实施过程中,处理器420执行计算机程序411时,可以实现前述实施例中任一实施方式。
由于本实施例所介绍的计算机设备为实施本申请实施例一种推流方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的计算机设备的具体实施方式以及其各种变化形式,所以在此对于该服务器如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本实施例提供一种计算机可读存储介质500,如图5所示,其上存储有计算机程序511,该计算机程序511被处理器执行时实现以下步骤:
确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取用户的各路音频,根据各路音频获得音频轨;
基于所述视频轨及所述音频轨创建媒体流;
推送所述媒体流。
在具体实施过程中,该计算机程序511被处理器执行时,可以实现前述实施例中任一实施方式。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种推流方法,其特征在于,应用在WebRTC浏览器端,所述方法包括:
确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取用户的各路音频,根据各路音频获得音频轨;
基于所述视频轨及所述音频轨创建媒体流;
推送所述媒体流。
2.如权利要求1所述的方法,其特征在于,所述确定各视觉元素对应的素材对象后,还包括:
当所述素材对象为所述屏幕窗口对应的第一素材对象时,利用预设的第一视频元素承载所述第一素材对象;
响应用户对所述第一素材对象的位置操作指令,根据所述操作指令将所述第一素材对象的实际位置信息同步至位置属性参数中。
3.如权利要求2所述的方法,其特征在于,所述根据所述操作指令将所述第一素材对象的实际位置信息同步至位置属性参数中后,方法还包括:
当确定所述第一素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第一不可见文档对象DOM,所述第一不可见文档对象为所述第一视频元素的备用承载区域;
将所述第一素材对象迁移至所述第一不可见文档对象中,以持续渲染所述第一素材对象对应的图像。
4.如权利要求3所述的方法,其特征在于,所述确定所述第一素材对象所在的区域为不可见区域,包括:
基于预设的时间间隔将所述第一视频元素中的第一素材对象绘制在第一子画布中;
针对每个时刻,获取所述第一子画布中的黑像素在像素数据中的占比;
若所述占比大于预设的阈值,则确定所述述第一素材对象所在的区域为不可见区域。
5.如权利要求1所述的方法,其特征在于,所述将所述素材对象材渲染至对应的子画布中,包括:
若所述素材对象为所述摄像头对应的第二素材对象时,利用预设的第二视频元素承载所述第二素材对象;
当确定所述第二素材对象所在的区域为不可见区域时,在可视区域的预设位置创建第二不可见文档对象DOM,所述第二不可见文档对象为所述第二视频元素的备用承载区域;
将所述第二素材对象迁移至所述第二不可见文档对象中;
当所述第二视频元素处于正常播放状态时,将所述第二素材对象绘制到第二子画布的第一层画布上;所述第一层画布用于呈现所述第二素材对象对应的原始图像;
从所述第一层画布中读取原始图像数据,利用第二层画布对所述图像数据进行美化处理。
6.如权利要求1所述的方法,其特征在于,所述目标视觉元素还包括:字幕;所述将所述素材对象材渲染至对应的子画布中,包括:
若所述素材对象为所述字幕对应的第三素材对象时,基于字幕属性设置信息,利用第三子画布绘制用户输入的所述第三素材对象。
7.如权利要求6所述的方法,其特征在于,所述利用所述第三子画布绘制用户输入的第三素材图像,包括:
若确定所述字幕为水平布局,则基于公式X1=S1+alignX+shiftX确定所述字幕的第一横坐标X1;
基于公式Y1=(M-1)*T+alignY+shiftY确定所述字幕的第一纵坐标Y1;
基于所述第一横坐标及所述第一纵坐标进行逐行绘制所述第三素材图像;其中,
所述S1为当前行对齐点到文本矩形左侧边界的距离,所述M为当前行数,所述T为字体的字号大小,所述alignX为水平对齐参数,所述shiftX为水平偏移参数,所述alignY为竖直对齐参数,所述shiftY为竖直偏移参数。
8.一种推流装置,其特征在于,应用在WebRTC浏览器端,所述装置包括:
确定单元,用于确定各视觉元素对应的素材对象,所述视觉元素包括:用于呈现第三方应用程序画面的屏幕窗口及用于呈现主播画面的摄像头;
渲染单元,用于将目标视觉元素的素材对象渲染至对应的子画布中,利用总画布对所有子画布进行汇合;其中,所述目标视觉元素至少包括所述用于呈现主播画面的摄像头;
捕获单元,用于基于预设的帧率对所述总画布进行流捕获,获得视频轨;所述总画布中还包括有所述屏幕窗口对应的第一素材对象;
获取单元,用于获取用户的各路音频,根据各路音频获得音频轨;
推送单元,用于基于所述视频轨及所述音频轨创建媒体流;推送所述媒体流。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7任一项所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。
CN202111358863.2A 2021-11-17 2021-11-17 一种推流方法、装置、介质及计算机设备 Pending CN114222149A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111358863.2A CN114222149A (zh) 2021-11-17 2021-11-17 一种推流方法、装置、介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111358863.2A CN114222149A (zh) 2021-11-17 2021-11-17 一种推流方法、装置、介质及计算机设备

Publications (1)

Publication Number Publication Date
CN114222149A true CN114222149A (zh) 2022-03-22

Family

ID=80697338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111358863.2A Pending CN114222149A (zh) 2021-11-17 2021-11-17 一种推流方法、装置、介质及计算机设备

Country Status (1)

Country Link
CN (1) CN114222149A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116980555A (zh) * 2023-06-12 2023-10-31 北京医百科技有限公司 输入信号源的采集方法和系统
CN117596377A (zh) * 2024-01-18 2024-02-23 腾讯科技(深圳)有限公司 画面推流方法、装置、电子设备、存储介质及程序产品

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130278592A1 (en) * 2012-04-19 2013-10-24 Motorola Mobility, Inc. Merging Drawing Objects from a Set of Canvas Elements
CN103634681A (zh) * 2013-11-29 2014-03-12 腾讯科技(成都)有限公司 直播互动方法、装置、客户端、服务器及系统
US20150121196A1 (en) * 2013-10-29 2015-04-30 Alibaba Group Holding Limited Browser-based image processing
CN105744340A (zh) * 2016-02-26 2016-07-06 上海卓越睿新数码科技有限公司 直播视频和演示文稿实时画面融合方法
CN107832108A (zh) * 2016-09-14 2018-03-23 阿里巴巴集团控股有限公司 3D canvas网页元素的渲染方法、装置及电子设备
CN108449640A (zh) * 2018-03-26 2018-08-24 广州虎牙信息科技有限公司 直播视频输出控制方法、装置及存储介质、终端
CN108683957A (zh) * 2018-04-25 2018-10-19 北京酷我科技有限公司 一种快速展示直播视频的方法及系统
CN108989830A (zh) * 2018-08-30 2018-12-11 广州虎牙信息科技有限公司 一种直播方法、装置、电子设备及存储介质
CN109302618A (zh) * 2018-11-27 2019-02-01 网易(杭州)网络有限公司 移动终端中的直播画面渲染方法、装置和存储介质
CN109327727A (zh) * 2018-11-20 2019-02-12 网宿科技股份有限公司 一种WebRTC中的直播流处理方法及推流客户端
CN110191293A (zh) * 2019-04-18 2019-08-30 视联动力信息技术股份有限公司 信息呈现方法和装置
CN110990109A (zh) * 2019-12-25 2020-04-10 深圳市创维群欣安防科技股份有限公司 一种拼接屏回显方法、终端、系统及存储介质
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112184856A (zh) * 2020-09-30 2021-01-05 广州光锥元信息科技有限公司 支持多图层特效及动画混合的多媒体处理装置
CN112261434A (zh) * 2020-10-22 2021-01-22 广州华多网络科技有限公司 界面布局控制、处理方法及其相应的装置、设备、介质
CN113014960A (zh) * 2019-12-19 2021-06-22 腾讯科技(深圳)有限公司 一种在线制作视频的方法、装置及存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130278592A1 (en) * 2012-04-19 2013-10-24 Motorola Mobility, Inc. Merging Drawing Objects from a Set of Canvas Elements
US20150121196A1 (en) * 2013-10-29 2015-04-30 Alibaba Group Holding Limited Browser-based image processing
CN103634681A (zh) * 2013-11-29 2014-03-12 腾讯科技(成都)有限公司 直播互动方法、装置、客户端、服务器及系统
CN105744340A (zh) * 2016-02-26 2016-07-06 上海卓越睿新数码科技有限公司 直播视频和演示文稿实时画面融合方法
CN107832108A (zh) * 2016-09-14 2018-03-23 阿里巴巴集团控股有限公司 3D canvas网页元素的渲染方法、装置及电子设备
CN108449640A (zh) * 2018-03-26 2018-08-24 广州虎牙信息科技有限公司 直播视频输出控制方法、装置及存储介质、终端
CN108683957A (zh) * 2018-04-25 2018-10-19 北京酷我科技有限公司 一种快速展示直播视频的方法及系统
CN108989830A (zh) * 2018-08-30 2018-12-11 广州虎牙信息科技有限公司 一种直播方法、装置、电子设备及存储介质
CN109327727A (zh) * 2018-11-20 2019-02-12 网宿科技股份有限公司 一种WebRTC中的直播流处理方法及推流客户端
CN109302618A (zh) * 2018-11-27 2019-02-01 网易(杭州)网络有限公司 移动终端中的直播画面渲染方法、装置和存储介质
CN110191293A (zh) * 2019-04-18 2019-08-30 视联动力信息技术股份有限公司 信息呈现方法和装置
CN113014960A (zh) * 2019-12-19 2021-06-22 腾讯科技(深圳)有限公司 一种在线制作视频的方法、装置及存储介质
CN110990109A (zh) * 2019-12-25 2020-04-10 深圳市创维群欣安防科技股份有限公司 一种拼接屏回显方法、终端、系统及存储介质
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112184856A (zh) * 2020-09-30 2021-01-05 广州光锥元信息科技有限公司 支持多图层特效及动画混合的多媒体处理装置
CN112261434A (zh) * 2020-10-22 2021-01-22 广州华多网络科技有限公司 界面布局控制、处理方法及其相应的装置、设备、介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116980555A (zh) * 2023-06-12 2023-10-31 北京医百科技有限公司 输入信号源的采集方法和系统
CN116980555B (zh) * 2023-06-12 2024-03-26 北京医百科技有限公司 输入信号源的采集方法和系统
CN117596377A (zh) * 2024-01-18 2024-02-23 腾讯科技(深圳)有限公司 画面推流方法、装置、电子设备、存储介质及程序产品

Similar Documents

Publication Publication Date Title
CN107172476B (zh) 一种交互式脚本录制视频简历的系统及实现方法
WO2019105467A1 (zh) 信息的分享方法和装置、存储介质、电子装置
CN114222149A (zh) 一种推流方法、装置、介质及计算机设备
US10757365B2 (en) System and method for providing and interacting with coordinated presentations
CN112822542A (zh) 视频合成方法、装置、计算机设备和存储介质
CN113329252B (zh) 一种基于直播的人脸处理方法、装置、设备和存储介质
CN112601101B (zh) 一种字幕显示方法、装置、电子设备及存储介质
CN105898583B (zh) 一种图像推荐方法及电子设备
WO2016188276A1 (zh) 视频播放方法、客户端和计算机存储介质
CN111246270B (zh) 一种显示弹幕的方法、装置、设备和存储介质
US20240121452A1 (en) Video processing method and apparatus, device, and storage medium
CN105898395A (zh) 一种网络视频播放方法、装置及系统
WO2023104102A1 (zh) 一种直播评论展示方法、装置、设备、程序产品及介质
CN112616062A (zh) 一种字幕显示方法、装置、电子设备及存储介质
CN110636321A (zh) 数据处理方法、装置、系统、移动终端及存储介质
CN111405339A (zh) 一种分屏显示方法、电子设备及存储介质
CN113473207A (zh) 直播方法、装置、存储介质及电子设备
CN113965813A (zh) 直播间内的视频播放方法、系统及计算机设备
CN113315927A (zh) 视频处理方法和装置、电子设备和存储介质
US8063916B2 (en) Graphics layer reduction for video composition
CN116962744A (zh) 网络直播的连麦互动方法、装置及直播系统
US20130182183A1 (en) Hardware-Based, Client-Side, Video Compositing System
CN113806570A (zh) 图像生成方法和生成装置、电子设备和存储介质
CN108076348B (zh) 视频播放控制方法及装置
CN110662082A (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