CN114302176B - 视频播放方法及装置 - Google Patents

视频播放方法及装置 Download PDF

Info

Publication number
CN114302176B
CN114302176B CN202111466742.XA CN202111466742A CN114302176B CN 114302176 B CN114302176 B CN 114302176B CN 202111466742 A CN202111466742 A CN 202111466742A CN 114302176 B CN114302176 B CN 114302176B
Authority
CN
China
Prior art keywords
decoding
video data
browser
library
information
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.)
Active
Application number
CN202111466742.XA
Other languages
English (en)
Other versions
CN114302176A (zh
Inventor
曾慧娟
韩钢标
梅文龙
童彬彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202111466742.XA priority Critical patent/CN114302176B/zh
Publication of CN114302176A publication Critical patent/CN114302176A/zh
Application granted granted Critical
Publication of CN114302176B publication Critical patent/CN114302176B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请提供一种视频播放方法及装置,能够解决现有浏览器播放视频数据需要频繁下载或更新解码库,操作繁琐,从而影响用户体验的技术问题,可应用于视频数据播放系统中。该方法包括:向网络设备发送浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。接收来自网络设备的第一解码信息;第一解码信息根据浏览器的能力信息,以及终端设备请求的视频数据的编码格式确定。接收来自网络设备的视频数据。根据第一解码信息对视频数据进行解码,并在浏览器上播放。

Description

视频播放方法及装置
技术领域
本申请涉及视频播放领域,尤其涉及一种视频播放方法及装置。
背景技术
随着移动网络的发展,用户可以通过浏览器来观看视频数据。具体地,用户可以通过浏览器访问视频数据的地址连接,以便在浏览器的可视化界面上播放该视频数据。
然而,现有不同操作系统下的浏览器差异较大,相同操作系统下不同版本的浏览器之间差异也较大,存在浏览器对视频数据的解码能力不足,需要用户下载插件方能实现播放。并且,不同来源的视频数据的编码格式往往不同,这就需要用户频繁下载各种编码方式对应的插件,和/或,更新已有插件的版本,操作繁琐,用户体验较差。此外,还可能存在插件与浏览器不匹配的问题,从而导致视频数据无法播放或播放效果很差。
发明内容
本申请提供一种视频播放方法及装置,可以解决现有浏览器播放视频数据需要频繁下载或更新插件,操作繁琐,从而影响用户体验,以及浏览器与插件不匹配引起的视频数据无法播放或播放效果差的技术问题。
本申请实施例的技术方案如下:
第一方面,提供一种视频播放方法。该方法包括:向网络设备发送浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。接收来自网络设备的第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定。接收来自网络设备的视频数据。根据第一解码信息对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,第一解码信息包括目标解码库。相应地,第一方面所述的方法还包括:根据第一解码信息,为浏览器加载目标解码库。其中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码,当视频数据的编码格式为H.264时,通过MSE解码方式对视频数据进行解码;当视频数据的编码格式不是H.264时,通过目标解码库对视频数据进行解码。
可选地,在接收来自网络设备的视频数据之前,第一方面所述的方法还包括:接收来自网络设备的第二解码信息,并根据所述第二解码信息,确定解码所述视频数据的解码方式。其中,第二解码信息包括视频数据的封装格式,和/或,编码格式。
可选地,第二解码信息可以承载于会话描述协议信元中。
第二方面,提供一种视频播放方法。该方法包括:接收来自终端设备的浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。向终端设备发送第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定。向终端设备发送视频数据;第一解码信息用于终端设备对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,第一解码信息包括目标解码库,目标解码库是根据浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,目标解码库是根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库。
可选地,在向终端设备发送视频数据之前,第二方面所述的方法还包括:向终端设备发送第二解码信息;第二解码信息包括视频数据的封装格式,和/或,编码格式,第二解码信息用于终端设备确定解码视频数据的解码方式。
第三方面,提供一种视频播放方法。该方法包括:获取浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。根据浏览器的能力信息,向网络设备获取目标解码库。接收网络设备发送的第三解码信息,第三解码信息根据终端设备请求的视频数据的编码格式确定。接收来自网络设备的视频数据,根据第三解码信息对视频数据进行解码,并在浏览器上播放。
第四方面,提供一种视频播放装置,该装置包括:收发模块和处理模块。其中,收发模块,用于向网络设备发送浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。收发模块,还用于接收来自网络设备的第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定。收发模块,还用于接收来自网络设备的视频数据。处理模块,用于根据第一解码信息对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,第一解码信息包括目标解码库。相应地,第一方面所述的方法还包括:根据第一解码信息,为浏览器加载目标解码库。其中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码,当视频数据的编码格式为H.264时,通过MSE解码方式对视频数据进行解码;当视频数据的编码格式不是H.264时,通过目标解码库对视频数据进行解码。
可选地,收发模块,还用于在接收来自网络设备的视频数据之前,接收来自网络设备的第二解码信息。其中,第二解码信息包括视频数据的封装格式,和/或,编码格式。处理模块,还用于并根据所述第二解码信息,确定解码所述视频数据的解码方式。
可选地,第二解码信息可以承载于会话描述协议信元中。
可选地,上述收发模块可以包括接收模块和发送模块。其中,接收模块用于执行第四方面所述的视频播放装置的接收功能,发送模块用于执行第四方面所述的视频播放装置的发送功能。
可选地,第四方面所述的视频播放装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得该视频播放装置可以执行第一方面所述的视频播放方法。
需要说明的是,第四方面所述的视频播放装置可以是终端设备,如手机、平板等,也可以是可设置于终端设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备的装置,本申请对此不做限定。
第五方面,提供一种视频播放装置,该装置包括:接收模块和发送模块。其中,接收模块,用于接收来自终端设备的浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。发送模块,用于向终端设备发送第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定。发送模块,还用于向终端设备发送视频数据;第一解码信息用于终端设备对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码。
可选地,第一解码信息包括目标解码库,目标解码库是根据浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,目标解码库是根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库。
可选地,发送模块,还用于在向终端设备发送视频数据之前,向终端设备发送第二解码信息;第二解码信息包括视频数据的封装格式,和/或,编码格式,第二解码信息用于终端设备确定解码视频数据的解码方式。
可选地,上述接收模块和发送模块也可以集成为收发模块。其中,收发模块用于执行第五方面所述的视频播放装置的收发功能。
可选地,第五方面所述的视频播放装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得该视频播放装置可以执行第二方面所述的视频播放方法。
需要说明的是,第五方面所述的视频播放装置可以是网络设备,如视频服务器,也可以是可设置于网络设备中的芯片(系统)或其他部件或组件,还可以是包含网络设备的装置,本申请对此不做限定。
第六方面,提供一种视频播放装置。该装置包括:处理模块和收发模块,其中,处理模块,用于获取浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。处理模块,还用于根据浏览器的能力信息,向网络设备获取目标解码库。收发模块,用于接收网络设备发送的第三解码信息,第三解码信息根据终端设备请求的视频数据的编码格式确定。收发模块,还用于接收来自网络设备的视频数据。处理模块,还用于根据第三解码信息对视频数据进行解码,并在浏览器上播放。
可选地,上述收发模块可以包括接收模块和发送模块。其中,接收模块用于执行第六方面所述的视频播放装置的接收功能,发送模块用于执行第六方面所述的视频播放装置的发送功能。
可选地,第六方面所述的视频播放装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得该视频播放装置可以执行第三方面所述的视频播放方法。
需要说明的是,第六方面所述的视频播放装置可以是终端设备,如手机、平板等,也可以是可设置于终端设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备的装置,本申请对此不做限定。
第七方面,提供一种电子设备。该电子设备包括:处理器,以及被配置为存储处理器可执行指令的存储器。其中,处理器被配置为执行指令,以实现如第一方面至第三方面中任一实现方式所述的视频播放方法。
在一种可能的设计方案中,第七方面所述的视频播放装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第七方面所述的视频播放装置与其他装置通信,如传输解码信息和视频数据。
在一种可能的设计方案中,第七方面所述的视频播放装置还可以包括存储器。该存储器可以与处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面至第三方面中任一方面所述的视频播放方法所涉及的计算机程序和/或数据。
可选地,该电子设备可以为终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
第八方面,提供一种视频播放系统。该系统包括终端设备和网络设备。其中,终端设备上安装有浏览器,该系统用于根据浏览器的能力和视频数据的编码格式,为浏览器加载解码库,并在浏览器上实时播放网络设备提供的视频数据。
第九方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备执行时,使得电子设备能够执行如第一方面至第三方面中任一种可能的实现方式所述的视频播放方法。
第十方面,提供一种计算机程序产品。该计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备能够执行如第一方面至第三方面中任一种可能的实现方式所述的视频播放方法。
本申请的实施例提供的技术方案至少带来以下有益效果:
基于上述任一方面,本申请中,网络设备或终端设备可以根据终端设备上安装的浏览器的解码能力和视频数据的编码格式,为浏览器加载对应的视频解码器,并在浏览器上实时播放网络设备提供的视频数据,从而实现基于浏览器的无插件自动播放视频数据,不需要频繁下载或更新能支持各种视频插件,也不需要频繁下载或更新各种专用视频播放客户端,所有操作均不需要用户参与,从而提升用户体验。
此外,针对用户每次想要播放的视频数据,只需要加载能够对视频数据进行解码,且与浏览器的能力相匹配的解码器,即可实现在浏览器上实时播放视频数据,不需要在终端设备本地预存可支持各种视频编码格式的多个解码器,可以节省终端设备的资源,从而提高终端设备的运行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1示出了本申请实施例提供的一种视频播放系统的架构示意图;
图2示出了本申请实施例提供的一种视频播放方法的流程示意图;
图3示出了本申请实施例提供的另一种视频播放方法的流程示意图;
图4示出了本申请实施例提供的一种视频播放装置的结构示意图;
图5示出了本申请实施例提供的另一种视频播放装置的结构示意图;
图6示出了本申请实施例提供的又一种视频播放装置的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
本申请所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
下面对本申请实施例所涉及的一些概念做解释说明。
无插件播放:通过集成Java脚本(java script,js)库的方式实现播放,不需要启动可执行(Executable,exe)播放进程或程序进行播放。
媒体源扩展(Media Source Extensions,MSE)解码:使用<video>标签,支持超文本标记语言(HyperText Markup Language 5,HTML5)的浏览器,无需插件即可播放媒体内容,但是对媒体内容的格式有所限制,只能支持H.264编码格式。此外,MSE解码可以启动图形处理器(Graphics Processing Unit,GPU)加速处理,但不能解码H.265格式的视频内容。
Wasm(WebAssembly):Wasm是一种高效的,低级别的编程语言,可以使用Java脚本以外的语言,如C,C++,Rust等语言编写程序,然后将其编译成WebAssembly,进而生成一个加载和执行速度更快的Web应用程序。Wasm具有运行高效、内存安全、无未定义行为和平台独立等特点,经过了编译器和标准化团队多年耕耘,目前已经有了成熟的社区。Wasm是实现H.265的关键技术,不需要插件即可播放视频,但是只能由中央处理器(CentralProcessing Unit,CPU)处理,需要占用CPU的硬件资源。
共享矩阵缓存(SharedArrayBuffer):是一个Java脚本的函数对象,用来表示一个通用的,固定长度的原始二进制数据缓冲区,用来在共享内存(shared memory)上创建视图。主要在多线程(multi-tread)解码时进行高效的数据共享。在chrome80+版本开始开放,但是在chrome92+版本开始严格限制了使用环境。可以适用于超文本传输安全协议(HyperText Transfer Protocol over Secure Socket Layer,https)和跨域隔离环境。该函数的应用可以采用多线程解码技术,可对分辨率高于1080P的视频码流进行解码。
单指令多数据流(Single Instruction Multiple Data,SIMD):能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。在chrome91+版本已经支持,对于软件解码,解码性能最少可提升30%。
Jsdecoder1.0:一种单线程解码库,不支持共享矩阵缓存,只支持work和webGL1.0。目前,几乎所有主流平台(如windows、Android、ios)上的浏览器均已支持,但是该解码库性能有限,只能对分辨率低于1080P的频偏进行解码,主要用于H.265解码。
Jsdecoder2.0:一种多线程解码库,可以支持work、webGL2.0和共享矩阵缓存。在一些高版本的浏览器下使用多线程解码,可解4K视频,主要用于H.265解码。
Jsdecoder3.0:一种多线程指令集解码库,可以支持work、webGL2.0、共享矩阵缓存和SIMD。在chrome92+版本进行支持,可解4K视频,相对多线程解码库可以降低约30%的CPU资源,主要用于H.265解码。
webGL:一种3D绘图标准,这种绘图技术标准允许把Java脚本和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个Java脚本绑定,WebGL可以为HTML5渲染(HTML5Canvas)提供硬件三维(3Dimensions,3D)加速渲染,这样Web开发人员就可以借助系统显卡,在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等。
离屏渲染(Offscreen Canvas):顾名思义为屏幕外的渲染,即渲染的结果不会直接呈现到当前屏幕上,而是等待合适的时机才会被显示出来。
正常情况下,在当前视频帧之后显示的内容,如当前播放的视频帧,由GPU渲染完成后放到当前帧的帧缓存区,不需要额外的渲染空间。例如,手机的屏幕刷新率是60赫兹(Hertz,Hz),也就是刷新一帧的时间是16.67毫秒(mili-second,ms),每隔这段时间视频控制器就会去读一次缓存区的内容并显示在屏幕上。
然而,假如GPU遇到性能瓶颈,导致无法在一帧内更新渲染结果到帧缓存区,那么从缓存区读到的会是上一帧的内容,导致帧率降低和界面卡顿。在此情况下,可以采用离屏渲染机制,触发比较消耗性能的视图提前渲染。具体地,可以在播放当前视频帧时,提前渲染下一个视频帧,当需要播放下一个视频帧时,直接读取下一个视频帧渲染后的数据,并在屏幕上显示出来即可,从而实现视频码流的流畅播放。
如背景技术中所述,现有浏览器虽然可以播放视频数据,但是解码能力不足,需要频繁下载或更新插件方能支持各种不同编码格式的视频数据进行播放,操作繁琐,用户体验很差。此外,还可能存在插件与浏览器的不匹配的问题,从而导致视频数据无法播放或播放效果很差。
为解决上述问题,本申请实施例提供一种视频播放方法,网络设备可以根据终端设备上安装的浏览器的解码能力和视频数据的编码格式,为浏览器加载对应的视频解码器,并在浏览器上实时播放网络设备提供的视频数据,从而实现基于浏览器的无插件自动播放视频数据,不需要频繁下载或更新各种视频解码插件,也不需要频繁下载或更新各种专用视频播放客户端,上述操作均不需要用户参与,从而提升用户体验。
此外,针对用户每次想要播放的视频数据,只需要加载能够对视频数据进行解码,且与浏览器的能力相匹配的一种解码器,即可实现在浏览器上实时播放该视频数据,不需要在终端设备本地预存可支持各种视频编码格式的多个解码器,可以节省终端设备的资源,从而提高终端设备的运行效率。
以下结合附图对本申请实施例提供的视频播放方法进行示例性说明。该方法可适用于图1中所示出的视频播放系统中,根据终端设备上安装的浏览器的能力和视频数据的编码格式,为浏览器加载对应的解码器,从而实现通过浏览器无插件实时播放视频数据。
图1示出了本申请实施例提供的一种视频播放系统示意图。如图1所示,该视频播放系统包括终端设备101和网络设备102,终端设备101可以通过有线或无线方式与网络设备102通信。
具体地,网络设备102可以根据终端设备101上报的浏览器的能力信息,以及终端设备请求的视频数据的编码格式,为终端设备101上安装的浏览器确定解码方式,然后,浏览器即可采用该解码方式,对视频数据进行实时解码播放,具体实现请参考下述图2中所示出的视频播放方法,此处不再赘述。
上述终端设备101可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、手持终端设备等可以安装并使用内容社区应用的设备,本申请对电子设备的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏等一种或多种方式进行人机交互。
上述网络设备102可以是视频服务器、游戏服务器等部署在网络侧的设备,为用户提供视频数据服务,如在线视频播放、网络游戏等。
下面结合图2和图3,详细说明可适用于图1中所示出的视频播放系统的视频播放方法。
一种可能的实施方式中,网络设备可以根据终端设备上报的终端设备上安装的浏览器的解码能力,为终端设备加载合适的解码器,具体实现请参考下述图2中所示出的视频解码方法。
另一种可能的实施方式中,终端设备也可以根据终端设备上安装的浏览器的解码能力,主动请求网络设备为浏览器加载合适的解码器,具体实现请参考下述图3中所示出的视频解码方法。
图2示出了本申请实施例提供的一种视频播放方法的流程示意图,可适用于图1中所示出的视频播放系统中。如图2所示,该视频播放方法可以包括S201-S205。
S201,终端设备向网络设备发送浏览器的能力信息,网络设备接收来自终端设备的浏览器的能力信息。
其中,该浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。
一种可能的设计方案中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码。其中,MSE解码用于H.264格式的视频数据的解码,解码库解码是指基于Java脚本库的解码方式,用于非H.264格式(如H.265)的视频数据的解码,可以包括如下不同版本:Jsdecoder1.0、Jsdecoder2.0、Jsdecoder3.0。关于MSE解码和不同版本的Java脚本库的实现方式,可以参见上文中的技术术语部分,此处不再赘述。
浏览器的能力信息可以配置在终端设备的本地缓存中,如配置在浏览器的安装目录内,终端设备可以读取浏览器的能力信息,并向网络设备上报。
可选地,终端设备可以主动向网络设备上报浏览器的能力信息。例如,终端设备可以在通过浏览器访问视频数据服务器提供的主页时,主动上报浏览器的能力信息。
或者,终端设备也可以在收到网络设备发送的能力信息获取请求后,再向网络设备上报浏览器的能力信息。例如,当用户点击浏览器显示上的视频数据的统一资源定位符(Uniform Resource Locator,URL)连接时,网络设备可以向终端设备发送能力信息获取请求,终端设备收到该请求后上报浏览器的能力信息。
一种可能的实现方式中,终端设备可以上报浏览器的能力信息,网络设备直接解析即可。或者,终端设备也可以上报浏览器的名称和版本信息,网络设备根据终端设备上报的浏览器的名称和版本信息,查询浏览器的能力信息。此时,网络设备可以从本地缓存或从其他网络设备查询浏览器的能力信息。
具体地,可以通过终端设备与网络设备之间的接口,如websocket通道,采用有线或无线方式传输浏览器的能力信息或版本信息。
S202,网络设备确定第一解码信息。
具体地,网络设备可以根据浏览器的能力信息确定第一解码信息,或者,网络设备可以根据浏览器的能力信息和终端设备请求的视频数据的编码格式,确定第一解码信息。
终端设备可以向网络设备发送获取视频数据的请求,网络设备可以根据该请求确定视频数据的编码格式。一种可能的实现方式中,终端设备发送的获取视频数据的请求中可以携带视频源设备信息(例如摄像机标识),网络设备根据该请求,可以通过查询配置文件或数据库确定该视频源设备信息对应的视频数据的编码格式,也可以向视频源设备获取视频数据的编码格式。
一种可能的设计方案中,第一解码信息包括目标解码库,目标解码库是根据浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,目标解码库是根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库。
可选地,若视频数据的编码格式为H.264,且浏览器也支持H.264,则为浏览器加载的解码方式可以为MSE解码。
或者,可选地,若视频数据的编码格式不是H.264,如为H.265,且浏览器也支持H.265,则为浏览器加载的解码方式为解码库。
进一步地,解码库有多个版本,如上述Jsdecoder1.0、Jsdecoder2.0、Jsdecoder3.0,则为浏览器加载的目标解码库为浏览器支持,且版本号最高的解码库。例如,终端设备的浏览器支持Jsdecoder1.0、Jsdecoder2.0和Jsdecoder3.0,则为浏览器加载的目标解码库为Jsdecoder3.0。又例如,终端设备的浏览器支持Jsdecoder1.0和Jsdecoder2.0,不支持Jsdecoder3.0,则为浏览器加载的目标解码库为Jsdecoder2.0。
通常而言,版本更高的解码器的播放效果更好,且可以兼容低版本解码库,因此,可以优先为浏览器加载该浏览器所能支持的最高版本的解码库,以尽可能确保视频数据的播放效果。
S203,网络设备向终端设备发送第一解码信息,终端设备接收来自网络设备的第一解码信息。
具体地,可以通过网络设备与终端设备之间的接口,如websocket通道,采用有线或无线方式传输第一解码信息,终端设备可以根据第一解码信息完成浏览器的配置,如加载第一解码信息对应的视频解码器,从而为接收和播放视频数据做好准备。如此,可以先于视频数据传输第一解码信息,并为浏览器加载第一解码信息对应的视频解码器,则当视频数据到来时即可解码和播放,以降低视频数据的解码处理时延,从而提升播放效果。
S204,网络设备向终端设备发送视频数据,终端设备接收来自网络设备的视频数据。
具体地,可以通过网络设备与终端设备之间的接口,如websocket通道,采用有线或无线方式传输视频数据。该视频数据可以采用视频码流的方式传输,以便通过浏览器对来自网络设备的视频数据进行接收、解码和播放。
可选地,在执行S204之前,图2中所示出的方法还包括如下步骤:
步骤1,网络设备根据能力信息和终端设备请求的视频数据的编码格式,确定第二解码信息。
步骤2,网络设备向终端设备发送第二解码信息,终端设备接收来自网络设备的第二解码信息。
其中,第二解码信息包括视频数据的封装格式,和/或,编码格式,第二解码信息用于终端设备确定解码视频数据的解码方式。以视频数据的数据包为例,封装格式是指视频数据的封装信息的数据格式,编码格式是指是指视频数据包的数据部分,即净荷(payload)的编码格式。
具体地,网络设备可以根据视频数据包的编码格式来确定封装格式,且与浏览器的解码能力相匹配。例如,若视频数据码流是H.264格式的,则封装信息也可以转为流媒体格式(FlashVideo,flv),以节省封装资源(flv封装格式占用的资源少于H.264封装格式占用的资源),从而提高传输效率和播放效果。又例如,若视频数据码流是H.265格式的,则封装信息可以采用如下之一的封装格式:程序流或节目流(Program Stream,ps)、实时传输协议(Real-time Transport Protocol,RTP)、或第三方私有。
需要说明的是,视频数据的封装格式可以与编码格式相同,也可以不同。当视频数据的封装格式可以与编码格式不同时,可以理解为:对视频数据的封装格式进行转格式,以方便数据传输,如可以占用更少的封装资源,以提高传输效率,而对视频数据的净荷保持原编码格式,以确保视频数据的高清播放。
本领域技术人员应当理解,本申请实施例对于S202-S203与步骤1-步骤2的执行顺序不做限定。具体地,步骤1-步骤2可以在S202-S203之前执行,也可以在S202-S203之后执行,还可以交替执行,如按照S202、步骤1、S203、步骤2的顺序执行,或者按照步骤1、S202、步骤2、S203的顺序执行,只要都能在执行S204之前执行完毕即可。
可选地,上述第一解码信息和第二解码信息可以单独传输,也可以一起传输。例如,可以在一条消息中传输第一解码信息,且在另一条消息中传输第二解码信息。又例如,可以在同一条消息中传输第一解码信息和第二解码信息。本申请实施例对此不予限制。
进一步地,当第一解码信息和第二解码信息分开传输时,第二解码信息可以承载于会话描述协议(Session Description Protocol,SDP)信元(Information Element,IE)中。
S205,终端设备根据第一解码信息对视频数据进行解码,并在浏览器上播放。
具体地,终端设备可以根据第一解码信息和第二解码信息,对视频数据进行解封装,一级对解封装得到的净荷进行解码。例如,flv、RTP等H.264格式可以采用MSE解码,其他格式可以采用解码库解码,如jsdecoder1.0、jsdecoder2.0、或jsdecoder3.0中的一个。
解码成功后,即可在浏览器的显示界面上实时播放解码后的视频数据,以方便用户观看。
需要说明的是,由于第二解码信息包括视频数据的封装格式和/或编码格式,且预先为浏览器加载了与浏览器的解码能力相匹配的目标解码库,浏览器可以直接对接收的视频数据进行解码,不需要盲检,可以大幅降低视频数据的解码时延,从而提高解码效率,且可以满足时延敏感场景,如帧率为25帧/秒(Frames per Second,FPS)的视频数据解码/播放需求,从而提升用户观看体验。
进一步地,在播放开始前,用户可以通过浏览器的显示界面预览视频数据(延时和首屏控制在1s内),或者,在播放过程中,用户也可以通过浏览器的显示界面,调用Java脚本接口进行视频剪辑、抓图等操作,以及控制播放方式,如回放、暂停、倍速(快进、快退),以满足大部分应用场景的需求,如安防监控、在线视频点播、在线游戏等。
需要说明的是,网络设备可以是一个,也可以是多个。以网络设备包括网络设备1和网络设备2为例,网络设备1可以用于接收终端设备上报的浏览器的能力信息,确定第一解码信息和第二解码信息,并发送给终端设备,以便终端设备为浏览器加载解码器;而网络设备2用于根据与第一解码信息和第二解码信息对应的编码信息,为网络视频执行编码操作,并将编码后的网络视频码流发送给终端设备。相应地,终端设备的浏览器可以使用加载的解码器,对来自网络设备2的网络视频码流进行解码操作,并将解码后的网络视频码流在浏览器上播放出来,以供用户观看。
图3示出了本申请实施例提供的一种视频播放方法的流程示意图,可适用于图1中所示出的视频播放系统中。如图3所示,该视频播放方法可以包括S301-S305。
S301,终端设备获取浏览器的能力信息。
其中,浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。
具体实现方式可以参考S201,此处不再赘述。
S302,终端设备根据浏览器的能力信息,向网络设备获取目标解码库。
具体地,终端设备可以根据浏览器的能力信息,自行确定需要为浏览器加载的目标解码库,如确定目标解码库的名称和版本号,并请求网络设备为浏览器加载目标解码库。
换言之,终端设备可以自行确定目标解码库,并请求网络设备为浏览器加载终端设备指定的目标解码库的,不需要向网络设备发送浏览器的解码能力。
关于根据浏览器的能力信息确定需要为浏览器加载的目标解码库的具体实现方式,可以参考上述S202中的相关内容,此处不再赘述。
S303,终端设备接收网络设备发送的第三解码信息。
其中,第三解码信息根据终端设备请求的视频数据的编码格式确定。
终端设备可以向网络设备发送获取视频数据的请求,网络设备可以根据该请求确定视频数据的编码格式。
一种可能的实现方式中,终端设备发送的获取视频数据的请求中可以携带视频源设备信息(例如摄像机标识),网络设备根据该请求,可以通过查询配置文件或数据库确定该视频源设备信息对应的视频数据的编码格式,也可以向视频源设备获取视频数据的编码格式,然后网络设备根据视频数据的编码格式确定第三解码信息。
第三解码信息包括视频数据的封装格式,和/或编码格式,用于确定视频数据的解码方式。具体实现可以参考上述S204中第二解码信息的相关内容,此处不再赘述。
S304,终端设备接收来自网络设备的视频数据。
具体实现可以参考上述S204中与视频数据传输相关的内容,此处不再赘述。
S305,终端设备根据第三解码信息对视频数据进行解码,并在浏览器上播放。
具体实现可以参考上述S205中与视频数据解码播放相关的内容,此处不再赘述。
基于图2或图3中所示出的视频播放方法,网络设备或终端设备可以根据终端设备上安装的浏览器的解码能力和视频数据的编码格式,为浏览器加载对应的视频解码器,并在浏览器上实时播放网络设备提供的视频数据,从而实现基于浏览器的无插件自动播放视频数据,不需要频繁下载或更新能支持各种视频解码插件,所有操作均不需要用户参与,从而提升用户体验。
此外,针对用户每次想要播放的视频数据,只需要加载能够对视频数据进行解码,且与浏览器的能力相匹配的解码器,即可实现在浏览器上实时播放该视频数据,不需要在终端设备本地预存可支持各种视频编码格式的多个解码器,可以节省终端设备的资源,从而提高终端设备的运行效率。
可以理解的,在实际实施时,本申请实施例所述的电子设备可以包含有用于实现前述对应视频播放方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成物理设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
基于这样的理解,本申请实施例还对应提供一种视频播放装置,图4示出了本申请实施例提供的一种视频播放装置的结构示意图。如图4所示,视频播放装置40可以包括:收发模块401和处理模块402。
一些实施例中,视频播放装置40可适用于图1中所示出的视频播放系统,执行图3中所示出的终端设备的功能。
其中,处理模块402,用于获取浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式;
处理模块402,还用于根据浏览器的能力信息,向网络设备获取目标解码库;
收发模块401,用于接收网络设备发送的第三解码信息,第三解码信息根据终端设备请求的视频数据的编码格式确定;
收发模块401,还用于接收来自网络设备的视频数据;
处理模块402,还用于根据第三解码信息对视频数据进行解码,并在浏览器上播放。
另一些实施例中,视频播放装置40可适用于图1中所示出的视频播放系统,执行图2中所示出的终端设备的功能。
其中,收发模块401,用于向网络设备发送浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式;
收发模块401,还用于接收来自网络设备的第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定;
收发模块401,还用于接收来自网络设备的视频数据;
处理模块402,用于根据第一解码信息对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,第一解码信息包括目标解码库。相应地,处理模块402,还用于根据第一解码信息,为浏览器加载目标解码库。其中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码,当视频数据的编码格式为H.264时,通过MSE解码方式对视频数据进行解码;当视频数据的编码格式不是H.264时,通过目标解码库对视频数据进行解码。
可选地,收发模块401,还用于在接收来自网络设备的视频数据之前,接收来自网络设备的第二解码信息;第二解码信息包括视频数据的封装格式,和/或,编码格式。相应地,处理模块402,还用于并根据所述第二解码信息,确定解码所述视频数据的解码方式。
可选地,上述收发模块401可以包括接收模块和发送模块(图4中未示出)。其中,接收模块用于执行视频播放装置40的接收功能,发送模块用于执行视频播放装置40的发送功能。
可选地,视频播放装置40还可以包括存储模块(图4中未示出),该存储模块存储有程序或指令。当处理模块402执行该程序或指令时,使得视频播放装置40可以执行图2中所示出的视频播放方法。
需要说明的是,视频播放装置40可以是终端设备,如手机、平板等,也可以是可设置于终端设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备的装置,本申请对此不做限定。
本申请实施例还提供另一种视频播放装置。图5示出了本申请实施例提供的另一种视频播放装置的结构示意图。如图5所示,该视频播放装置50可以包括:接收模块501和发送模块502。该视频播放装置50可适用于图1中所示出的视频播放系统,执行图2中所示出的网络设备的功能。
其中,接收模块501,用于接收来自终端设备的浏览器的能力信息;浏览器安装在终端设备上,能力信息指示浏览器支持的解码方式。发送模块502,用于向终端设备发送第一解码信息;第一解码信息根据浏览器的能力信息确定,或者,第一解码信息根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定;
发送模块502,还用于向终端设备发送视频数据;第一解码信息用于终端设备对视频数据进行解码,并在浏览器上播放。
一种可能的设计方案中,浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码(Java脚本库)。
可选地,第一解码信息包括目标解码库,目标解码库是根据浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,目标解码库是根据浏览器的能力信息和终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库。
可选地,视频数据的编码格式为H.264,为浏览器加载的解码方式为MSE解码。
或者,可选地,视频数据的编码格式不是H.264,为浏览器加载的解码方式为解码库解码。
可选地,发送模块502,还用于在向终端设备发送视频数据之前,向终端设备发送第二解码信息;第二解码信息包括视频数据的封装格式和编码格式,视频数据的封装格式和编码格式用于对视频数据进行解码。
可选地,上述接收模块501和发送模块502也可以集成为收发模块(图5中未示出)。其中,收发模块用于执行视频播放装置50的收发功能。
可选地,视频播放装置50还可以包括处理模块503(图5中以虚线框示出)和存储模块(图5中未示出),该存储模块存储有程序或指令。当处理模块503执行该程序或指令时,使得视频播放装置50可以执行图2中所示出的视频播放方法。
需要说明的是,视频播放装置50可以是网络设备,如视频服务器,也可以是可设置于网络设备中的芯片(系统)或其他部件或组件,还可以是包含网络设备的装置,本申请对此不做限定。
如上所述,本申请实施例可以根据上述方法示例对视频播放装置进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个功能模块中。
关于上述实施例中的视频播放装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
图6是本申请提供的一种电子设备的结构示意图。如图6所示,该电子设备60可以包括至少一个处理器601,以及用于存储处理器可执行指令的存储器603。其中,处理器601被配置为执行存储器603中的指令,以实现图2中所示出的视频播放方法。
另外,电子设备60还可以包括通信总线602以及至少一个通信接口604。
处理器601可以是一个处理器(central processing units,CPU),微处理单元,专用集成电路(Application Specific Integrated Circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线602可包括一通路,在上述组件之间传送信息。
通信接口604,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN)等。
存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器603用于存储执行本申请方案的指令,并由处理器601来控制执行。处理器601用于执行存储器603中存储的指令,从而实现本申请方法实施例中的终端设备或网络设备的功能。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,电子设备60可以包括多个处理器,例如图6中的处理器601和处理器607。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,电子设备60还可以包括输出设备605和输入设备606。输出设备605和处理器601通信,可以以多种方式来显示信息。例如,输出设备605可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备606和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备606可以是鼠标、键盘、触摸屏设备或传感设备等。
需要说明的是,电子设备60可以为终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备60的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
另外,本申请实施例还提供一种计算机可读存储介质。该计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备执行时,使得电子设备能够执行图2中所示出的视频播放方法中终端设备或网络设备的功能。
以及,本申请实施例提供一种计算机程序产品。该计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备能够执行图2中所示出的视频播放方法中终端设备或网络设备的功能。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。

Claims (10)

1.一种视频播放方法,其特征在于,所述方法包括:
向网络设备发送浏览器的能力信息;所述浏览器安装在终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
接收来自所述网络设备的第一解码信息;所述第一解码信息包括目标解码库,所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
接收来自所述网络设备的所述视频数据;
根据所述第一解码信息为所述浏览器加载所述目标解码库;
当所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码,并在所述浏览器上播放;
当所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码,并在所述浏览器上播放。
2.根据权利要求1所述的视频播放方法,其特征在于,在所述接收来自所述网络设备的视频数据之前,所述方法还包括:
接收来自所述网络设备的第二解码信息;所述第二解码信息包括所述视频数据的封装格式,和/或,编码格式;
根据所述第二解码信息,确定解码所述视频数据的解码方式。
3.一种视频播放方法,其特征在于,所述方法包括:
接收来自终端设备的浏览器的能力信息;所述浏览器安装在所述终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
向所述终端设备发送第一解码信息;所述第一解码信息包括目标解码库,所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
向所述终端设备发送所述视频数据,使得所述终端设备在所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码,并在所述浏览器上播放;或者,使得所述终端设备在所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码,并在所述浏览器上播放。
4.根据权利要求3所述的视频播放方法,其特征在于,在所述向所述终端设备发送所述视频数据之前,所述方法还包括:
向所述终端设备发送第二解码信息;所述第二解码信息包括所述视频数据的封装格式,和/或,编码格式,所述第二解码信息用于所述终端设备确定解码所述视频数据的解码方式。
5.一种视频播放方法,其特征在于,所述方法包括:
获取浏览器的能力信息;所述浏览器安装在终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
根据所述浏览器的能力信息,向网络设备获取目标解码库,所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
接收所述网络设备发送的第三解码信息,所述第三解码信息根据所述终端设备请求的视频数据的编码格式确定;
接收来自所述网络设备的所述视频数据;
根据所述第三解码信息对所述视频数据进行解码,并在所述浏览器上播放;
所述根据所述第三解码信息对所述视频数据进行解码,包括:
当所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码;
当所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码。
6.一种视频播放装置,其特征在于,所述装置包括:收发模块和处理模块;其中,
所述收发模块,用于向网络设备发送浏览器的能力信息;所述浏览器安装在终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
所述收发模块,还用于接收来自所述网络设备的第一解码信息;所述第一解码信息包括目标解码库,所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
所述收发模块,还用于接收来自所述网络设备的所述视频数据;
所述处理模块,用于当所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码,并在所述浏览器上播放;
当所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码,并在所述浏览器上播放。
7.一种视频播放装置,其特征在于,所述装置包括:接收模块和发送模块;其中,
所述接收模块,用于接收来自终端设备的浏览器的能力信息;所述浏览器安装在所述终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
所述发送模块,用于向所述终端设备发送第一解码信息;所述第一解码信息包括目标解码库,所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
所述发送模块,还用于向所述终端设备发送所述视频数据,使得所述终端设备在所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码,并在所述浏览器上播放;或者,使得所述终端设备在所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码,并在所述浏览器上播放。
8.一种视频播放装置,其特征在于,包括:处理模块和收发模块;其中,
所述处理模块,用于获取浏览器的能力信息;所述浏览器安装在终端设备上,所述能力信息指示所述浏览器支持的解码方式;所述浏览器支持的解码方式包括如下一项或多项:媒体源扩展MSE解码、或解码库解码;
所述处理模块,还用于根据所述浏览器的能力信息,向网络设备获取目标解码库;所述目标解码库为根据所述浏览器的能力信息确定出的解码库中版本号最高的解码库,或者,所述目标解码库为根据所述浏览器的能力信息和所述终端设备请求的视频数据的编码格式确定出的解码库中版本号最高的解码库;
所述收发模块,用于接收所述网络设备发送的第三解码信息,所述第三解码信息根据所述终端设备请求的视频数据的编码格式确定;
所述收发模块,还用于接收来自所述网络设备的所述视频数据;
所述处理模块,还用于根据所述第三解码信息对所述视频数据进行解码,并在所述浏览器上播放;
所述处理模块具体用于,当所述视频数据的编码格式为H.264时,通过所述MSE解码方式对所述视频数据进行解码;当所述视频数据的编码格式不是H.264时,通过所述目标解码库对所述视频数据进行解码。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
被配置为存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-5中任一项所述的视频播放方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由电子设备执行时,使得所述电子设备能够执行如权利要求1-5中任一项所述的视频播放方法。
CN202111466742.XA 2021-12-03 2021-12-03 视频播放方法及装置 Active CN114302176B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111466742.XA CN114302176B (zh) 2021-12-03 2021-12-03 视频播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111466742.XA CN114302176B (zh) 2021-12-03 2021-12-03 视频播放方法及装置

Publications (2)

Publication Number Publication Date
CN114302176A CN114302176A (zh) 2022-04-08
CN114302176B true CN114302176B (zh) 2024-02-09

Family

ID=80966368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111466742.XA Active CN114302176B (zh) 2021-12-03 2021-12-03 视频播放方法及装置

Country Status (1)

Country Link
CN (1) CN114302176B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979775A (zh) * 2022-05-18 2022-08-30 北京达佳互联信息技术有限公司 视频解码方法、装置、电子设备及存储介质
CN114915807B (zh) * 2022-07-14 2022-12-13 飞狐信息技术(天津)有限公司 一种信息处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110007934A (ko) * 2009-07-17 2011-01-25 (주)엔텔스 멀티미디어 서비스를 위한 플랫폼, 스마트 카드 및 방법
CN104247364A (zh) * 2013-03-19 2014-12-24 华为技术有限公司 一种应用于远程桌面的视频传输方法及设备、系统
CN104581171A (zh) * 2013-10-15 2015-04-29 腾讯科技(深圳)有限公司 一种浏览器上播放视频的方法、装置及移动终端
CN104980788A (zh) * 2015-02-11 2015-10-14 腾讯科技(深圳)有限公司 视频解码方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110007934A (ko) * 2009-07-17 2011-01-25 (주)엔텔스 멀티미디어 서비스를 위한 플랫폼, 스마트 카드 및 방법
CN104247364A (zh) * 2013-03-19 2014-12-24 华为技术有限公司 一种应用于远程桌面的视频传输方法及设备、系统
CN104581171A (zh) * 2013-10-15 2015-04-29 腾讯科技(深圳)有限公司 一种浏览器上播放视频的方法、装置及移动终端
CN104980788A (zh) * 2015-02-11 2015-10-14 腾讯科技(深圳)有限公司 视频解码方法及装置

Also Published As

Publication number Publication date
CN114302176A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
US11687610B2 (en) Application remoting across a network using draw commands
US10579829B1 (en) Application remoting using network vector rendering
CN110324671B (zh) 网页视频播放方法及装置、电子设备及存储介质
CN109068153B (zh) 视频播放方法、装置和计算机可读存储介质
CN114302176B (zh) 视频播放方法及装置
US9542501B2 (en) System and method for presenting content in a client/server environment
US11683554B2 (en) Techniques for managing generation and rendering of user interfaces on client devices
US11016716B2 (en) Picture interface display method and apparatus according to jump protocol
CN112770188B (zh) 一种视频播放方法及装置
US8689099B1 (en) Cross-domain communication
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN111277869A (zh) 视频播放方法、装置、设备和存储介质
US11032683B2 (en) Method and apparatus for publishing cloud resource
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
WO2016207735A1 (en) A system and methods thereof for auto-playing video content on mobile devices
US20140229533A1 (en) Client-side network page generation
US8396920B1 (en) Clean URLs in web applications
CN114268796A (zh) 视频流处理的方法及装置
CN113094612A (zh) 客户端加载网页的方法、装置、电子设备及介质
CN115809056B (zh) 组件复用实现方法、装置和终端设备、可读存储介质
US11758016B2 (en) Hosted application as web widget toolkit
US11784887B1 (en) Bandwidth throttling
EP3872630B1 (en) Request processing method and apparatus, electronic device, and computer storage medium
CN113055714B (zh) 视频信息处理方法、装置、设备及存储介质
CN115801878A (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
GR01 Patent grant
GR01 Patent grant