一种浏览器视频播放方法、装置以及计算机存储介质制造方法及图纸

技术编号:25553860 阅读:22 留言:0更新日期:2020-09-08 18:54
本申请提供了一种浏览器视频播放方法、装置以及计算机存储介质。该浏览器视频播放方法包括:创建主线程和子线程;由主线程缓冲视频数据;采用预设编译器将浏览器的代码语言编译为预设代码语言;由子线程基于预设代码语言对视频数据进行解码和渲染,以在浏览器播放渲染后的视频。通过上述方式,本申请的浏览器视频播放方法通过创建主线程和子线程,并由主线程和子线程分别独自工作,避免影响播放页面的流畅性;通过将浏览器的代码语言进行编译,扩展浏览器端的视频处理能力。

【技术实现步骤摘要】
一种浏览器视频播放方法、装置以及计算机存储介质
本申请涉及音视频流解码播放
,特别是涉及一种浏览器视频播放方法、装置以及计算机存储介质。
技术介绍
随着短视频、直播以及AI(ArtificialIntelligence,人工智能)技术的兴起,越来越多的应用和场景需要能够对视频进行实时处理和预览,例如多个视频拼接,添加滤镜、背景音、字幕等。而浏览器端从w3c(WorldWideWebConsortium,万维网联盟)规范到浏览器的具体实现,视频处理有比较大的局限性,目前实现实时处理和预览的技术以及缺陷主要包括:1.在原生video(视频)基础上,利用JavaScript操作Dom(DocumentObjectModel,文档对象模型)模拟视频处理预览效果;能力有限,仅能处理简单类图层叠加操作。2.原生video加canvas(画布),通过对图像的处理以及控制渲染频率实现视频实时处理和预览;模拟实现效果,无法精确到关键帧。3.服务端处理,将处理好的视频回传给浏览器端进行渲染;为保证实时性,对服务器性能以及带宽有极高的要求。因此,浏览器端要做到对视频进行处理并可实时预览需要突破目前浏览器原生的媒体技术的同时,要解决性能问题和保证稳定性。
技术实现思路
本申请提供了一种浏览器视频播放方法、装置以及计算机存储介质。本申请提供了一种浏览器视频播放方法,所述浏览器视频播放方法包括:创建主线程和子线程;由所述主线程缓冲视频数据;采用预设编译器将所述浏览器的代码语言编译为预设代码语言;由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染,以在所述浏览器播放渲染后的视频。通过上述方式,通过创建主线程和子线程,并由主线程和子线程分别独自工作,避免影响播放页面的流畅性;通过将浏览器的代码语言进行编译,扩展浏览器端的视频处理能力。其中,所述采用预设编码器将所述浏览器的代码语言编译为预设代码语言的步骤,包括:采用Emscripten编译器将所述浏览器的计算机程序、视频解码接口、图像处理接口以及音频处理接口的代码语言编译为WebAssembly。通过上述方式,通过将浏览器的C代码编译为WebAssembly,扩展浏览器端的视频处理能力。其中,所述主线程缓冲视频数据的步骤之前,所述浏览器视频播放方法包括:创建缓冲区,并基于所述视频的码率确定所述缓冲区的大小。通过上述方式,基于需要播放的视频的码流确认缓冲区的合适大小,避免缓冲区太大造成延迟,太小造成经常性卡顿、数据不连续的问题。其中,所述由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染的步骤,包括:所述子线程通过transferable接口引用传递所述主线程的视频数据。通过上述方式,子线程不需要直接缓冲视频数据,可以通过transferable接口来实现主线程的视频数据的引用传递,避免数据共享导致的性能消耗多、速度慢的性能问题。其中,所述采用Emscripten编译器将所述浏览器的计算机程序、视频解码接口、图像处理接口以及音频处理接口的代码语言编译为WebAssembly的步骤之前,所述浏览器视频播放方法还包括:基于用户输入的需求信息删除所述浏览器的计算机程序中的不必要程序代码。通过上述方式,根据用户输入的需求信息获悉用户需要的浏览器功能,从而分析出计算机程序中必要的程序以及不必要的程序,并将不必要的程序代码删除,以减小计算机程序编译后的体积。其中,所述由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染的步骤,包括:获取所述主线程缓冲的视频数据大小;判断所述缓冲的视频数据大小是否大于或等于预设视频数据量;在所述缓冲的视频数据大小大于或等于预设视频数据量的情况下,由所述子线程对所述视频数据进行渲染。通过上述方式,监控缓冲区缓冲的视频数据大小,在视频数据大小达到一定程度时,才开启解码和渲染工作,避免出现数据不连续、播放卡顿的问题。其中,所述由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染,以在所述浏览器播放渲染后的视频的步骤,包括:获取屏幕刷新频率;基于所述屏幕刷新频率确定视频渲染中的视频帧率。通过上述方式,匹配浏览器的屏幕刷新频率以及视频帧率,能够有效避免视频丢帧导致视频卡顿的问题。其中,所述浏览器视频播放方法还包括:所述子线程对所述视频数据中的音频进行渲染之前,将所述音频的时间戳发送到所述主线程;所述主线程获取所述视频数据中的视频画面的时间戳,并基于所述音频的时间戳对所述视频画面的时间戳进行对准。通过上述方式,提供一种音视频时钟同步的方法,保证了视频流和音频流的稳定输出,以及最终视频的呈现效果。本申请还提供了一种视频播放装置,所述视频播放装置包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的浏览器视频播放方法。本申请还提供了一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现如上述的浏览器视频播放方法。本申请还提供了一种视频播放装置,所述视频播放装置包括:创建模块,用于创建主线程和子线程;缓冲模块,用于在所述主线程缓冲视频数据;编译模块,用于采用预设编译器将所述浏览器的代码语言编译为预设代码语言;播放模块,用于在所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染,以在所述浏览器播放渲染后的视频。其中,编译模块,用于采用Emscripten编译器将所述浏览器的计算机程序、视频解码接口、图像处理接口以及音频处理接口的代码语言编译为WebAssembly。其中,缓冲模块,用于创建缓冲区,并基于所述视频的码率确定所述缓冲区的大小。其中,播放模块,用于在所述子线程通过transferable接口引用传递所述主线程的视频数据。其中,编译模块,用于基于用户输入的需求信息删除所述浏览器的计算机程序中的不必要程序代码。其中,播放模块,用于获取所述主线程缓冲的视频数据大小,判断所述缓冲的视频数据大小是否大于或等于预设视频数据量;并在所述缓冲的视频数据大小大于或等于预设视频数据量的情况下,在所述子线程对所述视频数据进行渲染。其中,播放模块,用于获取屏幕刷新频率,并基于所述屏幕刷新频率确定视频渲染中的视频帧率。其中,播放模块,用于在所述子线程对所述视频数据中的音频进行渲染之前,将所述音频的时间戳发送到所述主线程;并在所述主线程获取所述视频数据中的视频画面的时间戳,并基于所述音频的时间戳对所述视频画面的时间戳进行对准。本申请的有益效果是:视频播放装置创建主线程和子线程;由主线程缓冲视频数据;采用预设编译器将浏览器的代码语言编译为预设代码语言;由子线程基于预设代本文档来自技高网...

【技术保护点】
1.一种浏览器视频播放方法,其特征在于,所述浏览器视频播放方法包括:/n创建主线程和子线程;/n由所述主线程缓冲视频数据;/n采用预设编译器将所述浏览器的代码语言编译为预设代码语言;/n由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染,以在所述浏览器播放渲染后的视频。/n

【技术特征摘要】
1.一种浏览器视频播放方法,其特征在于,所述浏览器视频播放方法包括:
创建主线程和子线程;
由所述主线程缓冲视频数据;
采用预设编译器将所述浏览器的代码语言编译为预设代码语言;
由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染,以在所述浏览器播放渲染后的视频。


2.根据权利要求1所述的浏览器视频播放方法,其特征在于,
所述采用预设编码器将所述浏览器的代码语言编译为预设代码语言的步骤,包括:
采用Emscripten编译器将所述浏览器的计算机程序、视频解码接口、图像处理接口以及音频处理接口的代码语言编译为WebAssembly。


3.根据权利要求1或2所述的浏览器视频播放方法,其特征在于,
所述主线程缓冲视频数据的步骤之前,所述浏览器视频播放方法包括:
创建缓冲区,并基于所述视频的码率确定所述缓冲区的大小。


4.根据权利要求1-3任一项所述的浏览器视频播放方法,其特征在于,
所述由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染的步骤,包括:
所述子线程通过transferable接口引用传递所述主线程的视频数据。


5.根据权利要求2所述的浏览器视频播放方法,其特征在于,
所述采用Emscripten编译器将所述浏览器的计算机程序、视频解码接口、图像处理接口以及音频处理接口的代码语言编译为WebAssembly的步骤之前,所述浏览器视频播放方法还包括:
基于用户输入的需求信息删除所述浏览器的计算机程序中的不必要程序代码。


6.根据权利要求1-5任一项所述的浏览器视频播放方法,其特征在于,
所述由所述子线程基于所述预设代码语言对所述视频数据进行解码和渲染的步骤,包括:
获取...

【专利技术属性】
技术研发人员:罗洪运张子兵刘琳吴军江訢华
申请(专利权)人:深圳市商汤科技有限公司
类型:发明
国别省市:广东;44

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

1