CN115243092A - 视频播放方法、装置及存储介质 - Google Patents
视频播放方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115243092A CN115243092A CN202210769673.8A CN202210769673A CN115243092A CN 115243092 A CN115243092 A CN 115243092A CN 202210769673 A CN202210769673 A CN 202210769673A CN 115243092 A CN115243092 A CN 115243092A
- Authority
- CN
- China
- Prior art keywords
- video
- window
- page
- playing
- video stream
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000006835 compression Effects 0.000 claims abstract description 82
- 238000007906 compression Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000006378 damage Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 1
- 230000000007 visual effect Effects 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/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
-
- 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
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2743—Video hosting of uploaded data from client
-
- 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/4318—Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种视频播放方法、装置及存储介质。该方法包括:获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放。本申请解决了现有技术中的多个视频的播放流畅度低的技术问题。
Description
技术领域
本公开涉及视频处理技术领域,具体而言,涉及一种视频播放方法、装置及存储介质。
背景技术
目前,随着互联网的发展,终端设备的视频播放界面上,同时播放视频的数量也越来越多,但是受限于移动设备的图像处理性能、散热能力以及电池容量,导致现有技术中的多个视频的播放流畅度低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本公开至少部分实施例提供了一种视频播放方法、装置及存储介质,以至少解决现有技术中的多个视频的播放流畅度低的技术问题。
根据本公开其中一实施例,提供了一种视频播放方法,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,该方法包括:获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放。
可选地,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
可选地,该方法还包括:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
可选地,在基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果之后,该方法还包括:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
可选地,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
可选地,该方法还包括:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
可选地,在第一显示位置上对第一视频流进行播放包括:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
可选地,该方法还包括:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
可选地,从控件资源池中获取第一视频窗口对应的第一视频控件包括:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
可选地,该方法还包括:响应于第一页面被销毁,对控件资源池进行释放。
根据本公开其中一实施例,还提供了一种视频播放装置,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,该装置包括:布局参数获取模块,用于获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;确定模块,用于基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;视频流获取模块,用于从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;视频播放模块,用于在第一显示位置上对第一视频流进行播放。
根据本公开其中一实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,计算机程序被设置为被处理器运行时执行上述任一项中的视频播放方法。
根据本公开其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的视频播放方法。
在本公开至少部分实施例中,采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,实现多个视频同时播放的目的。第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是本公开实施例的一种视频播放方法的终端设备的硬件结构框图;
图2是根据本公开其中一实施例的视频播放方法的流程图;
图3是根据本公开其中一实施例的一种可选的视频播放方法的示意图;
图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源复用示意图;
图5是根据本公开其中一实施例的一种可选的视频订阅处理方法流程图;
图6是根据本公开其中一实施例的一种视频播放装置的结构框图;
图7是根据本公开实施例的一种电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了解决上述问题,现有技术提供了如下方案:第一种方案可以将多路视频压缩成一路视频,从而将多路视频播放问题降级为一路视频播放问题,可以有效降低带宽,简化终端处理逻辑;第二种方案可以是多路视频播放控制技术,可以有效控制终端视频播放总路数,从而减少带宽占用和终端处理数据量。
但是,将多路视频压缩成一路视频的方案,各路视频的独立性被弱化,客户端的定制化需求都需要服务器来定制完成;多路视频播放控制技术是基于终端的技术优化,现有方案只能粗略的对视频流订阅及取消订阅进行处理,但是对终端自身资源没有有效的优化管理,本地资源的频繁创建和回收,也会拖慢整个应用的响应。
根据本公开其中一实施例,提供了一种视频播放方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在终端设备、计算机终端或者类似的运算装置中执行。以运行在终端设备上为例,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD、游戏机等终端设备。图1是本公开实施例的一种视频播放方法的终端设备的硬件结构框图。如图1所示,终端设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述终端设备还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端设备的结构造成限定。例如,终端设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的视频播放方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频播放方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端设备的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备108中的输入可以来自多个人体学接口设备(Human InterfaceDevice,简称为HID)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
显示设备110可以例如平视显示器(HUD)、触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与终端设备的用户界面进行交互。在一些实施例中,上述终端设备具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
图2是根据本公开其中一实施例的视频播放方法的流程图,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,如图2所示,该方法包括如下步骤:
步骤S202:获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求。
上述的第一页面可以是终端设备的屏幕显示的视频播放页面,用户可以通过第一页面直接看到所需的视频内容,此处的终端设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、个人电脑、游戏机等设备,但不仅限于此。
上述的布局参数,可以是能够确定第一视频窗口在第一页面的展示数量的参数,例如,可以是2*2,还可以是3*3等,但不仅限于此,具体的布局参数,可根据用户的实际展示需求自行设定。
上述的第一视频窗口可以是第一页面中展示给用户观看的视频窗口,可以是多个,具体的窗口数量在本实施例中不做具体限定,用户可根据实际展示需求进行设定。
上述的展示需求,可以是第一页面中的第一视频窗口的分辨率、窗口尺寸、显示位置等,但不仅限于此。
在一种可选的实施例中,首先可以获取第一页面的布局参数。其中,第一页面可以是终端设备的屏幕显示的视频播放页面,布局参数可以是能够确定第一页面中第一视频窗口的展示需求的参数,展示需求可以是第一视频窗口的分辨率、窗口尺寸、显示位置等,但不仅限于此。
步骤S204:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置。
上述的第一视频质量可以是基于布局参数确定到的第一视频窗口对应的视频质量。其中,第一视频质量包括如下至少之一:分辨率(P,pixel)和帧率(FPS,Frame perSecond),分辨率可以是1080P、720P、360P;帧率可以是60FPS、30FPS、24FPS等,但不仅限于此。
上述的第一显示位置可以是能够表示第一视频窗口在第一页面上的位置。当有多个第一视频窗口时,每个第一视频窗口的第一显示位置都不同,例如,当某个第一视频窗口是播放优先级较高的视频窗口时,该第一视频窗口对应的第一显示位置可以是第一页面中的中心位置,当某个第一视频窗口是播放优先级较低的视频窗口时,该第一视频窗口对应的第一显示位置可以是第一页面中的边角位置,但不仅限于此。
在一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级确定和布局参数确定第一视频窗口对应的第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率,播放优先级可以是尺寸大的第一视频窗口的优先级高,尺寸小的第一视频窗口的优先级低。例如,当布局参数为2*2时,首先可以得到4个第一视频窗口,其次可以根据4个第一视频窗口的播放优先级,确定第一视频窗口的第一视频质量。当某个第一视频窗口的播放优先级高时,对应的第一视频质量就高,则对应的第一视频质量可以是1080P或者是60FPS;当某个第一视频窗口的播放优先级较低时,对应的第一视频质量就低,则对应的第一视频质量可以是360P或者是30FPS,但不仅限于此。
在另一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级和布局参数确定第一视频窗口对应的第一显示位置。例如,当某个第一视频的播放优先级较高时,该第一视频窗口对应的第一显示位置可以是第一页面的中心位置;当某个第一视频窗口的播放优先级较低时,该第一视频窗口对应的第一显示位置可以是第一页面的边角位置,但不仅限于此。
在又一种可选的实施例中,当获取到布局参数后,可以基于第一视频窗口的播放优先级和布局参数确定第一视频窗口对应的第一视频质量和第一显示位置。例如,当布局参数为2*2时,首先可以确定4个第一视频窗口,其次可以根据4个第一视频窗口的播放优先级,确定每个第一视频窗口的第一视频质量和第一显示位置,当某个第一视频窗口的播放优先级较高时,可以确定该视频窗口的第一视频质量为1080P或者60FPS,以及该第一视频窗口的第一显示位置可以是第一页面中的中心位置,但不仅限于此,具体的质量设置和位置设置可根据用户需求自行设定。
需要说明的是,在本公开实施例中,不仅限于根据第一视频窗口的播放优先级和布局参数确定第一视频质量和第一显示位置,还可以根据第一视频窗口的重要程度和布局参数确定第一视频窗口对应的第一视频质量和第一显示位置,在本实施例中,以第一视频窗口的播放优先级和布局参数为例进行说明。
步骤S206:从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到。
上述的服务器,可以是任意一种能够存储其他客户端上传的原始视频流的服务器,例如,可以是云端服务器,但不仅限于此。
上述的压缩参数可以基于第一视频质量得到,此处的压缩参数可以是压缩率,视频质量越高,则压缩率越低;视频质量越低,则压缩率越高,从而在减小传输带宽的同时,减少信息丢失。具体的,还可以提前设置好不同第一视频质量与压缩参数的对应关系,从而可以基于该对应关系确定对应的压缩参数,但不仅限于此,还可以以其他方式实现。
上述的原始视频流可以是用户上传至服务器,且未进行压缩的视频流,例如可以是音乐视频(musicvideo,MV),也可是网络教学课程等,但不仅限于此。
在一种可选的实施例中,当确定第一视频窗口对应的第一视频质量后,首先可以根据第一视频质量确定第一视频质量对应的压缩参数,其次终端设备可以发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,按照对应的压缩参数对每个原始视频流进行压缩,最后,服务器将压缩得到的每个原始视频流对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第一视频流;当确定第一视频窗口对应的第一视频质量后,首先可以根据第一视频质量确定第一视频质量对应的压缩参数,其次终端设备可以发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,可以在存储的多个第一视频流中找到与终端设备发送的压缩参数相同的第一视频流,并将与压缩参数对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
在另一种可选的实施例中,当确定第一视频窗口对应的第一视频质量后,终端设备可以发送包含有第一视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第一视频质量得到对应的压缩参数,其次可以根据对应的压缩参数对原始视频流进行压缩,得到对应的第一视频流,然后服务器将原始视频流对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
在又一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第一视频流;当确定第一视频窗口对应的第一视频质量后,终端设备可以发送包含有第一视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第一视频质量得到对应的压缩参数,其次可以根据对应的压缩参数找到与终端设备发送的压缩参数相同的第一视频流,并将与压缩参数对应的第一视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第一视频质量对应的第一视频流。
步骤S208:在第一显示位置上对第一视频流进行播放。
上述的第一显示位置可以是第一视频窗口在第一页面中的具体位置,具体的,第一显示位置可以用相对于第一页面原点的坐标表示。其中,第一显示位置与布局参数和视频窗口的播放优先级对应。
在一种可选的实施例中,当通过服务器获取到第一视频流后,终端设备可以在第一页面中的第一位置上对第一视频流进行播放。
在另一种可选的实施例中,在获取到第一视频流后,终端设备可以根据第一视频窗口的播放优先级和布局参数得到第一视频窗口对应的第一显示位置,然后可以在第一显示位置上对第一视频流进行播放。
在另一种可选的实施例中,在获取到每个第一视频窗口对应的第一视频流后,终端设备通过从控件资源池获取到的每个第一视频窗口对应的至少一个或多个视频控件,对解码后的每个第一窗口对应的第一视频流进行播放,例如,可以通过一个可实现资源复用的列表控件(Recycler View)来对第一视频流进行播放。
在本公开至少部分实施例中,采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
可选地,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
上述的播放优先级能够表示多个第一视频窗口在第一页面中的播放顺序。
在一种可选的实施例中,首先可以获取多个第一视频窗口在第一页面的播放优先级。
在另一种可选的实施例中,可以基于布局参数,确定多个第一视频窗口在第一页面的多个第一显示位置。例如,当布局参数为2*2时,可以基于布局参数确定多个第一视频窗口在第一页面中的多个第一显示位置。具体的,还可以根据第一视频窗口的播放优先级和布局参数确定第一显示位置。例如,当某个第一视频窗口的播放优先级较高时,对应的第一显示位置可以是第一页面中的中心位置等,但不仅限于此。
在另一种可选的实施例中,可以基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
在另一种可选的实施例中,可以提前设置好播放优先级和第一显示位置与第一视频质量的对应关系,例如,可以是播放优先级越高,第一显示位置越靠近第一页面的中心位置,则第一视频质量越高。
在又一种可选的实施例中,当某个第一视频窗口的播放优先级较高时,对应的第一显示位置可以在第一页面的中心位置,则对应的第一视频质量可以为1080P或者60FPS;当某个第一视频窗口的播放优先级较低时,对应的第一显示位置可以在第一页面的边角位置,则对应的第一视频质量可以是360P或者是30FPS,但不仅限于此。
可选地,该方法还包括:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
上述的当前网络状态可以包括但不限于:当前网络状态良好,当前网络状态一般,当前网络状态较差等情况。
上述的处理性能数据可以包括但不限于:对原始视频流进行压缩的处理性能数据。
上述的第二视频窗口可以是基于调整后的布局参数得到的视频窗口。
上述的第二显示位置可以是基于调整后的布局参数以及第二视频窗口在第一页面中的播放优先级确定的第二视频窗口在第一页面中的显示位置,可以是多个,但不仅限于此。具体的,第二显示位置与布局参数对应。例如,当调整后的布局参数为2*2时,第二显示位置可以有多个,但不仅限于此。
上述的第二视频流可以是由服务器通过第二视频质量对应的压缩参数对原始视频流进行压缩得到的,其中,第二视频质量可以是基于调整后的布局参数确定到的第二视频窗口对应的视频质量,第二视频质量包括如下至少之一:分辨率和帧率。
在一种可选的实施例中,首先可以获取终端设备当前的网络状态以及处理器的性能处理数据,其次可以基于当前网络状态数据和性能处理数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局。
在另一种可选的实施例中,若终端设备的当前网络状态为网络状态良好,可以根据网络状态和处理性能数据,将第一页面的视频窗口布局由原来的2*2个调整为3*3个,若终端设备的当前网络状态为一般,则可以根据网络状态和处理性能数据,将第一页面的视频窗口布局参数由原来的3*3个调整为2*2个,但不仅限于此。其中,因为第二视频窗口只是通过对第一视频窗口的布局进行调整得到的,并没有改变第一视频窗口的播放内容,因此,第二视频窗口与第一视频窗口包含相同的视频播放内容。
在另一种可选的实施例中,在得到调整结果后,可以基于调整后的布局参数确定第二视频窗口在第一页面中的第二显示位置。例如,当调整后的布局参数为2*2时,可以得到第二视频窗口在第一页面中的多个第二显示位置。
在另一种可选的实施例中,当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,进而可以得到第二视频质量对应的压缩参数,其次终端设备可以发送带有对应压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,按照对应的压缩参数对每个原始视频流进行压缩,最后,服务器将压缩得到的每个原始视频流对应的第二视频流发送给终端设备,终端设备接受服务器发送的压缩后的每个第二视频质量对应的第二视频流。
在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第二视频流;当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,进而可以得到第二视频质量对应的压缩参数,其次终端设备可以发送带有压缩参数的视频流获取请求给到服务器,服务器接收到终端设备的视频流获取请求后,首先可以根据压缩参数在存储的多个第二视频流中找到与终端设备发送的压缩参数相同的第二视频流,并将与压缩参数对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
在另一种可选的实施例中,当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,终端设备可以发送包含有第二视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第二视频质量得到对应的压缩参数,其次可以根据对应的压缩参数对原始视频流进行压缩,得到对应的第二视频流,然后服务器将原始视频流对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
在另一种可选的实施例中,服务器可以提前按照不同的压缩参数对原始视频流进行压缩并存储在服务器中,即可以得到按照不同压缩参数压缩后的多个第二视频流;当确定第二显示位置后,首先可以确定出第二视频窗口对应的第二视频质量,终端设备可以发送包含有第二视频质量的视频流获取请求给到服务器,服务器接收到视频流获取请求后,首先可以根据第二视频质量得到对应的压缩参数,其次可以根据对应的压缩参数找到与终端设备发送的压缩参数相同的第二视频流,并将与压缩参数对应的第二视频流发送给终端设备,终端设备接收服务器发送的压缩后的每个第二视频质量对应的第二视频流。
在又一种可选的实施例中,终端设备接收到服务器发送的压缩后的第二视频流后,在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
可选地,在基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果之后,该方法还包括:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
上述的目标视频窗口可以是随着用户在第一页面中的第二操作,将从可见状态变为不可见状态的视频窗口。
需要说明的是,用户在第一页面中的第二操作,可以是点击操作,也可以是滑动操作,还可以是长按操作,但不仅限于此。在本实施例中,以滑动操作为例进行说明。
需要说明的是,用户在第一页面中的滑动操作,可以是用户使用鼠标对第一页面进行滑动操作,也可以是用户使用电容笔对第一页面进行滑动操作,还可以是用户使用手指对第一页面进行滑动操作,但不仅限于此。
在一种可选的实施例中,随着用户在第一页面中的滑动操作,第一视频窗口会从可见状态变为不可见状态,即可以确定目标视频窗口,其中,目标视频窗口的状态将从可见状态变为不见状态。
在另一种可选的实施例中,当确定目标视频窗口后,因为目标视频窗口将从屏幕的可视区域内移动到可视区域外,所以终端设备可以停止从服务器获取目标视频窗口的对应的视频流,具体的,终端设备可以停止向服务器发送视频流获取请求。
在又一种可选的实施例中,响应于用户作用在第一页面中的滑动操作,终端设备控制多个第一视频窗口,从屏幕的可视区域内移动到屏幕的可视区域外,则可以确定从屏幕的可视区域内移动到屏幕的可视区域外的视频窗口为目标视频窗口。例如,如图3所示,图3是根据本公开其中一实施例的一种可选的视频播放方法的示意图,其中,最大的方框代表屏幕的可视区域,假设某个时刻用户可以在可视区域中看到视频3至视频6,此时,视频7和视频8并未显示在可视区域中,也即,视频7和视频8位于可视区域之外。响应于用户在该屏幕上执行的从右到左的滑动操作,可以控制整个第一页面向左滑动,使得第一页面中的部分视频窗口从可视区域内移动至可视区域外,也即,上述视频窗口不再显示在可视区域中,同时,使得第一页面中的另外部分视频窗口从可视区域外移动至可视区域内,也即,上述视频窗口显示在可视区域中。如图3所示,此时,可视区域可以显示视频3和视频4的部分,视频5和视频6,以及视频7和视频8的一部分。响应于用户在该屏幕上执行的从右到左的滑动操作,此时第一页面一并滑动,视频3和视频4慢慢移出可视区域,可以确定视频3和视频4为目标视频窗口。视频7和视频8慢慢移入可视区域,此时,视频3和视频4将从部分可见变为完全不可见,视频5和视频6将由完全可见变为部分可见,而视频7和视频8从不可见变为完全可见。
可选地,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
在一种可选的实施例中,当服务器按照终端设备发送的对应压缩参数对原始视频流进行压缩后,会存储压缩后得到的视频流,同时,服务器还可以存储按照不同压缩参数对同一个原始视频流压缩后得到的视频流。
在另一种可选的实施例中,服务器还可以提前按照不同的压缩参数对原始视频流进行压缩,并将压缩后的视频流存储在服务器中。
可选地,该方法还包括:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
上述的第一操作可以是点击操作,也可以是滑动操作,还可以是长按操作,但不仅限于此。在本实施例中,以点击操作为例进行说明。
需要说明的是,用户在第一页面中的点击操作,可以是用户使用鼠标对第一页面进行点击操作,也可以是用户使用电容笔对第一页面进行点击操作,还可以是用户使用手指对第一页面进行点击操作,但不仅限于此。
上述的第二页面为视频缓存页面,用于缓存多个第三视频窗口,其中,随着用户的滑动操作,多个第三视频窗口会从屏幕的可视区域外移动到可视区域内。需要说明的是,可视区域可以是终端设备的屏幕中,用户能够直接看到所需内容的区域。
上述的第三视频窗口可以是随着用户的滑动操作,将要继续在第一页面进行播放的视频窗口,可以是多个,具体的视频窗口数量在本实施例中不做具体限定,用户可根据实际展示需求进行设定。
上述的比对结果,可以是至少一个第三视频窗口比至少一个第一视频窗口更早移动到可视区域外,也可以是至少一个第一视频窗口比至少一个第三视频窗口更早移动到可视区域外,但不仅限于此。
在一种可选的实施例中,响应于用户作用在第一页面中的点击操作(即第一操作),获取包含多个第三视频窗口的缓存页面(即第二页面),当用户对第一页面进行滑动操作(即第二操作)后,第二页面中的至少一个第三视频窗口会由屏幕的可视区域外移动到可视区域内,将至少一个第三视频窗口与至少一个第一视频窗口进行比对,若比对结果为至少一个第一窗口比至少一个第三视频窗口更早移动到可视区域外,则终端设备可以发送包含对应压缩参数的第三视频流获取请求给到服务器,服务器基于对应的压缩参数对至少一个第三视频窗口对应的原始视频流进行压缩,最后服务器将压缩得到的至少一个视频流发送给终端设备;若比对结果为至少一个第三视频窗口比至少一个第一视频窗口更早移动到可视区域外,则确定不从服务器获取每个第三视频窗口对应的视频流。
可选地,在第一显示位置上对第一视频流进行播放包括:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
上述的控件资源池,可以是任何一种用户提前设置好的,位于终端设备后台的,用于存储未使用的视频控件的资源池,在本实施例中,以对象池(video pool)为例进行说明,设置资源池可以提高终端设备对用户操作的响应速度。
上述的视频控件,可以是任何一个或多个用于播放视频的播放器控件,其中每个第一视频窗口都有对应的一个或多个的第一视频控件,例如可以是表面视图(SurfaceView)控件、纹理视图(Texture View)控件等,但不仅限于此,其中,Surface View控件和Texture View控件是进行视频播放的基本控件,可以通过项目绑定回调方法(on BindView Holder())确定每个第一视频窗口对应的第一视频控件,即将每个第一视频窗口与对应的第一视频控件进行绑定。
在一种可选的实施例中,图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源复用示意图,如图4所示,当用户选择至少一个第一视频窗口后,终端设备控制至少一个第一视频窗口移动到屏幕的可视区域内,在至少一个第一视频窗口移动到屏幕的可视区域内后,通过on Bind View Holder()从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的视频控件,如图4所示,当前屏幕的可视区域中有4个第一视频窗口,则4个第一视频窗口对应的视频控件数量最少有4个,还可以有8个、12个等,又例如,当可视区域中显示有9个第一视频窗口时,则9个第一视频窗口对应的视频控件数量最少有9个,还可以有18个等,具体视频控件数量可根据用户需求自行设定,在本实施例中不做具体限定。
在另一种可选的实施例中,当用户选择至少一个第一视频窗口后,终端设备控制至少一个第一视频窗口移动到屏幕的可视区域内的同时,通过on Bind View Holder()从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的视频控件。在获取到第一视频控件后,终端设备可以在第一显示位置上利用第一视频控件对第一视频流进行播放。
可选地,该方法还包括:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
上述的第二操作可以是用户在第一页面中的滑动操作。
在一种可选的实施例中,响应于用户在第一页面中对第一视频的滑动操作,可以获取到第一视频窗口的窗口状态。当第一视频窗口的窗口状态由可见状态变为不可见状态时,终端设备可以将第一视频窗口对应的第一视频控件存储至控件资源池。
可选地,从控件资源池中获取第一视频窗口对应的第一视频控件包括:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
在一种可选的实施例中,当要从控件资源池中获取至少一个第一视频窗口中每个第一视频窗口对应的第一视频控件时,首先,需要确认位于后台的控件资源池中是否存在能够对视频流进行播放的视频控件,若响应于确认结果为控件资源池不为空,则通过onBind View Holder()从控件资源池中获取每个第一视频窗口对应的第一视频控件,若响应于确认结果为控件资源池为空,则创建每个第一视频窗口对应的第一视频控件,并存储在控件资源池中,以便后续可以直接从控件资源池中获取对应的第一视频控件,而不是每次都重新创建,本步骤可以减少视频控件的频繁创建与销毁,减少视频播放卡顿的问题。
可选地,该方法还包括:响应于第一页面被销毁,对控件资源池进行释放。
在一种可选的实施例中,当第一页面被用户关闭后,响应于关闭操作,终端设备对后台的控件资源池进行释放,例如,可以通过项目回收回调方法on Recycler View Holder()对每个第一视频窗口与对应的第一视频控件解除绑定,即对控件资源池进行释放。
通过本公开实施例的视频播放方法,可以实现:
1、终端根据展示需求,按需订阅响应质量的视频流,减少客户端资源消耗,提高视多路视频播放流畅性。
2、服务端根据终端的订阅情况,对视频进行压缩处理,无需处理终端整个页面的定制化问题。
3、终端对视频播放订阅管理,减少单位时间需要处理的数据量,构建资源复用机制,减少控件资源的频繁销毁与构建,增强视频瀑布流切换的流畅性。
下面结合图3至图5对本公开实施例做进一步的说明。
图5是根据本公开其中一实施例的一种可选的视频订阅处理方法流程图,如图5所示,该方法包括以下步骤:
步骤S501:客户端A上传视频流至服务端;
步骤S502:服务端的接收模块接收到视频流后,将视频流发送给服务端的订阅管理模块;
步骤S503:服务端的订阅管理模块基于步骤S505中的客户端B的订阅管理模块发起的订阅请求,将带有订阅请求的视频流发送给服务端的视频压缩模块;
步骤S504:服务端的视频压缩模块接收到视频流后,基于订阅请求对视频流进行压缩,并将压缩后的视频流发送给客户端B的订阅管理模块;
步骤S505:客户端B的订阅管理模块对服务端的订阅管理模块发出订阅请求;
步骤S506:客户端B的用户滚动视频列表;
步骤S507:客户端B的列表项目由可见变为不可见,进入步骤S508,并同时向步骤S505中的客户端B的订阅管理模块获取指定质量的视频流,则客户端B的订阅管理模块将服务端的视频流压缩模块发送的压缩后的视频流返回给列表项目;
步骤S508:关联视频流到视频控件;
步骤S509:列表项目由可见变为不可见,发送释放视频控件的请求给到客户端B的视频控件资源池模块,以及发送取消订阅的请求给到客户端B的订阅管理模块,同时,随着客户端B的用户滚动视频列表,返回步骤S507;
步骤S510:客户端B的视频控件资源池模块向步骤S507发送获取视频控件的请求。
如图5所示,客户端A正在发送视频流,服务端收到视频流后,不直接进行处理。客户端B用户正在滚动视频列表,需要展示A用户视频流的Item位置将由不可见变为可见,客户端B则发起指定视频质量订阅请求,服务端收到订阅请求后,按需对视频流进行压缩,并向客户端B进行推送视频流。客户端B收到推流后,从资源池中获取播放控件,并关联视频流,绑定到Item开始展示。当Item由可见变为不可见时则,取消订阅,回收视频控件到对象池。
其中,该视频处理方法包括服务端(Server)视频压缩处理、客户机程序(Client)本地订阅优化及资源复用以及资源释放方案实现。
Server视频压缩处理包括以下内容:
服务器支持对上传的视频流进行多质量梯度处理,以便用户可以根据自身需求订阅对应质量的视频资源。当然,服务器可以根据具体视频的订阅情况只处理某一个或几个质量的视频。
当用户订阅情况发生变化后,推送的视频流质量也进行相应调整。
Client本地订阅优化及资源复用包括以下内容:
Client需要动态的对视频资源进行订阅和取消订阅,以及要实时调整已订阅视频质量。对于安卓(Android)客户端来说,播放视频控件都是基于Surface View和TextureView的控件进行开发,视频对方控件对系统资源的消耗很大,为了减少构建及销毁对应用程序(application,App)的影响,本案使用Video Pool对象池对视频控件进行管理,以提高响应速度,主要包括以下步骤:
步骤S1,根据本地设备图形处理性能以当前网络状况,评估当前可以支持展示视频的最大量。动态调整页面布局参数,比如每页展示1个视频、2X2个视频,或者3X3宫格视频。
步骤S2,客户端维护一个订阅管理器,对订阅状态进行维护,切换到新页面后,与原有订阅关系进行比对计算,对未订阅的视频流进行订阅操作,对冗余视频流进行取消订阅操作。
步骤S3,每一个可见Item需展示视频的位置,从视频播放控件资源池中,获取视频播放控件,缓存列表为空则新建一个,不为空则从缓存列表中取一个绑定到当前视图,并通过订阅管理器去订阅要展示的视频流
步骤S4,视频流回来后,通过解码操作,进行视频播放
步骤S5,用户进行页面操作,比如页面滚动或者退会桌面操作,则对不可见视频播放控件进行资源释放,将资源控件回收到视频控件资源池。
步骤S6,如果整个视频瀑布流页面销毁,则对资源池进行释放。
图4是根据本公开其中一实施例的一种可选的客户端订阅优化及资源服用示意图,如图4所示,黑色方框为客户端屏幕,Video3、Video4、Video5、Video6是当前屏幕展示的视频窗口,当前用户操作手势是由右向左滑动,可以预见的是继续滑动下去,Video3、Video4将由可见变为不可见,Video7、Video8将由不可见变为可见,因此需要回收Video3、Video4的视频播放控件,放到视频播放控件资源池中;对于Video7、Video8则需要从资源池中获取到视频播放控件,绑定到窗口,订阅该位置要展示的视频流,并设置视频播放控件。
资源释放方案实现包括以下内容:
资源回收方案涉到对资源回收时机的控制、资源与新界面的绑定时机以及缓冲控件大小设置。如果使用Recycler View实现视频瀑布流,则可以通过on Bind View Holder()使视频控件与界面进行绑定,进行订阅计数;然后再通过on Recycler View Holder()解除绑定。因为列表控件具有初始缓存机制,所以需要对原始缓存进行调校,否则会影响交互流畅性,一般要求缓存至少两个页面,也即如果屏幕一页展示2*2个视频流,加上缓存的页面至少要维护12个视频画面,这个负荷也比较重,因此可以进一步剥离视频控件,在列表Item不可见时,去回收Video控件,在Item可见时去绑定Video控件。这样处理后,同样是2*2页面,只需维护6个视频画面。
图3是根据本公开其中一实施例的一种可选的资源释放方案示意图,如图3所示,为了保持列表控件的滚动流畅性,至少要缓存前面一页和后面一页,加上当前页,至少要加载3个页面。如果一个页面有4个视频小窗口,则3个页面共有12个视频小窗口,需要12个视频播放控件。利用视频控件对象池,直接根据小窗口可见性进行控件获取和回收,用户在某一时刻最多可见小窗口数量是6个。
本公开实施例的有益效果包括以下内容:
1、多分辨率压缩,服务端无需进行定制化多路合并处理,只需要对每一路视频进行压缩处理;
2、多分辨率多路视频动态订阅管理,开发过程中可以根据具体展示需求进行不同质量视频订阅,减少非必要高质量视频的订阅及处理。
3、视频播放控件池化管理,视频播放控件是很占用系统资源的控件,频繁的创建及销毁会导致系统不断的被垃圾回收机制干预,导致卡顿问题。
4、减轻了客户端的压力,减少了视频流量,节省了系统带宽。结合移动端实际,减少重量级资源的频繁创建和会,从而提升整体播放性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
在本实施例中还提供了一种视频播放装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”、“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本公开其中一实施例的一种视频播放装置的结构框图,通过终端设备的屏幕提供一第一页面,第一页面包含有多个第一视频窗口,如图6所示,该装置包括:布局参数获取模块60,用于获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;第一确定模块62,用于基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;视频流获取模块64,用于从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;第一视频播放模块66,用于在第一显示位置上对第一视频流进行播放。
可选地,第一确定模块包括:获取单元,用于获取第一视频窗口的播放优先级;第一确定单元,用于基于布局参数,确定第一显示位置;第二确定单元,用于确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
可选地,该装置还包括:获取模块,用于获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;调整模块,用于基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;第二确定模块,用于确定第二视频窗口在第一页面的第二显示位置;第二视频播放模块,用于在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
可选地,调整模块包括:确定单元,用于确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;终止单元,用于停止从服务器获取目标视频窗口对应的目标视频流。
可选地,视频流获取模块用于从服务器获取第一视频质量对应的第一视频流,其中,服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
可选地,该装置还包括:页面获取模块,用于响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;比对模块,用于将第一视频窗口与第三视频窗口进行比对,得到比对结果;第三确定模块,用于基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
可选地,第一视频播放模块包括:获取单元,用于从控件资源池中获取第一视频窗口对应的第一视频控件;播放单元,用于在第一显示位置上利用第一视频控件对第一视频流进行播放。
可选地,该装置还包括:窗口状态获取模块,用于响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;存储模块,用于响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
可选地,第一视频播放模块中的获取单元包括:确定子单元,用于确定控件资源池是否为空;获取子单元,用于响应于控件资源池不为空,则从控件资源池获取第一视频控件;创建子单元,用于响应于控件资源池为空,则创建第一视频控件。
可选地,该装置还包括:释放模块,用于响应于第一页面被销毁,对控件资源池进行释放。
需要说明的是,上述各个单元、模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述单元、模块均位于同一处理器中;或者,上述各个单元、模块以任意组合的形式分别位于不同的处理器中。
本公开的实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于终端设备群中的任意一个终端设备中。
可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;
S2,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;
S3,从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;
S4,在第一显示位置上对第一视频流进行播放。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一页面被销毁,对控件资源池进行释放。
在该实施例的非易失性存储介质中,提供了一种视频播放方法的技术方案。采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本申请的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本公开实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开实施例的程序产品不限于此,在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本公开的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;
S2,基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;
S3,从服务器获取第一视频质量对应的第一视频流,其中,第一视频流由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;
S4,在第一显示位置上对第一视频流进行播放。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,包括:获取第一视频窗口的播放优先级;基于布局参数,确定第一显示位置;基于播放优先级和第一显示位置,确定第一视频质量,其中,第一视频质量包括如下至少之一:分辨率和帧率。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:获取终端设备的当前网络状态,以及终端设备中处理器的处理性能数据;基于当前网络状态和处理性能数据,对第一页面的布局参数进行调整,得到调整结果,其中,调整结果用于表征第一页面包含的至少一个第二视频窗口的布局;确定第二视频窗口在第一页面的第二显示位置;在第二显示位置上对第二视频窗口对应的第二视频流进行播放。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定第一视频窗口中的目标视频窗口,其中,目标视频窗口的窗口状态从可见状态变为不可见状态;停止从服务器获取目标视频窗口对应的目标视频流。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于在第一页面中的第一操作,获取第一操作对应的第二页面,其中,第二页面中包含有多个第三视频窗口;将第一视频窗口与第三视频窗口进行比对,得到比对结果;基于比对结果确定是否从服务器获取第三视频窗口对应的第三视频流。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:从控件资源池中获取第一视频窗口对应的第一视频控件;在第一显示位置上利用第一视频控件对第一视频流进行播放。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应在第一页面中的第二操作,获取第一视频窗口的窗口状态;响应于窗口状态从可见状态变为不可见状态,将第一视频窗口对应的第一视频控件存储至控件资源池。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定控件资源池是否为空;响应于控件资源池不为空,则从控件资源池获取第一视频控件;响应于控件资源池为空,则创建第一视频控件。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一页面被销毁,对控件资源池进行释放。
在该实施例的电子装置中,提供了一种视频播放方法的技术方案。采用获取第一页面的布局参数,其中,布局参数用于确定第一视频窗口对应的展示需求;基于布局参数,确定第一视频窗口对应的第一视频质量和第一显示位置,其中,第一显示位置用于表征第一视频窗口在第一页面上的位置;从服务器获取第一视频质量对应的第一视频流,其中,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到;在第一显示位置上对第一视频流进行播放的方式,容易注意到的是,第一视频流是由服务器通过第一视频质量对应的压缩参数对原始视频流进行压缩得到的,达到了保证视频质量的同时,可以快速获取每个第一视频流的目的,从而实现了提高多个视频播放流畅度的技术效果,进而解决了现有技术中的多个视频的播放流畅度低的技术问题。
图7是根据本公开实施例的一种电子装置的示意图。如图7所示,电子装置700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子装置700以通用计算设备的形式表现。电子装置700的组件可以包括但不限于:上述至少一个处理器710、上述至少一个存储器720、连接不同系统组件(包括存储器720和处理器710)的总线730和显示器740。
其中,上述存储器720存储有程序代码,所述程序代码可以被处理器710执行,使得处理器710执行本申请实施例的上述方法部分中描述的根据本公开各种示例性实施方式的步骤。
存储器720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
在一些实例中,存储器720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子装置700。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器710或者使用多种总线结构中的任意总线结构的局域总线。
显示器740可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子装置700的用户界面进行交互。
可选地,电子装置700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置700交互的设备通信,和/或与使得该电子装置700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子装置700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器760通过总线730与电子装置700的其它模块通信。应当明白,尽管图7中未示出,可以结合电子装置700使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
上述电子装置700还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(I/O接口)、网络接口、电源和/或相机。
本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置700还可包括比图7中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器720可用于存储计算机程序及对应的数据,如本公开实施例中的视频播放方法对应的计算机程序及对应的数据。处理器710通过运行存储在存储器720内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频播放方法。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
Claims (13)
1.一种视频播放方法,其特征在于,通过终端设备的屏幕提供一第一页面,所述第一页面包含有多个第一视频窗口,所述方法包括:
获取所述第一页面的布局参数,其中,所述布局参数用于确定所述第一视频窗口对应的展示需求;
基于所述布局参数,确定所述第一视频窗口对应的第一视频质量和第一显示位置,其中,所述第一显示位置用于表征所述第一视频窗口在所述第一页面上的位置;
从服务器获取所述第一视频质量对应的第一视频流,其中,所述第一视频流由所述服务器通过所述第一视频质量对应的压缩参数对原始视频流进行压缩得到;
在所述第一显示位置上对所述第一视频流进行播放。
2.根据权利要求1所述的视频播放方法,其特征在于,基于所述布局参数,确定所述第一视频窗口对应的第一视频质量和第一显示位置,包括:
获取所述第一视频窗口的播放优先级;
基于所述布局参数,确定所述第一显示位置;
基于所述播放优先级和所述第一显示位置,确定所述第一视频质量,其中,所述第一视频质量包括如下至少之一:分辨率和帧率。
3.根据权利要求1所述的视频播放方法,其特征在于,所述方法还包括:
获取所述终端设备的当前网络状态,以及所述终端设备中处理器的处理性能数据;
基于所述当前网络状态和所述处理性能数据,对所述第一页面的布局参数进行调整,得到调整结果,其中,所述调整结果用于表征所述第一页面包含的至少一个第二视频窗口的布局;
确定所述第二视频窗口在所述第一页面的第二显示位置;
在所述第二显示位置上对所述第二视频窗口对应的第二视频流进行播放。
4.根据权利要求3所述的视频播放方法,其特征在于,在基于所述当前网络状态和所述处理性能数据,对所述第一页面的布局参数进行调整,得到调整结果之后,所述方法还包括:
确定所述第一视频窗口中的目标视频窗口,其中,所述目标视频窗口的窗口状态从可见状态变为不可见状态;
停止从所述服务器获取所述目标视频窗口对应的目标视频流。
5.根据权利要求1所述的视频播放方法,其特征在于,所述服务器中存储有按照不同压缩参数对同一个原始视频流进行压缩得到的视频流。
6.根据权利要求1所述的视频播放方法,其特征在于,所述方法还包括:
响应于在所述第一页面中的第一操作,获取所述第一操作对应的第二页面,其中,所述第二页面中包含有多个第三视频窗口;
将所述第一视频窗口与所述第三视频窗口进行比对,得到比对结果;
基于所述比对结果确定是否从所述服务器获取所述第三视频窗口对应的第三视频流。
7.根据权利要求1所述的视频播放方法,其特征在于,在所述第一显示位置上对所述第一视频流进行播放包括:
从控件资源池中获取所述第一视频窗口对应的第一视频控件;
在所述第一显示位置上利用所述第一视频控件对所述第一视频流进行播放。
8.根据权利要求7所述的视频播放方法,其特征在于,所述视频播放方法还包括:
响应在所述第一页面中的第二操作,获取所述第一视频窗口的窗口状态;
响应于所述窗口状态从可见状态变为不可见状态,将所述第一视频窗口对应的第一视频控件存储至所述控件资源池。
9.根据权利要求7所述的视频播放方法,其特征在于,从所述控件资源池中获取所述第一视频窗口对应的第一视频控件包括:
确定所述控件资源池是否为空;
响应于所述控件资源池不为空,则从所述控件资源池获取所述第一视频控件;
响应于所述控件资源池为空,则创建所述第一视频控件。
10.根据权利要求7所述的视频播放方法,其特征在于,所述方法还包括:
响应于所述第一页面被销毁,对所述控件资源池进行释放。
11.一种视频播放装置,其特征在于,通过终端设备的屏幕提供一第一页面,所述第一页面包含有多个第一视频窗口,所述装置包括:
布局参数获取模块,用于获取所述第一页面的布局参数,其中,所述布局参数用于确定所述第一视频窗口对应的展示需求;
确定模块,用于基于所述布局参数,确定所述第一视频窗口对应的第一视频质量和第一显示位置,其中,所述第一显示位置用于表征所述第一视频窗口在所述第一页面上的位置;
视频流获取模块,用于从服务器获取所述第一视频质量对应的第一视频流,其中,所述第一视频流由所述服务器通过所述第一视频质量对应的压缩参数对原始视频流进行压缩得到;
视频播放模块,用于在所述第一显示位置上对所述第一视频流进行播放。
12.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述计算机程序被设置为被处理器运行时执行权利要求1至10任一项中所述的视频播放方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至10任一项中所述的视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769673.8A CN115243092B (zh) | 2022-07-01 | 2022-07-01 | 视频播放方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769673.8A CN115243092B (zh) | 2022-07-01 | 2022-07-01 | 视频播放方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115243092A true CN115243092A (zh) | 2022-10-25 |
CN115243092B CN115243092B (zh) | 2024-02-23 |
Family
ID=83670666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210769673.8A Active CN115243092B (zh) | 2022-07-01 | 2022-07-01 | 视频播放方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115243092B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118413706A (zh) * | 2024-07-04 | 2024-07-30 | 海马云(天津)信息技术有限公司 | 云手机画面显示方法与装置、电子设备及存储介质 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115598A1 (en) * | 2001-03-23 | 2003-06-19 | Pantoja William E. | System and method for interactively producing a web-based multimedia presentation |
CN101198067A (zh) * | 2006-12-07 | 2008-06-11 | 中兴通讯股份有限公司 | 多画面视频显示处理方法 |
WO2013097150A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Apparatuses and methods for policy awareness in hardware accelerated video systems |
CN105472428A (zh) * | 2015-11-18 | 2016-04-06 | 华为技术有限公司 | 一种用于播放频道节目的方法和设备 |
WO2018036544A1 (zh) * | 2016-08-26 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 浏览器在独立窗口中播放视频的方法、装置及存储介质 |
CN109257611A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种视频播放方法、装置、终端设备和服务器 |
CN110582017A (zh) * | 2019-09-10 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、终端及存储介质 |
CN110784745A (zh) * | 2019-11-26 | 2020-02-11 | 科大讯飞股份有限公司 | 一种视频传输方法、装置、系统、设备及存储介质 |
CN111147770A (zh) * | 2019-12-18 | 2020-05-12 | 广州市保伦电子有限公司 | 一种多路视频窗口叠加显示方法、电子设备及存储介质 |
WO2020201632A1 (en) * | 2019-04-05 | 2020-10-08 | Nokia Technologies Oy | An apparatus, a method and a computer program for omnidirectional video |
CN112073543A (zh) * | 2020-11-16 | 2020-12-11 | 全时云商务服务股份有限公司 | 一种云视频录制方法、系统和可读存储介质 |
CN112218136A (zh) * | 2020-10-10 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、计算机设备及存储介质 |
CN112399123A (zh) * | 2021-01-19 | 2021-02-23 | 游密科技(深圳)有限公司 | 视频清晰度的调整方法、装置、电子设备及存储介质 |
CN113315927A (zh) * | 2021-05-27 | 2021-08-27 | 维沃移动通信有限公司 | 视频处理方法和装置、电子设备和存储介质 |
CN113542660A (zh) * | 2021-07-20 | 2021-10-22 | 随锐科技集团股份有限公司 | 一种实现会议多画面高清显示的方法、系统及存储介质 |
CN113810753A (zh) * | 2020-06-15 | 2021-12-17 | 西安诺瓦星云科技股份有限公司 | 节目插播方法和节目插播装置 |
CN113873320A (zh) * | 2021-09-28 | 2021-12-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及可读存储介质 |
CN114157883A (zh) * | 2022-02-08 | 2022-03-08 | 北京小鸟科技股份有限公司 | 基于多码流分布式视频拼接的码流选择系统、方法、设备 |
CN114302204A (zh) * | 2021-05-21 | 2022-04-08 | 海信视像科技股份有限公司 | 一种分屏播放方法及显示设备 |
WO2022100512A1 (zh) * | 2020-11-11 | 2022-05-19 | 北京字跳网络技术有限公司 | 热点榜单的显示方法、装置、电子设备和存储介质 |
-
2022
- 2022-07-01 CN CN202210769673.8A patent/CN115243092B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115598A1 (en) * | 2001-03-23 | 2003-06-19 | Pantoja William E. | System and method for interactively producing a web-based multimedia presentation |
CN101198067A (zh) * | 2006-12-07 | 2008-06-11 | 中兴通讯股份有限公司 | 多画面视频显示处理方法 |
WO2013097150A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Apparatuses and methods for policy awareness in hardware accelerated video systems |
CN105472428A (zh) * | 2015-11-18 | 2016-04-06 | 华为技术有限公司 | 一种用于播放频道节目的方法和设备 |
WO2018036544A1 (zh) * | 2016-08-26 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 浏览器在独立窗口中播放视频的方法、装置及存储介质 |
CN109257611A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种视频播放方法、装置、终端设备和服务器 |
WO2020201632A1 (en) * | 2019-04-05 | 2020-10-08 | Nokia Technologies Oy | An apparatus, a method and a computer program for omnidirectional video |
CN110582017A (zh) * | 2019-09-10 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、终端及存储介质 |
CN110784745A (zh) * | 2019-11-26 | 2020-02-11 | 科大讯飞股份有限公司 | 一种视频传输方法、装置、系统、设备及存储介质 |
CN111147770A (zh) * | 2019-12-18 | 2020-05-12 | 广州市保伦电子有限公司 | 一种多路视频窗口叠加显示方法、电子设备及存储介质 |
CN113810753A (zh) * | 2020-06-15 | 2021-12-17 | 西安诺瓦星云科技股份有限公司 | 节目插播方法和节目插播装置 |
CN112218136A (zh) * | 2020-10-10 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、计算机设备及存储介质 |
WO2022100512A1 (zh) * | 2020-11-11 | 2022-05-19 | 北京字跳网络技术有限公司 | 热点榜单的显示方法、装置、电子设备和存储介质 |
CN112073543A (zh) * | 2020-11-16 | 2020-12-11 | 全时云商务服务股份有限公司 | 一种云视频录制方法、系统和可读存储介质 |
CN112399123A (zh) * | 2021-01-19 | 2021-02-23 | 游密科技(深圳)有限公司 | 视频清晰度的调整方法、装置、电子设备及存储介质 |
CN114302204A (zh) * | 2021-05-21 | 2022-04-08 | 海信视像科技股份有限公司 | 一种分屏播放方法及显示设备 |
CN113315927A (zh) * | 2021-05-27 | 2021-08-27 | 维沃移动通信有限公司 | 视频处理方法和装置、电子设备和存储介质 |
CN113542660A (zh) * | 2021-07-20 | 2021-10-22 | 随锐科技集团股份有限公司 | 一种实现会议多画面高清显示的方法、系统及存储介质 |
CN113873320A (zh) * | 2021-09-28 | 2021-12-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及可读存储介质 |
CN114157883A (zh) * | 2022-02-08 | 2022-03-08 | 北京小鸟科技股份有限公司 | 基于多码流分布式视频拼接的码流选择系统、方法、设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118413706A (zh) * | 2024-07-04 | 2024-07-30 | 海马云(天津)信息技术有限公司 | 云手机画面显示方法与装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115243092B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565288B2 (en) | Video streaming in a web browser | |
CN109640188B (zh) | 视频预览方法、装置、电子设备及计算机可读存储介质 | |
CN111277845B (zh) | 游戏直播控制方法及装置、计算机存储介质及电子设备 | |
CN108475158A (zh) | 基于轻扫手势让内容项目间能够转换的系统及方法 | |
US10271105B2 (en) | Method for playing video, client, and computer storage medium | |
CN105979339B (zh) | 一种窗口显示方法及客户端 | |
US10521879B2 (en) | Overlaying multi-source media in VRAM | |
CN111221491A (zh) | 交互控制方法及装置、电子设备、存储介质 | |
CN104285194A (zh) | 对在显示设备上显示的窗口进行远程配置 | |
US20130147787A1 (en) | Systems and Methods for Transmitting Visual Content | |
CN107209693A (zh) | 缓冲器优化 | |
Kim et al. | pTHINC: a thin-client architecture for mobile wireless web | |
CN113535063A (zh) | 直播页面切换方法、视频页面切换方法、电子设备及存储介质 | |
CN115243092B (zh) | 视频播放方法、装置及存储介质 | |
EP3544012A1 (en) | An apparatus and associated methods for video presentation | |
EP2731011A1 (en) | Shared instant media access for mobile devices | |
Lee et al. | FLUID-XP: Flexible user interface distribution for cross-platform experience | |
CN113282362B (zh) | 应用程序管理方法、装置、存储介质以及终端 | |
CN113559498B (zh) | 三维模型展示方法、装置、存储介质及电子设备 | |
US10514959B2 (en) | Distributed virtual local operating system stored in cloud and its method | |
CN112711459B (zh) | 多媒体数据处理方法、装置、设备及计算机可读存储介质 | |
CN113704517A (zh) | 多媒体文件的播放方法和装置 | |
KR20210133229A (ko) | 클라우드 스트리밍 서비스에서의 사용자 인터페이스 세션 복구 방법 및 이를 위한 장치 | |
CN101534351B (zh) | 一种在浏览网页的同时收看手机电视的移动终端及方法 | |
JP7278850B2 (ja) | ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法 |
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 |