CN110891193B - 直播视频处理方法、装置、终端及存储介质 - Google Patents
直播视频处理方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110891193B CN110891193B CN201811057231.0A CN201811057231A CN110891193B CN 110891193 B CN110891193 B CN 110891193B CN 201811057231 A CN201811057231 A CN 201811057231A CN 110891193 B CN110891193 B CN 110891193B
- Authority
- CN
- China
- Prior art keywords
- window
- video playing
- video
- view corresponding
- live video
- 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
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/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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- 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/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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
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
技术领域
本发明实施例涉及直播技术,尤其涉及一种直播视频处理方法、装置、终端及存储介质。
背景技术
目前,很多直播视频类应用程序开发有小窗播放功能,在应用程序退出大窗后,采用小窗继续播放后续的视频,或者,在应用程序退出小窗后,采用大窗继续播放后续的视频,从而给用户连贯的直播体验。
发明人在窗口切换的过程中发现,切换过程缓慢,切换后的窗口中出现花屏、卡顿现象,难以提供给用户较好的直播体验。
发明内容
本发明实施例提供一种直播视频处理方法、装置、终端及存储介质,以实现视频播放视图创建好后很快便显示直播视频,避免花屏和卡顿现象。
第一方面,本发明实施例提供了一种直播视频处理方法,包括:
响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上;
响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁所述第一窗口对应的视频播放视图;
在所述第二窗口对应的视频播放视图创建完成后,将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中。
第二方面,本发明实施例还提供了一种直播视频处理装置,包括:
渲染模块,用于响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上;
创建模块,用于响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁模块,用于销毁所述第一窗口对应的视频播放视图;
分流模块,用于在所述第二窗口对应的视频播放视图创建完成后,将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中。
第三方面,本发明实施例还提供了一种终端,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的直播视频处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的直播视频处理方法。
本发明实施例中,通过响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上,从而在切换视频播放窗口之前,将视频预先渲染至离屏表面上;然后响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;销毁第一窗口对应的视频播放视图;并在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中,由于视频流是渲染至离屏表面,使得目标解码器依赖于所述离屏表面,而不依赖于所述第一窗口,在销毁第一窗口时不会销毁所述目标解码器,从而在切换到第二窗口后,无需重新创建解码器,也无需重新进行拉流,直接将离屏表面上的视频分流显示至第二窗口对应的视频播放视图中,使得视频播放视图创建好后很快便显示视频,避免花屏和卡顿现象,提高直播的实时性。
附图说明
图1是本发明实施例一提供的一种直播视频处理方法的流程图;
图2是本发明实施例二提供的一种直播视频处理方法的流程图;
图3是本发明实施例三提供的一种直播视频处理方法的流程图;
图4是本发明实施例四提供的一种直播视频处理方法的流程图;
图5是本发明实施例五提供的一种直播视频处理装置的结构示意图;
图6为本发明实施例六提供的一种终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
实施例一
图1是本发明实施例一提供的一种直播视频处理方法的流程图,本实施例可适用于在直播视频播放窗口切换过程中,对直播视频流进行处理的情况,该方法可以由直播视频处理装置来执行,该装置可以由硬件和/或软件构成,并一般集成在终端中,具体包括如下步骤:
S110、响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上。
其中,直播视频播放指令为指示直播视频处理装置进行视频播放的指令,该指令可以是响应于用户对终端上显示的直播间图标或者直播视频信息的触发操作生成,也可以是根据直播视频处理装置内置的操作逻辑生成,例如操作逻辑为:在直播视频处理装置连接网络后,自动生成直播视频播放指令。
直播视频处理装置响应于视频播放指令,将直播视频流实时渲染至离屏表面(surface)。具体地,在解码出当前帧后,将当前帧的图像渲染至离屏表面上,以覆盖前一帧的图像,使得离屏表面上的图像实时更新。然后,在第一窗口创建完毕后,再将所述离屏表面上的图像复制至所述第一窗口上。
本实施例中,直播视频播放装置具备第一窗口播放功能和第二窗口播放功能,按照窗口尺寸的不同,第一窗口可以是大窗,第二窗口可以是小窗(或者称为悬浮窗)。一般情况下,直播视频播放装置在响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图(view),以便在第一窗口对应的视频播放视图中显示直播视频。
S120、响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图。
可选地,直播视频播放窗口从第一窗口切换至第二窗口的请求信息可以是响应于用户对直播视频处理装置的指定操作生成,例如,对直播视频处理装置执行返回操作、指定手势、打开除本直播视频之外的其它页面、应用程序等操作。
响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图(view),以便在第二窗口对应的视频播放视图中显示直播视频。
S130、销毁第一窗口对应的视频播放视图。
值得说明的是,在实际应用场景中,由于大部分直播视频类应用程序均开发有弹幕、评论、赠送礼物等功能,因此,在创建第一窗口对应的视频播放视图时,需要根据视频中弹幕通道、各功能控件、评论区等元素的布局,创建所述第一窗口过程需要加载视频中各元素,并确定元素布局。另一方面,直播视频流实时渲染至离屏表面上前,需要初始化目标解码器,从而导致第一窗口能够显示视频需要耗费一定的时间。基于此,响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息时,第一窗口对应的视频播放视图可能尚未有直播视频显示,也可能已经有直播视频显示。
在接收到直播视频播放窗口从第一窗口切换至第二窗口的请求信息时,不需要再通过第一窗口对应的视频播放视图显示视频,则无论第一窗口对应的视频播放视图创建完成与否,换言之,无论第一窗口对应的视频播放视图中是否显示视频,均对该视频播放视图进行销毁操作。
由于S110中,所述直播视频流被实时渲染到了离屏表面,即所述目标解码器依赖于该离屏表面,而不依赖于所述第一窗口。销毁所述第一窗口,并不会销毁所述目标播放器。
S140、在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
可选地,在第二窗口对应的视频播放视图创建完成时,获取离屏表面上渲染的当前图像,并将当前图像以及离屏表面上实时渲染的后续图像依次复制到第二窗口对应的视频播放视图中,实现视频从离屏表面上分流显示到视频播放视图中。
可选地,调用开放图形库(Open Graphics Library,OpenGL),将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
本发明实施例中,通过响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上,从而在切换视频播放窗口之前,将视频预先渲染至离屏表面上;然后响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;销毁第一窗口对应的视频播放视图;并在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中,由于视频流是渲染至离屏表面,使得目标解码器依赖于所述离屏表面,而不依赖于所述第一窗口,在销毁第一窗口时不会销毁所述目标解码器,从而在切换到第二窗口后,无需重新创建解码器,也无需重新进行拉流,直接将离屏表面上的视频分流显示至第二窗口对应的视频播放视图中,使得视频播放视图创建好后很快便显示视频,避免花屏和卡顿现象,提高直播的实时性。
实施例二
图2是本发明实施例二提供的一种直播视频处理方法的流程图,本实施例在上述实施例的各可选实施方式的基础上进行进一步优化,具体限定了将直播视频流实时渲染到离屏表面上的过程。具体包括以下步骤:
S210、响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作、拉取直播视频流、创建离屏表面并初始化目标解码器。
直播视频播放指令包括待直播的视频信息,例如,主播房间号、主播名称等。直播视频处理装置响应于直播视频播放指令,根据直播视频播放指令中的视频信息拉取对应的直播视频流,并创建离屏表面。可选地,直播视频流的拉取操作和离屏表面的创建操作可以同步执行。
其中,目标解码器是用于对拉取的直播视频流进行解码的解码器,目标解码器包括硬件解码器或者软件解码器。如果目标解码器为硬件解码器,需要在离屏表面创建完成后,引用离屏表面初始化硬件解码器。
在一示例中,硬件解码器的初始化过程是:首先使用MediaCodec的静态方法创建一个解码器MediaCodec。然后,运行MediaCodec.configure(mediaformat,mSurface,null,0),最后直接调用mMediaCodec.start(),硬件解码器初始化完成。其中,参数mSurface表示离屏表面,也是硬件解码器的输出目的对象。通过离屏表面初始化硬件解码器,无需等待视频播放视图的创建,能够使硬件解码器尽快创建完成。
如果目标解码器为软件解码器,由于软件解码器不依赖于离屏表面,则响应于直播视频播放指令,初始化软件解码器,即直播视频流的拉取操作、离屏表面的创建操作以及软件解码器的初始化操作可以同步执行。
S220、采用目标解码器对直播视频流进行解码。
S230、将解码后的视频实时渲染至离屏表面上。
S240、响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图。
S250、销毁第一窗口对应的视频播放视图。
S260、在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
本实施例中,通过响应于直播视频播放指令,拉取直播视频流、创建离屏表面并初始化目标解码器,采用目标解码器对直播视频流进行解码,将解码后的视频实时渲染至离屏表面上,从而通过创建离屏表面,并通过目标解码器进行解码,以及将解码后的视频实时渲染到离屏表面上的技术手段,实现了预先在离屏表面渲染视频的操作,进而在切换到第二窗口之后,能够使得视频播放视图创建好后很快便显示视频,避免花屏和卡顿现象,提高直播的实时性。
在实施例二的各可选实施方式中,在初始化目标解码器之前,还包括目标解码器的确定过程,即确定硬件解码器还是软件解码器。
具体地,获取用户设置的解码参数或者系统配置的解码参数;根据用户设置的解码参数或者系统配置的解码参数,确定目标解码器。其中,用户设置的解码参数例如是“不发烫”、“快速解码”、“普通解码”等,系统配置的解码参数包括系统默认的目标解码器的信息。进一步地,解码参数与目标解码器有对应关系,“不发烫”、“快速解码”对应硬件解码器,“普通解码”对应软件解码器。系统默认的目标解码器的信息对应硬件解码器或者软件解码器。基于此,基于解码参数与目标解码器的对应关系,确定目标解码器。
本实施例中,通过获取用户设置的解码参数或者系统配置的解码参数;根据用户设置的解码参数或者系统配置的解码参数,确定目标解码器,从而使得本实施例提供的方法适用于软件解码的应用场景和硬件解码的应用场景,适用场景广泛,通用性强。而且,用户可以自由设置硬件解码和软件解码,提高了直播视频播放的个性化和灵活性。
实施例三
图3是本发明实施例三提供的一种直播视频处理方法的流程图,在上述实施例的各可选实施方式的基础上进一步优化,具体增加了切换目标解码器的步骤。如图3所示,具体包括以下步骤:
S310、响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作、拉取直播视频流、创建离屏表面并初始化目标解码器。
S320、采用目标解码器对视频流进行解码。
S330、将解码后的视频实时渲染至离屏表面上。
S340、响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图。
S350、销毁第一窗口对应的视频播放视图。
S360、在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
S310-S360分别与上述实施例中的S210-S260相同,此处不再赘述。
S370、响应于目标解码器切换指令,确定与目标解码器切换指令匹配的目标解码器。
其中,目标解码器切换指令为指示目标解码器进行切换的指令,可选地,目标解码器切换指令可包括切换后的目标解码器的指示信息,直播视频处理装置根据切换后的目标解码器的指示信息确定相匹配的目标解码器。可选地,目标解码器切换指令也可以包括切换当前目标解码器的指示信息,直播视频处理装置根据切换当前目标解码器的指示信息确定切换后的目标解码器。当然,目标解码器切换指令可以同时包括切换后的目标解码器的指示信息和切换当前目标解码器的指示信息。
可选地,该指令可以是响应于用户对解码参数的更新操作生成,例如,响应于用户将“普通解码”更新为“快速解码”的操作,生成切换至硬件解码器的指令,也可以在监测到第二窗口对应的视频播放视图中直播失败时,生成目标解码器切换指令。
可选地,通过后台监控线程监测直播情况,例如,如果监测到直播视频播放卡顿、不流畅、直播出错等情况,认为第二窗口对应的视频播放视图中直播失败。此时,如果当前目标解码器为硬件解码器,则确定与目标解码器切换指令匹配的目标解码器为软件解码器;如果当前目标解码器为软件解码器,则确定与目标解码器切换指令匹配的目标解码器为硬件解码器。
S380、初始化与目标解码器切换指令匹配的目标解码器,并采用与目标解码器切换指令匹配的目标解码器对直播视频流进行解码。
具体地,采用与目标解码器切换指令匹配的目标解码器对直播视频流进行解码。
S390、将解码后的视频实时渲染至离屏表面上。
S391、将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
本实施例中,通过响应于目标解码器切换指令,确定与目标解码器切换指令匹配的目标解码器;初始化与目标解码器切换指令匹配的目标解码器,并采用新的目标解码器对视频流进行解码,并进行后续离屏渲染和分流显示操作,从而实现了解码器的切换。而且,在解码器切换之后,不需要重新创建第二窗口对应的视频播放视图,也不需要重新创建离屏表面,使得解码器切换的耗时较短,有效避免解码器切换后的花屏和卡顿现象。进一步地,通过响应于用户对解码参数的更新操作生成目标解码器切换指令,实现了一键切换解码器,通过监测到第二窗口对应的视频播放视图中的视频播放失败时,生成目标解码器切换指令,使得视频播放流畅、不卡顿,保证视频播放的实时性。
实施例四
图4是本发明实施例四提供的一种直播视频处理方法的流程图,在上述实施例的各可选实施方式的基础上进一步优化,具体增加了从第二窗口切换回第一窗口的步骤。如图4所示,具体包括以下步骤:
S410、响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上。
S420、响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图。
S430、销毁第一窗口对应的视频播放视图。
S440、在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
S410-S440与上述实施例中的S110-S140相同,此处不再赘述。
S450、响应于直播视频播放窗口从第二窗口切换到第一窗口的请求信息时,创建第一窗口对应的视频播放视图。
可选地,直播视频播放窗口从第二窗口切换至第一窗口的请求信息可以是响应于用户对直播视频处理装置的指定操作生成,例如,对直播视频处理装置执行返回操作、对第二窗口对应的直播视频播放视图的触发操作、最大化操作等。
在响应于直播视频播放窗口从第二窗口切换至第一窗口的请求信息时,再创建第一窗口对应的视频播放视图,创建方法详见实施例一中的相关描述,此处不再赘述。
S460、销毁第二窗口对应的视频播放视图。
S470、在第一窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中。返回执行S420。
可选地,在第一窗口对应的视频播放视图创建完成时,获取离屏表面上渲染的当前图像,并将当前图像以及离屏表面上实时渲染的后续图像依次复制到第一窗口对应的视频播放视图中,实现视频从离屏表面上分流显示到视频播放视图中。
可选地,调用开放图形库(Open Graphics Library,OpenGL),将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中。
本实施例中,通过响应于直播视频播放窗口从第二窗口切换到第一窗口的请求信息,创建第一窗口对应的视频播放视图;销毁第二窗口对应的视频播放视图;在第一窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中,由于视频流是渲染至离屏表面,使得目标解码器依赖于所述离屏表面,而不依赖于所述第二窗口,在销毁第二窗口时不会销毁所述目标解码器,从而在切换回第一窗口之后,无需重新创建解码器,也无需进行重新解码,直接将离屏表面上的视频分流显示至第一窗口对应的视频播放视图中,使得视频播放视图创建好后很快便显示视频,避免花屏和卡顿现象。
在上述实施例中,在将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中之后,还包括:目标解码器的切换操作。具体地,响应于目标解码器切换指令,确定与目标解码器切换指令匹配的目标解码器;初始化与目标解码器切换指令匹配的目标解码器,并采用与目标解码器切换指令匹配的目标解码器对直播视频流进行解码;将解码后的视频实时渲染至离屏表面上;将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中。本实施例对目标解码器的切换操作与上述实施例中对目标解码器的切换操作大致相同,不同之处在于本实施例是将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中,而非上述实施例中的第二窗口对应的视频播放视图。可见,对目标解码器的切换操作同时适用于通过第一窗口对应的视频播放视图进行直播的场景和通过第二窗口对应的视频播放视图进行直播的场景。
在上述各实施例中,使用EGL在视频播放视图中进行截图,即将视频播放视图中的内容保存为图片,其中,EGL是图形渲染API(如OpenGL ES)与本地平台窗口系统的一层接口,用于通过客户端API和本地窗口系统进行渲染,通过EGL能够提高截图效率。
实施例五
图5是本发明实施例五提供的一种直播视频处理装置的结构示意图,包括:渲染模块51、创建模块52、销毁模块53和分流模块54。
渲染模块51,用于响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上;
创建模块52,用于响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁模块53,用于销毁第一窗口对应的视频播放视图;
分流模块54,用于在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
本发明实施例中,通过响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上,从而在切换视频播放窗口之前,将视频预先渲染至离屏表面上;然后响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;销毁第一窗口对应的视频播放视图;并在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中,由于视频流是渲染至离屏表面,使得目标解码器依赖于所述离屏表面,而不依赖于所述第一窗口,在销毁第一窗口时不会销毁所述视频解码器,从而在切换到第二窗口后,无需重新创建解码器,也无需重新进行拉流,直接将离屏表面上的视频分流显示至第二窗口对应的视频播放视图中,使得视频播放视图创建好后很快便显示视频,避免花屏和卡顿现象,提高直播的实时性。
可选地,渲染模块51在响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上时,具体用于:响应于直播视频播放指令,拉取直播视频流、创建离屏表面并初始化目标解码器,目标解码器包括硬件解码器或者软件解码器;采用目标解码器对视直播频流进行解码;将解码后的视频实时渲染至离屏表面上。
可选地,该装置还包括确定模块,用于在通过渲染模块51初始化目标解码器之前,获取用户设置的解码参数或者系统配置的解码参数;根据用户设置的解码参数或者系统配置的解码参数,确定目标解码器。
可选地,目标解码器包括硬件解码器,渲染模块51在初始化目标解码器时,具体用于:引用离屏表面初始化硬件解码器。
可选地,该装置还包括切换模块,切换模块用于在将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中之后,响应于目标解码器切换指令,确定与目标解码器切换指令匹配的目标解码器;初始化与目标解码器切换指令匹配的目标解码器,并采用与目标解码器切换指令匹配的目标解码器对直播视频流进行解码;将解码后的视频实时渲染至离屏表面上;将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
可选地,该装置还包括显示模块,显示模块用于在将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中之后,响应于直播视频播放窗口从第二窗口切换到第一窗口的请求信息,创建第一窗口对应的视频播放视图;销毁第二窗口对应的视频播放视图;在第一窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第一窗口对应的视频播放视图中。
本发明实施例所提供的直播视频处理装置可执行本发明任意实施例所提供的直播视频处理方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种终端的结构示意图,如图6所示,该终端包括处理器60、存储器61、输入装置62和输出装置63;终端中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;终端中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的直播视频处理方法对应的程序指令/模块(例如,直播视频处理装置中的渲染模块51、创建模块52、销毁模块53和分流模块54)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的直播视频处理方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入,例如直播视频播放指令、解码参数、目标解码器切换指令、直播视频播放窗口从第一窗口切换至第二窗口的请求信息或者直播视频播放窗口从第二窗口切换到第一窗口的请求信息。输出装置63可包括显示屏等显示设备,用于显示视频播放视图中的直播视频。
实施例七
本发明实施例七还提供一种其上存储有计算机程序的计算机可读存储介质,计算机程序在由计算机处理器执行时用于执行一种直播视频处理方法,该方法包括:
响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上;
响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁第一窗口对应的视频播放视图;
在第二窗口对应的视频播放视图创建完成后,将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中。
当然,本发明实施例所提供的一种其上存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的直播视频处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述直播视频处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种直播视频处理方法,其特征在于,包括:
响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上,包括,响应于直播视频播放指令,拉取直播视频流、创建离屏表面并初始化目标解码器,所述目标解码器包括硬件解码器或者软件解码器;
响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁所述第一窗口对应的视频播放视图;
在所述第二窗口对应的视频播放视图创建完成后,将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中;
在将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中之后,还包括:
响应于目标解码器切换指令,确定与所述目标解码器切换指令匹配的目标解码器。
2.根据权利要求1所述的方法,其特征在于,所述响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上,还包括:
采用目标解码器对所述直播视频流进行解码;
将解码后的视频实时渲染至离屏表面上。
3.根据权利要求2所述的方法,其特征在于,在初始化目标解码器之前,还包括:
获取用户设置的解码参数或者系统配置的解码参数;
根据用户设置的解码参数或者系统配置的解码参数,确定目标解码器。
4.根据权利要求2所述的方法,其特征在于,所述目标解码器包括硬件解码器;
相应地,所述初始化目标解码器,包括:
引用离屏表面初始化硬件解码器。
5.根据权利要求2所述的方法,其特征在于,在将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中之后,还包括:
初始化与所述目标解码器切换指令匹配的目标解码器,并采用与目标解码器切换指令匹配的目标解码器对直播视频流进行解码;
将解码后的视频实时渲染至离屏表面上;
将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中。
6.根据权利要求1-5任一项所述的方法,其特征在于,在将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中之后,还包括:
响应于直播视频播放窗口从第二窗口切换到第一窗口的请求信息,创建第一窗口对应的视频播放视图;
销毁所述第二窗口对应的视频播放视图;
在所述第一窗口对应的视频播放视图创建完成后,将所述离屏表面上的视频分流显示到所述第一窗口对应的视频播放视图中。
7.一种直播视频处理装置,其特征在于,包括:
渲染模块,用于响应于直播视频播放指令,启动创建第一窗口对应的视频播放视图的操作,并将直播视频流实时渲染至离屏表面上;
创建模块,用于响应于直播视频播放窗口从第一窗口切换至第二窗口的请求信息,创建第二窗口对应的视频播放视图;
销毁模块,用于销毁所述第一窗口对应的视频播放视图;
分流模块,用于在所述第二窗口对应的视频播放视图创建完成后,将所述离屏表面上的视频分流显示到所述第二窗口对应的视频播放视图中;
渲染模块在响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上时,具体用于:响应于直播视频播放指令,拉取直播视频流、创建离屏表面并初始化目标解码器,所述目标解码器包括硬件解码器或者软件解码器;
切换模块,切换模块用于在将离屏表面上的视频分流显示到第二窗口对应的视频播放视图中之后,响应于目标解码器切换指令,确定与目标解码器切换指令匹配的目标解码器。
8.根据权利要求7所述的装置,其特征在于,渲染模块在响应于直播视频播放指令,将直播视频流实时渲染至离屏表面上时,具体用于:
响应于直播视频播放指令,拉取直播视频流、创建离屏表面并初始化目标解码器,所述目标解码器包括硬件解码器或者软件解码器;
采用目标解码器对所述直播视频流进行解码;
将解码后的视频实时渲染至离屏表面上。
9.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的直播视频处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的直播视频处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057231.0A CN110891193B (zh) | 2018-09-11 | 2018-09-11 | 直播视频处理方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057231.0A CN110891193B (zh) | 2018-09-11 | 2018-09-11 | 直播视频处理方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110891193A CN110891193A (zh) | 2020-03-17 |
CN110891193B true CN110891193B (zh) | 2022-05-20 |
Family
ID=69745527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811057231.0A Active CN110891193B (zh) | 2018-09-11 | 2018-09-11 | 直播视频处理方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110891193B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568688B (zh) * | 2020-04-29 | 2023-06-06 | RealMe重庆移动通信有限公司 | 一种视图切换方法、装置、电子设备和存储介质 |
CN112738525B (zh) * | 2020-12-11 | 2023-06-27 | 深圳万兴软件有限公司 | 视频处理方法、装置及计算机可读存储介质 |
CN113891135B (zh) * | 2021-03-08 | 2023-10-27 | 北京字跳网络技术有限公司 | 一种多媒体数据播放方法、装置、电子设备及存储介质 |
CN113766303B (zh) * | 2021-05-08 | 2023-04-28 | 北京字节跳动网络技术有限公司 | 多屏互动方法、装置、设备及存储介质 |
CN113395534A (zh) * | 2021-06-15 | 2021-09-14 | 杭州米络星科技(集团)有限公司 | 直播回放视频处理方法、装置、设备及存储介质 |
CN114040243B (zh) * | 2021-11-04 | 2023-08-04 | 上海哔哩哔哩科技有限公司 | 直播间视频播放方法及装置 |
CN113873316B (zh) * | 2021-11-04 | 2024-02-27 | 上海哔哩哔哩科技有限公司 | 直播间视频播放方法及装置 |
CN114222182B (zh) * | 2021-12-15 | 2024-02-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种视频播放方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210863A (zh) * | 2015-05-28 | 2016-12-07 | 因佛卡斯公司 | 在压缩视频流之间平滑转换的系统和方法 |
CN108282686A (zh) * | 2017-01-18 | 2018-07-13 | 广州市动景计算机科技有限公司 | 视频画面处理方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454447A (zh) * | 2016-10-11 | 2017-02-22 | 青岛海信电器股份有限公司 | 视频播放处理方法、装置及电视 |
CN107613362A (zh) * | 2017-10-20 | 2018-01-19 | 维沃移动通信有限公司 | 一种视频显示控制方法及移动终端 |
CN107888970A (zh) * | 2017-11-29 | 2018-04-06 | 天津聚飞创新科技有限公司 | 视频处理方法、装置、嵌入式设备及存储介质 |
CN108235096A (zh) * | 2018-01-18 | 2018-06-29 | 湖南快乐阳光互动娱乐传媒有限公司 | 移动终端硬解码智能切换软解码播放视频的方法 |
-
2018
- 2018-09-11 CN CN201811057231.0A patent/CN110891193B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210863A (zh) * | 2015-05-28 | 2016-12-07 | 因佛卡斯公司 | 在压缩视频流之间平滑转换的系统和方法 |
CN108282686A (zh) * | 2017-01-18 | 2018-07-13 | 广州市动景计算机科技有限公司 | 视频画面处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110891193A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110891193B (zh) | 直播视频处理方法、装置、终端及存储介质 | |
WO2021238913A1 (zh) | 直播数据的展示方法、装置、设备及存储介质 | |
CN110166810B (zh) | 视频渲染引擎切换方法、装置、设备及可读存储介质 | |
JP6499324B2 (ja) | ビデオを再生するための方法、クライアント及びコンピュータ記憶媒体 | |
US11341706B2 (en) | Virtual scene display method and apparatus, and storage medium | |
CN108509272B (zh) | 将gpu显存纹理拷贝到系统内存的方法、装置及电子设备 | |
US20180103296A1 (en) | Method and apparatus for video playing processing and television | |
CN107027068B (zh) | 渲染方法、解码方法、播放多媒体数据流的方法及装置 | |
CN109819268B (zh) | 视频直播中的直播间播放控制方法、装置、介质及设备 | |
CN110620954B (zh) | 用于硬解的视频处理方法、装置和存储介质 | |
CN110858910B (zh) | 直播视频的显示方法、装置、设备及存储介质 | |
CN110401866B (zh) | 直播视频的显示方法、装置、终端和存储介质 | |
CN109358941B (zh) | 一种控制方法及电子设备 | |
CN109862409A (zh) | 视频解码、播放方法、装置、系统、终端及存储介质 | |
CN111107415A (zh) | 一种直播间画中画播放方法、存储介质、电子设备及系统 | |
CN112631635B (zh) | 直播客户端更新方法、装置、电子设备及存储介质 | |
TWI719323B (zh) | 視圖切換方法和裝置以及計算設備 | |
US20240098362A1 (en) | Method, apparatus, device and storage medium for content capturing | |
CN109413507B (zh) | 弹幕库与直播间引用关系的处理方法、装置、终端和介质 | |
CN107979774B (zh) | 一种终端开机方法、终端以及存储介质 | |
CN113282268B (zh) | 音效配置方法和装置、存储介质及电子设备 | |
CN112019858B (zh) | 一种视频播放方法、装置、计算机设备和存储介质 | |
CN107888979B (zh) | 基于Linux电视的图像显示方法及装置 | |
CN108600654B (zh) | 视频播出方法及装置 | |
CN111078785A (zh) | 一种数据可视化展示的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |