System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及视频处理领域,尤其涉及一种视频播放方法、电子设备及计算机可读存储介质。
技术介绍
1、浏览器播放视频可以包括基于插件的视频播放方法和无插件化视频播放方法。由于不同浏览器的特性和接口不同,用于视频播放的插件存在无法兼容多个浏览器的问题,使得无插件化视频播放的应用广泛。
2、无插件化视频播放可以包括webassembly、html5视频标签、webrtc(web real-time communications,网页实时通信)等技术。然而,基于webassembly的wasm视频解码库完全依赖于cpu计算,对计算机性能要求极高,在解码高清视频时存在解码时间长、延迟大等问题;基于html5视频标签和webrtc技术的视频播放方案,均需要特定的视频转码服务器,方案设计难度高,对于诸如安防监控等追求简易高效的应用场景适配性较低。
技术实现思路
1、本申请实施例提供一种视频播放方法、电子设备及计算机可读存储介质,以解决无插件视频播放过程中视频解码难度高、解码效果差的问题。
2、第一方面,本申请实施例提供一种视频播放方法,包括:
3、通过浏览器与服务端建立基于超文本传输安全协议的第一通信连接;
4、根据第一通信连接与服务端建立基于全双工通信协议的第二通信连接,并接收服务端基于第二通信连接传输的视频流;
5、将视频流发送至音视频处理接口的视频解码器,并获取视频解码器输出的第一格式的视频帧;第一格式的视频帧为视频解码器对视频流解码
6、对第一格式的视频帧执行离屏渲染,得到第二格式的视频帧;
7、将第二格式的视频帧传给浏览器的画布对象,以显示视频画面。
8、在一种可能的实现方式中,根据第一通信连接与服务端建立基于全双工通信协议的第二通信连接包括:
9、通过第一通信连接,向服务端发送基于安全套接层的通信请求;
10、接收服务端发送的连接参数,并与服务端交换认证证书;
11、接收服务端发送的协议地址;
12、根据认证证书和协议地址与服务端建立基于全双工通信协议的第二通信连接。
13、在一种可能的实现方式中,将视频流发送至音视频处理接口的视频解码器,并获取视频解码器输出的第一格式的视频帧包括:
14、将视频流缓存到浏览器的视频帧缓冲区;
15、逐帧从视频帧缓冲区取出待解码视频帧,并识别待解码视频帧的帧类型;
16、根据待解码视频帧的帧类型对音视频处理接口的视频解码器执行初始化;
17、将待解码视频帧输入初始化后的视频解码器,并获取初始化后的视频解码器输出的第一格式的视频帧。
18、在一种可能的实现方式中,识别待解码视频帧的帧类型包括:
19、获取视频流中的码流私有头;
20、解析码流私有头,得到待解码视频帧的帧类型。
21、在一种可能的实现方式中,将待解码视频帧输入初始化后的视频解码器包括:
22、根据待解码视频帧的帧类型,获取视频解码器的初始化类型;
23、将待解码视频帧封装成与初始化类型对应的压缩图像数据块,并将压缩图像数据块输入初始化后的视频解码器。
24、在一种可能的实现方式中,第一格式的视频帧为rgb视频帧。
25、在一种可能的实现方式中,第二格式的视频帧为位图格式的视频帧。
26、在一种可能的实现方式中,还提供一种视频播放方法,包括:
27、浏览器主线程与服务端建立基于超文本传输安全协议的第一通信连接,并建立后台子线程;
28、后台子线程根据第一通信连接与服务端建立基于全双工通信协议的第二通信连接,并接收服务端基于第二通信连接传输的视频流;
29、后台子线程将视频流发送至音视频处理接口的视频解码器,并获取视频解码器输出的第一格式的视频帧;第一格式的视频帧为视频解码器对视频流解码得到;
30、后台子线程对第一格式的视频帧执行离屏渲染,得到第二格式的视频帧;
31、后台子线程将第二格式的视频帧传给浏览器主线程的画布对象,以显示视频画面。
32、第二方面,本申请提供一种电子设备,包括:
33、第一通信模块,用于通过浏览器与服务端建立基于超文本传输安全协议的第一通信连接;
34、第二通信模块,用于根据第一通信连接与服务端建立基于全双工通信协议的第二通信连接,并接收服务端基于第二通信连接传输的视频流;
35、解码模块,用于将视频流发送至音视频处理接口的视频解码器,并获取视频解码器输出的第一格式的视频帧;第一格式的视频帧为视频解码器对视频流解码得到;
36、渲染模块,用于对第一格式的视频帧执行离屏渲染,得到第二格式的视频帧;
37、传输模块,用于将第二格式的视频帧传给浏览器的画布对象,以显示视频画面。
38、第三方面,本申请提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器从存储器中调用并执行计算机程序时实现上述第一方面所述的视频播放方法的步骤。
39、第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中包括至少一个计算机指令,该计算机指令用于执行上述第一方面所述的视频播放方法的步骤。
40、通过本申请提供的技术方案,可以通过浏览器与服务端建立第一通信连接,根据第一通信连接可以继续与服务端建立全双工通信连接,并可以基于全双工通信连接接收服务端传输的视频流,将视频流送给浏览器中音视频处理接口的视频解码器以获得第一格式的视频帧,再对第一格式的视频帧执行离屏渲染后可以传给浏览器的画布对象进行播放,以显示视频流对应的画面。本实施例中可以由浏览器音视频处理接口的视频解码器利用计算机图形处理器对视频流硬解码,可降低视频解码对cpu的依赖,降低无插件化视频播放的难度,可提升无插件视频播放方案的解码能力和解码效果,从而提高视频播放的流畅性。
本文档来自技高网...【技术保护点】
1.一种视频播放方法,其特征在于,包括:
2.根据权利要求1所述的视频播放方法,其特征在于,所述根据所述第一通信连接与所述服务端建立基于全双工通信协议的第二通信连接包括:
3.根据权利要求1所述的视频播放方法,其特征在于,所述将所述视频流发送至音视频处理接口的视频解码器,并获取所述视频解码器输出的第一格式的视频帧包括:
4.根据权利要求3所述的视频播放方法,其特征在于,所述识别所述待解码视频帧的帧类型包括:
5.根据权利要求3所述的视频播放方法,其特征在于,所述将所述待解码视频帧输入初始化后的视频解码器包括:
6.根据权利要求1所述的视频播放方法,其特征在于,所述第一格式的视频帧为rgb视频帧。
7.根据权利要求1所述的视频播放方法,其特征在于,所述第二格式的视频帧为位图格式的视频帧。
8.一种视频播放方法,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括至少一个计算机指令,所述至少一个计算机指
...【技术特征摘要】
1.一种视频播放方法,其特征在于,包括:
2.根据权利要求1所述的视频播放方法,其特征在于,所述根据所述第一通信连接与所述服务端建立基于全双工通信协议的第二通信连接包括:
3.根据权利要求1所述的视频播放方法,其特征在于,所述将所述视频流发送至音视频处理接口的视频解码器,并获取所述视频解码器输出的第一格式的视频帧包括:
4.根据权利要求3所述的视频播放方法,其特征在于,所述识别所述待解码视频帧的帧类型包括:
5.根据权利要求3所述的视频播放方法,其特征在于,所述将所述待解码视频...
【专利技术属性】
技术研发人员:陈学义,李勇,方伟,
申请(专利权)人:浙江芯昇电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。