一种渲染视频流的方法、装置、存储介质及设备制造方法及图纸

技术编号:28768036 阅读:6 留言:0更新日期:2021-06-09 10:53
本说明书提供一种渲染视频流的方法、装置、存储介质及设备,该方法中,将Unity内嵌至应用程序中,第一进程拉流并获取视频流中的视频帧,第二进程运行Unity Activity并利用Unity对视频帧进行渲染,这样,减轻了第一进程的内存压力,如果Unity出现异常,第一进程基于原生的Android渲染机制进行渲染,保证了渲染工作的正常运行,有利于提升用户的观看体验。有利于提升用户的观看体验。有利于提升用户的观看体验。

【技术实现步骤摘要】
一种渲染视频流的方法、装置、存储介质及设备


[0001]本说明书涉及计算机
,尤其涉及一种渲染视频流的方法、装置、存储介质及设备。

技术介绍

[0002]随着互联网技术的发展,各种互联网产品给人们的工作和生活带来了很多的便利与娱乐,尤其是视频直播,作为目前最热门的领域之一,其给人们带来了更实时的社交体验。
[0003]传统的直播应用程序,直播视频流的渲染一般是基于原生的Android渲染机制来实现的,在处理视频流的渲染事件时,直播应用程序的性能消耗是比较大的,容易造成直播视频的卡顿,影响用户观看直播的体验。

技术实现思路

[0004]为克服相关技术中存在的问题,本说明书提供了一种渲染视频流的方法、装置、存储介质及设备。
[0005]根据本说明书实施例的第一方面,提供一种渲染视频流的方法,所述方法应用于基于Android的应用程序,所述应用程序包括Unity Activity,所述Unity Activity是基于将Unity作为库集成到所述应用程序的Android项目中而得到的;所述方法包括:
[0006]第一进程拉取待渲染的视频流,获取所述视频流中的视频帧,并提供给第二进程;
[0007]第二进程运行所述Unity Activity,利用所述Unity Activity对所述视频帧进行渲染;
[0008]所述第一进程在所述Unity Activity出现异常的情况下,基于原生的Android渲染进程对所述视频帧进行渲染。
[0009]在某些例子中,上述第二进程是在所述应用程序检测到指定渲染事件时启动的;其中,在第二进程启动前,所述视频流的视频帧由第一进程基于原生的Android渲染机制进行渲染。
[0010]在某些例子中,上述第二进程启动时创建的窗口是透明的窗口。
[0011]在某些例子中,上述第一进程中运行有设置为透明状态的透明Activity;第一进程在所述Unity Activity启动过程中的被创建阶段启动所述透明Activity,并将第一进程渲染的视频帧提供给所述透明Activity进行展示,直至所述Unity Activity开始渲染视频帧时停止提供。
[0012]在某些例子中,上述第二进程在启动所述Unity Activity时通知第一进程拉取待渲染的视频流。
[0013]在某些例子中,上述第一进程将视频帧提供给第二进程,包括:
[0014]第一进程将视频帧输出到Surface对象上,所述Surface对象由第二进程创建并传递给第一进程;
[0015]所述第二进程监听并获取所述Surface对象上更新的视频帧。
[0016]在某些例子中,上述第一进程拉取待渲染的视频流,包括:
[0017]第一进程从与本端已建立P2P连接的邻居节点拉取待渲染的视频流。
[0018]根据本说明书实施例的第二方面,提供一种渲染视频流的装置,所述装置应用于基于Android的应用程序,所述应用程序包括Unity Activity,所述Unity Activity是基于将Unity作为库集成到所述应用程序的Android项目中而得到的;所述装置包括:
[0019]第一进程模块,用于:拉取待渲染的视频流,获取所述视频流中的视频帧,并提供给第二进程模块;
[0020]第二进程模块,用于:运行所述Unity Activity,利用所述Unity Activity对所述视频帧进行渲染;
[0021]所述第一进程模块还用于:在所述Unity Activity出现异常的情况下,基于原生的Android渲染进程对所述视频帧进行渲染。
[0022]根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。
[0023]根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。
[0024]本说明书的实施例提供的技术方案可以包括以下有益效果:
[0025]本说明书实施例中,公开了一种渲染视频流的方法、装置、存储介质及设备,该方法中,将Unity内嵌至应用程序中,第一进程拉流并获取视频流中的视频帧,第二进程运行Unity Activity并利用Unity对视频帧进行渲染,这样,减轻了第一进程的内存压力,如果Unity出现异常,第一进程基于原生的Android渲染机制进行渲染,保证了渲染工作的正常运行,有利于提升用户的观看体验。
[0026]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0027]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0028]图1是本说明书根据一示例性实施例示出的一种渲染视频流的方法的流程图;
[0029]图2是本说明书根据一示例性实施例示出的一种渲染视频流的方法的示意图;
[0030]图3A、3B、3C是本说明书根据一示例性实施例示出的直播应用程序显示的各窗口的示意图;
[0031]图4是本说明书实施例渲染视频流的装置所在计算机设备的一种硬件结构图;
[0032]图5是本说明书根据一示例性实施例示出的一种渲染视频流的装置的框图。
具体实施方式
[0033]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0034]在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0035]应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0036]视频直播,是目前最热门的领域之一,近年来,各类用于视频直播的直播平台层出不穷,给人们带来了更实时的社交体验。在直播场景中,视频渲染是非常普遍的一种视频处理方法,其作用主要包括节省用户的设备资源。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种渲染视频流的方法,其特征在于,所述方法应用于基于Android的应用程序,所述应用程序包括Unity Activity,所述Unity Activity是基于将Unity作为库集成到所述应用程序的Android项目中而得到的;所述方法包括:第一进程拉取待渲染的视频流,获取所述视频流中的视频帧,并提供给第二进程;第二进程运行所述Unity Activity,利用所述Unity Activity对所述视频帧进行渲染;所述第一进程在所述Unity Activity出现异常的情况下,基于原生的Android渲染进程对所述视频帧进行渲染。2.根据权利要求1所述的方法,其特征在于,所述第二进程是在所述应用程序检测到指定渲染事件时启动的;其中,在第二进程启动前,所述视频流的视频帧由所述第一进程基于原生的Android渲染机制进行渲染。3.根据权利要求2所述的方法,其特征在于,所述第二进程启动时创建的窗口是透明的窗口。4.根据权利要求2所述的方法,其特征在于,所述第一进程中运行有设置为透明状态的透明Activity;第一进程在所述Unity Activity启动过程中的被创建阶段启动所述透明Activity,并将第一进程渲染的视频帧提供给所述透明Activity进行展示,直至所述Unity Activity开始渲染视频帧时停止提供。5.根据权利要求1所述的方法,其特征在于,所述第二进程在启动所述Unity Activity时通知第一进程拉取待渲染的视频...

【专利技术属性】
技术研发人员:邱俊琪
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1