CN111556325A - 结合音视频的渲染方法、介质及计算机设备 - Google Patents
结合音视频的渲染方法、介质及计算机设备 Download PDFInfo
- Publication number
- CN111556325A CN111556325A CN201910111655.9A CN201910111655A CN111556325A CN 111556325 A CN111556325 A CN 111556325A CN 201910111655 A CN201910111655 A CN 201910111655A CN 111556325 A CN111556325 A CN 111556325A
- Authority
- CN
- China
- Prior art keywords
- rendering
- video
- audio
- data stream
- current
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Abstract
本发明提供一种结合音视频的渲染方法、装置、计算机可读存储介质及计算机设备,所述的方法包括:加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;将所述有效渲染单元提交到GPU进行渲染。本发明在实现高性能图形渲染的基础上完成音视频流播放与图形渲染的结合,在实现视频渲染效果的同时满足了高清视频播放的需求,使视频画面增强表现力。
Description
技术领域
本发明涉及视频直播技术领域,具体而言,本发明涉及一种结合音视频的渲染方法、介质及计算机设备。
背景技术
目前,视频直播平台已经非常普遍,用户可以通过视频直播平台观看他们想要观看的电视、电影和游戏直播等。实际应用中,主播端在进行视频采集时,通常会使用贴纸、滤镜、美颜等功能,而在视频播放过程中,针对观众端的需求也可能会对录制好的原始视频增加滤镜、美颜等功能,而这类功能的实现均离不开视频渲染技术,因此视频的渲染能力直接影响到整个视频类APP的性能和用户体验。
现有市面上的商业渲染引擎(如Cocos2d-x、Unity3D等渲染引擎)大部分是针对游戏开发的,视频只是游戏中的一个要素,因此大多渲染引擎虽然渲染能力优秀,但是只能支持视频的高性能渲染,无法同时支持高清视频的播放。而一款体验感良好的音乐交互设备不仅需要高品质、流畅的渲染画面,同时也要支持播放高品质的视频文件,将视频播放和渲染结合在一起,可以使视频播放呈现最大的表现力。
因此,现有的技术方案中,无法兼顾视频的高性能渲染以及高清视频的播放,流畅性差且损耗大,影响用户体验。
发明内容
本发明提供一种结合音视频的渲染方法及相应的装置,其在实现视频渲染效果的同时满足了高清视频播放的需求,使视频画面增强表现力的同时,实现了流畅、高效、低损耗的播放。
本发明还提供一种用于执行本发明的结合音视频的渲染方法的计算机设备及可读存储介质。
为解决上述问题,本发明采用如下各方面的技术方案:
第一方面,本发明提供一种结合音视频的渲染方法,包括:
加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;
读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;
遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;
将所述有效渲染单元提交到GPU进行渲染。
具体的,所述读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中,包括:
获取音视频文件,将所述音视频文件分流成音频数据和视频数据;
分别将所述音频数据和所述视频数据解码为所述音频数据流和所述视频数据流;
将解码后得到的音频数据流存于内存中,将解码后得到的视频数据流存储于显存中;
读取显存中所述视频数据流的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中。
具体的,所述将解码后得到的音频数据流存于内存中,将解码后得到的视频数据流存储于显存中之后,包括:
获取当前音频数据流以及当前视频数据流;
将所述当前音频数据流与所述当前视频数据流调整至同步状态。
具体的,所述将所述当前音频数据流以及当前视频数据流调整至同步状态,包括:
建立所述音频数据流的第一缓存地址与第一时间戳的第一映射关系表;
建立所述视频数据流的第二缓存地址与第二时间戳的第二映射关系表;
获取当前播放的音频数据流所指向的第一缓存地址以及当前播放的视频数据流所指向的第二缓存地址;
根据所述第一缓存地址查询所述第一映射关系表获取第一时间戳;
根据所述第二缓存地址查询所述第二映射关系表获取第二时间戳;
根据所述第一时间戳和所述第二时间戳,将所述当前音频数据流与所述当前视频数据流调整至同步状态。
优选的,所述将所述渲染单元提交至GPU进行渲染,包括:
获取所述有效渲染单元的渲染状态;
比对各个渲染状态,根据所述渲染状态对所述有效渲染单元进行分类排序生成渲染序列;
将排序后的渲染序列统一提交至GPU进行渲染。
具体的,所述将所述渲染单元提交至GPU进行渲染之后,包括:
将渲染后得到的视频数据流输出至屏幕播放,同时将与所述视频数据流调整至同步状态的音频数据流传输至声卡设备播放。
具体的,所述多叉树数据结构中的各个节点的数据采用显卡的内存池化策略进行存储。
第二方面,本发明提供一种结合音视频的渲染装置,包括:
加载模块,用于加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;
读取模块,用于读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;
筛选模块,用于遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;
渲染模块,用于将所述有效渲染单元提交到GPU进行渲染。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面中任意一项所述的结合音视频的渲染方法。
第四方面,本发明提供一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任意一项所述的结合音视频的渲染方法。
相对于现有技术,本发明的技术方案至少具备如下优点:
1,本发明提供一种结合音视频的渲染方法,通过加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;将所述有效渲染单元提交到GPU进行渲染。本发明在实现高性能图形渲染的基础上完成音视频流播放与图形渲染的结合,在实现视频渲染效果的同时满足了高清视频播放的需求使视频画面增强表现力。
2,本发明对所述场景采用多叉树数据结构进行空间处理,并且所述多叉树数据结构中的各个节点的数据采用显卡的内存池化策略进行存储,对统一存放于显卡的内存池内的节点可以反复存取。同时,本发明能够遍历处理后的多叉树数据结构中的所有节点,记录有效渲染单元;获取所述有效渲染单元的渲染状态;比对各个有效渲染单元的渲染状态,根据所述渲染状态对所述有效渲染单元进行分类排序生成渲染序列;将排序后的渲染序列统一提交至GPU进行渲染。本发明通过对渲染状态的归类排序、统一提交渲染序列的形式完成批次渲染,避免了因切换渲染状态带来的内存通讯损耗,实现高清视频的低损耗播放。
3,本发明能够获取音视频文件,将所述音视频文件分流成音频数据和视频数据;分别将所述音频数据和所述视频数据解码为所述音频数据流和所述视频数据流;将所述音频数据流存于内存中,将所述视频数据流缓存于显存中。本发明实施例中,经解码后的视频数据流直接存放于显存中,无需存放回内存,因此,当视频数据流同步至渲染线程中时,可以由GPU直接操作显存并输出至渲染单元,完成视频数据流的渲染,从而节省了视频渲染的时间,让高清视频能够流畅、高效的播放。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的结合音视频的渲染方法的流程示意图;
图2为本发明一个实施例的结合音视频的渲染装置的结构框图;
图3为本发明一个实施例的渲染引擎的内部组件示意图;
图4为本发明一个实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
如图1所示,在一个实施例中,一种结合音视频的渲染方法,包括:
S11、加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构。
本发明所述结合音视频的渲染方法具体通过渲染引擎实现。本发明所采用的渲染引擎为基于渲染应用架构的图形图像渲染系统,可以高效利用GPU特性进行渲染。
本发明实施例中,对所述场景进行多叉树处理生成多叉树数据结构。所述多叉树数据结构中包含根节点以及多个子节点,各个节点中包含一个或多个第一渲染单元,所述第一渲染单元为由所述场景组织而成的渲染单元的集合。本发明采用多叉树数据结构,以确保渲染引擎中各个有效渲染单元的可控性。
优选的,本发明所述多叉树数据结构中的各个节点的数据采用显卡的内存池化策略进行存储。对统一存放于内存池内的节点可以反复存取。传统的渲染引擎大部分渲染节点都是独立存放或通过智能指针进行存取管理,执行渲染流程时需要通过逻辑处理实现内存的分配及释放,容易让应用程序产生更大的内存损耗的问题。因此,本发明通过该方案解决现有技术中的内存损耗的问题。
S12、读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中。
本发明实施例中,读取音视频文件解码后得到的当前视频帧数据具体通过以下方案实现:
获取所述音视频文件,将所述音视频文件分流成音频数据和视频数据;分别将所述音频数据和所述视频数据解码为所述音频数据流和所述视频数据流;将解码后的音频数据流存于内存中,将解码后的视频数据流存储于显存中;读取显存中所述视频数据流的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中,其中,所述第二渲染单元为由所述当前视频帧数据组织而成的渲染单元,其为不同于所述第一渲染单元的独立的渲染单元。
本发明实施例中,所述将解码后的音频数据流存于内存中,将解码后的视频数据流存储于显存中之后,还包括:
获取当前音频数据流以及当前视频数据流;将所述当前音频数据流与所述当前视频数据流调整至同步状态。具体的,建立所述音频数据流的第一缓存地址与第一时间戳的第一映射关系表;建立所述视频数据流的第二缓存地址与第二时间戳的第二映射关系表;获取当前播放的音频数据流所指向的第一缓存地址以及当前播放的视频数据流所指向的第二缓存地址;根据所述第一缓存地址查询所述第一映射关系表获取第一时间戳;根据所述第二缓存地址查询所述第二映射关系表获取第二时间戳;根据所述第一时间戳和所述第二时间戳,将所述当前音频数据流与所述当前视频数据流调整至同步状态。
本发明实施例中,经解码后的视频数据流直接存放于显存中,无需存放回内存,因此,当所述视频数据流同步至渲染线程中时,可以由GPU直接操作显存并输出至渲染单元,完成视频数据流的渲染,从而节省了视频渲染的时间,让高清视频能够流畅、高效、低损耗的播放。
S13、遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元。
本发明实施例中,所述预设规则为上层业务设定的规则,本发明通过所述渲染引擎执行所述预设规则,依据所述预设规则筛选出所述有效渲染单元。
本发明通过采用多叉树结构,实现渲染单元的有序的排列组合,最终实现高效的渲染。
S14、将所述有效渲染单元提交至GPU进行渲染。
本发明实施例中,所述将所述渲染单元提交至GPU进行渲染,具体包括:
获取所述有效渲染单元的渲染状态;比对各个渲染状态,根据所述渲染状态对所述有效渲染单元进行分类排序生成渲染序列;将排序后的渲染序列统一提交至GPU进行渲染。
本发明实施例中,渲染的对象既包括由所述场景组成的第一渲染单元也包括由当前视频帧数据组成的第二渲染单元。本发明实施例中,所述渲染状态为一组用于表征有效渲染单元的渲染规则的参数。例如,所述渲染状态中包含着色的参数,布局的参数以及加特效等参数。本发明根据所述渲染状态将渲染状态相似的分为一组,例如,将需要着色的有效渲染单元分为一组,将需要滤镜的渲染单元分为另一组等。进一步的,GPU根据分组后的有效渲染单元依据其渲染状态进行渲染。本发明通过对渲染状态的归类排序、统一提交渲染序列的形式完成批次渲染,避免了因切换渲染状态带来的内存通讯损耗。
优选的,所述将所述渲染单元提交至GPU进行渲染之后,还包括:
将渲染后得到的视频数据流输出至屏幕播放,同时将与所述视频数据流调整至同步状态的音频数据流传输至声卡设备播放。
具体而言,本发明预先加载场景,对所述场景采用多叉树数据结构进行空间处理,将多叉树数据结构中的所有节点数据内存池化;读取当前视频帧数据,遍历多叉树数据结构中所有的根节点及子节点,由渲染序列管理器将需要渲染的渲染单元记录下来,筛选出有效渲染单元;将渲染序列管理器筛选出的有效渲染单元进行渲染状态比对,根据渲染状态进行分类排序;将排序后的渲染序列统一提交给GPU进行渲染,完成当前帧的渲染,并将渲染后的视频数据输出到屏幕;读取下一视频帧数据,进行下一帧的渲染,循环以上步骤。
本发明实施例中,将图形、图像的渲染与视频数据流的渲染相结合,将图形、图像的渲染与音视频文件的播放相结合,在实现高性能图形渲染的基础上完成音视频流播放与图形渲染的结合,实现视频渲染效果的同时满足了高清视频播放的需求,使视频画面增强表现力的同时,实现了流畅、高效、低损耗的播放。
请参考图2,在另一种实施例中,本发明提供了一种结合音视频的渲染装置,包括:
加载模块11,用于加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;
读取模块12,用于读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;
筛选模块13,用于遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;
渲染模块14,用于将所述有效渲染单元提交到GPU进行渲染。
进一步的,所述读取模块12中,具体还包括:
读取单元,用于获取音视频文件,将所述音视频文件分流成音频数据和视频数据;
分别将所述音频数据和所述视频数据解码为所述音频数据流和所述视频数据流;将解码后得到的音频数据流存于内存中,将解码后得到的视频数据流存储于显存中;读取显存中所述视频数据流的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中。
同步单元,用于获取当前音频数据流以及当前视频数据流;将所述当前音频数据流与所述当前视频数据流调整至同步状态。
建立单元,用于建立所述音频数据流的第一缓存地址与第一时间戳的第一映射关系表;建立所述视频数据流的第二缓存地址与第二时间戳的第二映射关系表;获取当前播放的音频数据流所指向的第一缓存地址以及当前播放的视频数据流所指向的第二缓存地址;根据所述第一缓存地址查询所述第一映射关系表获取第一时间戳;根据所述第二缓存地址查询所述第二映射关系表获取第二时间戳;根据所述第一时间戳和所述第二时间戳,将所述当前音频数据流与所述当前视频数据流调整至同步状态。
所述渲染模块14中,具体包括:
渲染单元,用于获取所述有效渲染单元的渲染状态;比对各个渲染状态,根据所述渲染状态对所述有效渲染单元进行分类排序生成渲染序列;将排序后的渲染序列统一提交至GPU进行渲染。
播放单元,用于将渲染后得到的视频数据流输出至屏幕播放,同时将与所述视频数据流调整至同步状态的音频数据流传输至声卡设备播放。
请参考图3,在另一种实施例中,本发明提供一种用于执行所述结合音视频的渲染方法的渲染引擎的内部组件示意图。
本发明所提供的渲染引擎用于执行所述结合音视频的渲染方法,所述渲染引擎为基于渲染应用架构的图形图像渲染系统,可以高效利用GPU特性进行渲染。
本发明实施例中,所述渲染引擎具体包括:
渲染对象模块,用于存储存储渲染对象数据信息,包括精灵对象、文本对象、粒子特效对象、节点对象、场景对象等;其中,所述精灵对象可以为本发明所述第一渲染单元也可以为所述第二渲染单元。
音视频管理模块,用于提供和管理音频、视频、音效等文件;
设备管理模块,用于提供和管理渲染设备、窗口设备、输入输出设备等;
资源管理模块,资源管理模块,用于管理定点着色器、像素着色器、字体属性等资源;
应用管理模块,包括系统类管理、工具类管理(设备信息、系统时间等)及常用算法类管理等。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述终端的结合音视频的渲染方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
本申请实施例还提供一种计算机设备。如图4所示,所述计算机设备包括:
一个或多个处理器510;
存储装置520,用于存储一个或多个程序500,
当所述一个或多个程序500被所述一个或多个处理器510执行,使得所述一个或多个处理器510实现上述终端的结合音视频的渲染方法。
如图4所示为本申请计算机设备的结构示意图,包括处理器510、存储装置520、输入单元530以及显示单元540等器件。本领域技术人员可以理解,图4示出的结构器件并不构成对所有计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置520可用于存储应用程序500以及各功能模块,处理器510运行存储在存储装置520的应用程序500,从而执行设备的各种功能应用以及数据处理。存储装置520可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储装置包括但不限于这些类型的存储装置。本申请所公开的存储装置520只作为例子而非作为限定。
输入单元530用于接收信号的输入,以及接收用户输入的选择语音文件等相关请求。输入单元530可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元540可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元540可采用液晶显示器、有机发光二极管等形式。处理器510是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置520内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,计算机设备包括一个或多个处理器510,以及一个或多个存储装置520,一个或多个应用程序500,其中所述一个或多个应用程序500被存储在存储装置520中并被配置为由所述一个或多个处理器510执行,所述一个或多个应用程序500配置用于执行以上实施例所述的结合音视频的渲染方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本申请各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种结合音视频的渲染方法,其特征在于,包括:
加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;
读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;
遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;
将所述有效渲染单元提交到GPU进行渲染。
2.根据权利要求1所述的结合音视频的渲染方法,其特征在于,所述读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中,包括:
获取音视频文件,将所述音视频文件分流成音频数据和视频数据;
分别将所述音频数据和所述视频数据解码为所述音频数据流和所述视频数据流;
将解码后得到的音频数据流存于内存中,将解码后得到的视频数据流存储于显存中;
读取显存中所述视频数据流的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中。
3.根据权利要求2所述的结合音视频的渲染方法,其特征在于,所述将解码后得到的音频数据流存于内存中,将解码后得到的视频数据流存储于显存中之后,包括:
获取当前音频数据流以及当前视频数据流;
将所述当前音频数据流与所述当前视频数据流调整至同步状态。
4.根据权利要求3所述的结合音视频的渲染方法,其特征在于,所述将所述当前音频数据流以及当前视频数据流调整至同步状态,包括:
建立所述音频数据流的第一缓存地址与第一时间戳的第一映射关系表;
建立所述视频数据流的第二缓存地址与第二时间戳的第二映射关系表;
获取当前播放的音频数据流所指向的第一缓存地址以及当前播放的视频数据流所指向的第二缓存地址;
根据所述第一缓存地址查询所述第一映射关系表获取第一时间戳;
根据所述第二缓存地址查询所述第二映射关系表获取第二时间戳;
根据所述第一时间戳和所述第二时间戳,将所述当前音频数据流与所述当前视频数据流调整至同步状态。
5.根据权利要求1所述的结合音视频的渲染方法,其特征在于,所述将所述渲染单元提交至GPU进行渲染,包括:
获取所述有效渲染单元的渲染状态;
比对各个渲染状态,根据所述渲染状态对所述有效渲染单元进行分类排序生成渲染序列;
将排序后的渲染序列统一提交至GPU进行渲染。
6.根据权利要求1所述的结合音视频的渲染方法,其特征在于,所述将所述渲染单元提交至GPU进行渲染之后,包括:
将渲染后得到的视频数据流输出至屏幕播放,同时将与所述视频数据流调整至同步状态的音频数据流传输至声卡设备播放。
7.根据权利要求1所述的结合音视频的渲染方法,其特征在于,所述多叉树数据结构中的各个节点的数据采用显卡的内存池化策略进行存储。
8.一种结合音视频的渲染装置,其特征在于,包括:
加载模块,用于加载场景,对所述场景采用多叉树进行处理,得到包含若干个第一渲染单元的多叉树数据结构;
读取模块,用于读取音视频文件解码后得到的当前视频帧数据,将所述当前视频帧数据组成第二渲染单元加入所述多叉树数据结构中;
筛选模块,用于遍历所述多叉树数据结构,依据预设规则从所述第一渲染单元以及所述第二渲染单元中筛选出有效渲染单元;
渲染模块,用于将所述有效渲染单元提交到GPU进行渲染。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的结合音视频的渲染方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任意一项所述的结合音视频的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910111655.9A CN111556325A (zh) | 2019-02-12 | 2019-02-12 | 结合音视频的渲染方法、介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910111655.9A CN111556325A (zh) | 2019-02-12 | 2019-02-12 | 结合音视频的渲染方法、介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111556325A true CN111556325A (zh) | 2020-08-18 |
Family
ID=72003670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910111655.9A Pending CN111556325A (zh) | 2019-02-12 | 2019-02-12 | 结合音视频的渲染方法、介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111556325A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112423111A (zh) * | 2020-11-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
CN112929740A (zh) * | 2021-01-20 | 2021-06-08 | 广州虎牙科技有限公司 | 一种渲染视频流的方法、装置、存储介质及设备 |
CN113163259A (zh) * | 2021-05-10 | 2021-07-23 | 宝宝巴士股份有限公司 | 一种基于FFmpeg的视频结点的渲染方法及装置 |
CN113923507A (zh) * | 2021-12-13 | 2022-01-11 | 北京蔚领时代科技有限公司 | Android端的低延迟视频渲染方法及装置 |
CN116761018A (zh) * | 2023-08-18 | 2023-09-15 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的实时渲染系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714084A (zh) * | 2009-11-23 | 2010-05-26 | 腾讯科技(深圳)有限公司 | 媒体文件播放系统及方法 |
CN101840565A (zh) * | 2010-04-19 | 2010-09-22 | 浙江大学 | 一种基于gpu的八叉树并行构建方法 |
CN104935830A (zh) * | 2015-06-03 | 2015-09-23 | 广东威创视讯科技股份有限公司 | 拼接显示装置视频信息渲染、显示方法和系统 |
US20170236325A1 (en) * | 2016-02-15 | 2017-08-17 | Thomson Licensing | Device and process for improving efficiency of image rendering |
CN107426606A (zh) * | 2017-06-26 | 2017-12-01 | 联想(北京)有限公司 | 录制屏幕的方法、装置、电子设备和系统 |
US20170359594A1 (en) * | 2011-11-11 | 2017-12-14 | Ge Video Compression, Llc | Multi-view coding with effective handling of renderable portions |
CN107948735A (zh) * | 2017-12-06 | 2018-04-20 | 北京金山安全软件有限公司 | 一种视频播放方法、装置及电子设备 |
-
2019
- 2019-02-12 CN CN201910111655.9A patent/CN111556325A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714084A (zh) * | 2009-11-23 | 2010-05-26 | 腾讯科技(深圳)有限公司 | 媒体文件播放系统及方法 |
CN101840565A (zh) * | 2010-04-19 | 2010-09-22 | 浙江大学 | 一种基于gpu的八叉树并行构建方法 |
US20170359594A1 (en) * | 2011-11-11 | 2017-12-14 | Ge Video Compression, Llc | Multi-view coding with effective handling of renderable portions |
CN104935830A (zh) * | 2015-06-03 | 2015-09-23 | 广东威创视讯科技股份有限公司 | 拼接显示装置视频信息渲染、显示方法和系统 |
US20170236325A1 (en) * | 2016-02-15 | 2017-08-17 | Thomson Licensing | Device and process for improving efficiency of image rendering |
CN107426606A (zh) * | 2017-06-26 | 2017-12-01 | 联想(北京)有限公司 | 录制屏幕的方法、装置、电子设备和系统 |
CN107948735A (zh) * | 2017-12-06 | 2018-04-20 | 北京金山安全软件有限公司 | 一种视频播放方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
刘镇等: "基于CUDA的并行加速渲染算法", 《中国图象图形学报》 * |
申闫春等: "基于并行渲染的虚拟现实开发平台设计与实现", 《计算机仿真》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112423111A (zh) * | 2020-11-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
CN112929740A (zh) * | 2021-01-20 | 2021-06-08 | 广州虎牙科技有限公司 | 一种渲染视频流的方法、装置、存储介质及设备 |
CN112929740B (zh) * | 2021-01-20 | 2023-06-27 | 广州虎牙科技有限公司 | 一种渲染视频流的方法、装置、存储介质及设备 |
CN113163259A (zh) * | 2021-05-10 | 2021-07-23 | 宝宝巴士股份有限公司 | 一种基于FFmpeg的视频结点的渲染方法及装置 |
CN113923507A (zh) * | 2021-12-13 | 2022-01-11 | 北京蔚领时代科技有限公司 | Android端的低延迟视频渲染方法及装置 |
CN113923507B (zh) * | 2021-12-13 | 2022-07-22 | 北京蔚领时代科技有限公司 | Android端的低延迟视频渲染方法及装置 |
CN116761018A (zh) * | 2023-08-18 | 2023-09-15 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的实时渲染系统 |
CN116761018B (zh) * | 2023-08-18 | 2023-10-17 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的实时渲染系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111556325A (zh) | 结合音视频的渲染方法、介质及计算机设备 | |
CN107659825B (zh) | 一种直播视频留存的方法、装置、服务器、主播端及介质 | |
KR101606949B1 (ko) | 다중 계층화된 슬라이드 전환 | |
CN113457160B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US20090089710A1 (en) | Processing an animation file to provide an animated icon | |
CN113015005B (zh) | 一种视频剪辑方法、装置、设备及计算机可读存储介质 | |
CN110049371A (zh) | 视频合成、播放和修改方法、视频合成系统及设备 | |
CN103680551A (zh) | 一种播放器及其多视频并行播放的方法 | |
CN109275028A (zh) | 视频获取方法、装置、终端和介质 | |
JP2006318281A (ja) | 画像処理システム | |
CN108924582A (zh) | 视频录制方法、计算机可读存储介质及录播系统 | |
CN111669646A (zh) | 透明视频的播放方法、装置、设备及介质 | |
JP6081037B1 (ja) | 画像受信再生装置、画像生成送信装置、表示システム、画像受信再生方法、画像生成送信方法、画像受信再生プログラム及び画像生成送信プログラム | |
CN107864122A (zh) | 一种连麦主播直播流的显示方法及装置 | |
CN111741367B (zh) | 视频互动方法、装置、电子设备及计算机可读存储介质 | |
CN113014985A (zh) | 互动多媒体内容处理方法、装置、电子设备及存储介质 | |
CN110784753A (zh) | 互动视频播放方法及装置、存储介质、电子设备 | |
CN112153472A (zh) | 一种画面特效的生成方法及装置、存储介质及电子设备 | |
US8280220B2 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
WO2018049682A1 (zh) | 一种虚拟3d场景制作方法及相关设备 | |
CN101472079A (zh) | 动态背景发生器 | |
CN106067988A (zh) | 视频列表显示方法、装置及移动终端 | |
CN112954452B (zh) | 视频生成方法、装置、终端及存储介质 | |
CN117557701A (zh) | 一种图像渲染方法和电子设备 | |
CN114630184A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200818 |