视频播放方法、装置、计算机设备及可读存储介质制造方法及图纸

技术编号:29594870 阅读:18 留言:0更新日期:2021-08-06 19:56
本申请实施例公开了一种视频播放方法、装置、计算机设备及可读存储介质,属于互联网技术领域。所述方法包括:浏览器的web引擎中的C层将待播放的音视频的码流进行解码,并基于解码得到的音频数据和视频数据,在用户接口UI界面上进行渲染播放。也就是说,当C层接收web层发送的待播放的视频的码流后,在C层进行解码并渲染,并不需要将解码后的音频数据和视频数据传输给web层,再从web层调用基础库进行渲染,从而减少了跨层传输数据的次数,从而提高了音视频播放时浏览器的性能,减少了消耗。

【技术实现步骤摘要】
视频播放方法、装置、计算机设备及可读存储介质
本申请实施例涉及互联网
,特别涉及一种音视频播放方法。
技术介绍
随着互联网技术的发展,浏览器的功能越来越丰富,越来越多的用户使用浏览器播放音视频。随着浏览器的发展和安全方面的考虑,当浏览器播放音视频采集设备所采集到的音视频时,浏览器采用基于WebAssembly(WebAssembly是一种运行在浏览器上的完整底层汇编级的语言)技术对音视频数据进行解码播放。相关技术中,当浏览器接收到音视频数据后,浏览器的web引擎对音视频数据进行播放。浏览器的web引擎包括web层、中间层和C层。web层用来接收和播放音视频数据,中间层用来传输音视频数据,C层用来解析和解码音视频数据。web层还包括基础库,基础库用来渲染解码后的视频数据。浏览器播放音视频数据的过程为:web层接收音视频数据后,通过中间层将音视频数据传输给C层进行解析和解码,将解析和解码后的音视频数据通过中间层回调给web层。web层调用基础库将音视频数据进行渲染播放。但是,web层调用基础库对音视频数据渲染时,web层调用基础库中的webGL对视频进行渲染,web层调用AudioContext对音频进行渲染。而webGL和AudioContext位于web层,因此中间层将音视频数据传输给C层进行解析和解码后,还需将解析和解码后的音视频数据通过中间层回调给web层进行音视频渲染,因此造成多次跨层传输数据的现象,从而消耗浏览器的性能和浪费内存。
技术实现思路
本申请实施例提供了一种视频播放方法,可以减少跨层传输数据的次数,从而提高音视频播放时浏览器的性能。所述技术方案如下:一方面,提供了一种视频播放方法,所述方法包括:所述方法由浏览器中网页web引擎执行,所述web引擎包括web层和C层,所述web层的运行语言为JS语言,所述C层的运行语言为C语言;所述方法包括:所述C层接收所述web层发送的待播放的音视频的码流,所述码流为所述web层在接收到视频播放请求时发送的;所述C层解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染所述音视频。可选地,所述C层解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染得到所述音视频,包括:所述C层创建数据处理子线程和显示子线程;所述C层将所述码流发送至所述数据处理子线程,由所述数据处理子线程解码所述码流得到所述音频数据和所述视频数据;所述C层将所述音频数据和所述视频数据发送至所述显示子线程,由所述显示子线程基于所述音频数据和所述视频数据在所述用户界面UI上渲染得到所述音视频。可选地,所述C层配置有音频解码库和视频解码库,所述音频解码库的解码流程是基于业务需求配置的,所述视频解码库的解码流程是基于业务需求配置的;所述C层解码所述码流得到音频数据和视频数据,包括:所述C层基于音频解码库解码所述码流中的音频裸流,得到所述音频数据;所述C层基于视频解码库解码所述码流中的视频裸流,得到所述视频数据。可选地,所述C层包括OpenAL和OpenGLES;所述基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染得到所述视频,包括:所述C层通过所述OpenAL渲染所述音频数据,通过所述OpenGLES在所述用户界面UI上渲染所述视频数据。可选地,所述C层中配置有解析库,所述解析库的解析流程是基于开发人员配置的;所述C层解码所述码流得到音频数据和视频数据包括:所述C层基于解析库解析所述码流,得到所述码流中的音频裸流和视频裸流;所述C层解码所述音频裸流得到所述音频数据,所述C层解码所述视频裸流得到所述视频数据。可选地,所述基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染得到所述视频之后,所述方法还包括:所述C层对渲染后的视频进行鱼眼校正,在用户界面UI上显示校正后的视频。可选地,所述基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染得到所述视频之后,所述方法还包括:所述C层对渲染后的视频添加标注信息,在用户界面UI上显示添加标注信息后的视频。另一方面,提供了一种视频播放装置,所述装置包括:所述装置部署在浏览器中网页web引擎中,所述web引擎包括web层和C层,所述web层的运行语言为JS语言,所述C层的运行语言为C语言;接收模块,用于接收所述web层发送的待播放的音视频的码流,所述码流为所述web层在接收到视频播放请求时发送的;播放模块,用于解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染所述音视频。可选地,所述播放模块用于:创建数据处理子线程和显示子线程;将所述码流发送至所述数据处理子线程,由所述数据处理子线程解码所述码流得到所述音频数据和所述视频数据;将所述音频数据和所述视频数据发送至所述显示子线程,由所述显示子线程基于所述音频数据和所述视频数据在所述用户界面UI上渲染得到所述音视频。可选地,所述C层配置有音频解码库和视频解码库,所述音频解码库的解码流程是基于业务需求配置的,所述视频解码库的解码流程是基于业务需求配置的;所述播放模块用于:基于音频解码库解码所述码流中的音频裸流,得到所述音频数据;基于视频解码库解码所述码流中的视频裸流,得到所述视频数据。可选地,所述C层包括OpenAL和OpenGLES;所述播放模块用于:通过所述OpenAL渲染所述音频数据,通过所述OpenGLES在所述用户界面UI上渲染所述视频数据。可选地,所述C层中配置有解析库,所述解析库的解析流程是基于业务需求配置的;所述播放模块还用于:基于解析库解析所述码流,得到所述码流中的音频裸流和视频裸流;解码所述音频裸流得到所述音频数据,解码所述视频裸流得到所述视频数据。可选地,播放模块还用于:对渲染后的视频进行鱼眼校正,在所述UI上显示校正后的视频。可选地,所述播放模块还用于:对渲染后的视频添加标注信息,在所述UI上显示添加标注信息后的视频。另一方面,提供了一种计算机设备,所述计算机设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述所述的视频播放方法。另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述所述的视频播放方法。本申请实施例提供的技术方案带来的有益效果至少包括:在本申请实施例中,浏览器的web引擎中的C层将待播放的音视频的码流进行解码,并基于解码得到的音频数据和视频数据,在UI界面上进行渲染播放。也就是说,当C层接收web层发本文档来自技高网...

【技术保护点】
1.一种视频播放方法,其特征在于,所述方法由浏览器中网页web引擎执行,所述web引擎包括web层和C层,所述web层的运行语言为JS语言,所述C层的运行语言为C语言;/n所述方法包括:/n所述C层接收所述web层发送的待播放的音视频的码流,所述码流为所述web层在接收到视频播放请求时发送的;/n所述C层解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染所述音视频。/n

【技术特征摘要】
1.一种视频播放方法,其特征在于,所述方法由浏览器中网页web引擎执行,所述web引擎包括web层和C层,所述web层的运行语言为JS语言,所述C层的运行语言为C语言;
所述方法包括:
所述C层接收所述web层发送的待播放的音视频的码流,所述码流为所述web层在接收到视频播放请求时发送的;
所述C层解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染所述音视频。


2.如权利要求1所述的方法,其特征在于,所述C层解码所述码流得到音频数据和视频数据,并基于所述音频数据和所述视频数据在所述浏览器的用户界面UI上渲染得到所述音视频,包括:
所述C层创建数据处理子线程和显示子线程;
所述C层将所述码流发送至所述数据处理子线程,由所述数据处理子线程解码所述码流得到所述音频数据和所述视频数据;
所述C层将所述音频数据和所述视频数据发送至所述显示子线程,由所述显示子线程基于所述音频数据和所述视频数据在所述UI上渲染得到所述音视频。


3.如权利要求1所述的方法,其特征在于,所述C层中配置有解析库,所述解析库的解析流程是基于业务需求配置的;
所述C层解码所述码流得到音频数据和视频数据,所述方法还包括:
所述C层基于解析库解析所述码流,得到所述码流中的音频裸流和视频裸流;
所述C层解码所述音频裸流得到所述音频数据,所述C层解码所述视频裸流得到所述视频数据。


4.如权利要求1所述的方法,其特征在于,所述C层配置有音频解码库和视频解码库,所述音频解码库的解码流程是基于业务需求配置的,所述视频解码库的解码流程是基于业务需求配置的;
所述C层解码所述码流得到音频数据和视频数据,包括:
所述C层基于音频解码库解码所述码流中的音频裸流,得到所述音频数据;
所述C层基于视频解码库解码所述码流中的视频裸流,得到所述视频数据。

【专利技术属性】
技术研发人员:杨方方李中虎陈喆
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江;33

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

1