播放方式确定方法及装置与流程

文档序号:21319481发布日期:2020-06-30 20:50阅读:428来源:国知局
播放方式确定方法及装置与流程

本申请涉及计算机通信领域,尤其涉及一种播放方式确定方法及装置。



背景技术:

电子设备在通过浏览器播放流媒体数据时,通常需要下载插件,并通过下载的插件(如adobeflash插件)在浏览器上播放流媒体数据。

这种流媒体的播放方式会致使许多攻击者通过插件来对用户的电子设备进行攻击,所以通过插件实现流媒体数据在浏览器上进行播放并不是一种安全的播放方式。

为了解决上述问题,业界提出了多种不通过插件实现在浏览器上播放视频数据的播放方式,简称为无插件播放方式。但在现有无插件播放方式中,通常是在电子设备预先配置一种无插件播放方式,这使得该电子设备只能按照该无插件播放方式播放与该无插件播放方式匹配的流媒体数据,然而电子设备有可能获取到不同种类的流媒体数据,需要对不同种类的流媒体数据按照不同需求进行播放,因此,电子设备在获取到流媒体数据时,如何确定与该流媒体数据匹配的无插件播放方式就成为业界持续探讨的问题。



技术实现要素:

有鉴于此,本申请提供一种播放方式确定方法、装置、电子设备及存储介质,用于实现流媒体数据的播放方式的确定。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种播放方式确定方法,所述方法应用于电子设备,包括:

获取流媒体数据包;所述流媒体数据包至少携带了流媒体数据的编码格式、流媒体类型;所述流媒体类型至少包括视频媒体或者音视频媒体;

依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式。

可选的,所述流媒体数据包为所述电子设备在与服务端之间的连接建立成功后接收的第一个流媒体数据包;

在所述确定用于播放流媒体数据的无插件播放方式后,所述方法还包括:

记录所述连接的连接标识和所述无插件播放方式的对应关系;

在通过所述连接接收到所述第一个流媒体数据包之后的流媒体数据包时,根据所述对应关系确定所述连接对应的无插件播放方式,基于确定出的无插件播放方式播放所述第一个流媒体数据包之后的流媒体数据包。

可选的,所述依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式包括:

如果所述流媒体数据的编码格式为第一编码格式,则将与所述第一编码格式匹配的第一播放方式确定为所述无插件播放方式;

如果所述流媒体数据的编码格式为第二编码格式,则依据所述流媒体类型确定所述无插件播放方式。

可选的,所述第一编码格式至少包括h.265编码格式,所述第二编码格式至少包括h.264编码格式。

可选的,所述第一播放方式用于指示调用已编译的解码器对流媒体数据包中的流媒体数据进行解码和播放;

所述依据所述流媒体类型确定所述无插件播放方式,包括:

当所述流媒体类型为音视频媒体时,将用于播放音视频媒体的第二播放方式确定为所述无插件播放方式;所述第二播放方式用于指示若流媒体数据包为音频数据包,则指示调用已编译的解码器对该流媒体数据包中的音频数据进行解码和播放,若流媒体数据包为视频数据包,则指示调用所述电子设备的浏览器内置的视频标签对该流媒体数据包中的视频数据进行解码播放;

当所述流媒体类型为视频媒体时,将用于播放视频媒体的第三播放方式确定为所述无插件播放方式;所述第三播放方式用于指示调用所述电子设备的浏览器内置的视频标签对流媒体数据包中的流媒体数据进行解码播放。

可选的,所述已编译的解码器为已初始化的jsdecoder播放方式中的js解码器;所述jsdecoder播放方式是在采用所述第一播放方式或第二播放方式前被初始化的;

所述视频标签为已初始化的媒体源扩展mse播放方式中的所述浏览器内置的视频video标签;所述mse播放方式是在所述电子设备启动后被初始化的。

根据本申请的第二方面,提供一种播放方式确定装置,所述装置应用于电子设备,包括:

获取单元,用于获取流媒体数据包;所述流媒体数据包至少携带了流媒体数据的编码格式、流媒体类型;所述流媒体类型至少包括视频媒体或者音视频媒体;

确定单元,用于依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式。

可选的,所述流媒体数据包为所述电子设备在与服务端之间的连接建立成功后接收的第一个流媒体数据包;

所述装置还包括:

记录单元,用于在所述确定用于播放流媒体数据的无插件播放方式后,记录所述连接的连接标识和所述无插件播放方式的对应关系;

播放单元,用于在通过所述连接接收到所述第一个流媒体数据包之后的流媒体数据包时,根据所述对应关系确定所述连接对应的无插件播放方式,基于确定出的无插件播放方式播放所述第一个流媒体数据包之后的流媒体数据包。

可选的,所述确定单元,在依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式时,用于如果所述流媒体数据的编码格式为第一编码格式,则将与所述第一编码格式匹配的第一播放方式确定为所述无插件播放方式;如果所述流媒体数据的编码格式为第二编码格式,则依据所述流媒体类型确定所述无插件播放方式。

可选的,所述第一编码格式至少包括h.265编码格式,所述第二编码格式至少包括h.264编码格式。

可选的,所述第一播放方式用于指示调用已编译的解码器对流媒体数据包中的流媒体数据进行解码和播放;

所述确定单元,在依据所述流媒体类型确定所述无插件播放方式时,用于当所述流媒体类型为音视频媒体时,将用于播放音视频媒体的第二播放方式确定为所述无插件播放方式;所述第二播放方式用于指示若流媒体数据包为音频数据包,则指示调用已编译的解码器对该流媒体数据包中的音频数据进行解码和播放,若流媒体数据包为视频数据包,则指示调用所述电子设备的浏览器内置的视频标签对该流媒体数据包中的视频数据进行解码播放;当所述流媒体类型为视频媒体时,将用于播放视频媒体的第三播放方式确定为所述无插件播放方式;所述第三播放方式用于指示调用所述电子设备的浏览器内置的视频标签对流媒体数据包中的流媒体数据进行解码播放。

可选的,所述已编译的解码器为已初始化的jsdecoder播放方式中的js解码器;所述jsdecoder播放方式是在采用所述第一播放方式或第二播放方式前被初始化的;所述视频标签为已初始化的媒体源扩展mse播放方式中的所述浏览器内置的视频video标签;所述mse播放方式是在所述电子设备启动后被初始化的。

根据本申请的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使执行上述播放方式确定方法。

根据本申请的第四方面,提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行上述播放方式确定方法。

根据本申请提供一种计算机程序,计算机程序存储于机器可读存储介质,并且当处理器执行计算机程序时,促使处理器执行上述播放方式确定方法。

由上述描述可知,在本申请中,电子设备可基于获取到的流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定出用于播放流媒体数据的无插件播放方式,使得不同编码格式和流媒体类型的流媒体数据都可以找到与自身匹配的播放方式,从而实现了针对不同的流媒体数据,可以确定与获取到的流媒体数据相匹配的无插件播放方式。

附图说明

图1是本申请一示例性实施例示出的一种播放方式确定方法的组网架构示意图;

图2是本申请一示例性实施例示出的一种播放方式确定方法的流程图;

图3是本申请一示例性实施例示出的另一种播放方式确定方法的流程图;

图4是本申请一示例性实施例示出的一种电子设备的硬件结构图;

图5是本申请一示例性实施例示出的一种播放方式确定装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能执行术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

传统的浏览器由于无法对流媒体数据进行解码、渲染等,因此无法播放流媒体数据。当电子设备需要使用浏览器来播放流媒体数据时,电子设备需要先下载流媒体播放插件,如adobeflash(闪客)插件等。该流媒体播放插件起到了流媒体播放器的作用。进一步来说,流媒体播放插件可对流媒体数据进行解码、并渲染至浏览器上,从而实现了浏览器播放流媒体数据。这种需要插件完成在浏览器上播放流媒体数据的方式称为有插件播放方式。

由于流媒体播放插件通常是电子设备下载下来的,所以攻击者经常通过流媒体播放插件来攻击电子设备,所以这种有插件播放方式极为不安全。

为了解决有插件播放方式极为不安全的问题,业界提出了不通过插件实现浏览器上播放流媒体数据的播放方式,这种不通过插件实现浏览器上流媒体数据的播放方式被称之为无插件播放方式。

无插件播放方式可包括mse(mediasourceextensions,媒体源扩展)播放方式和jsdecoder(javascriptdecoder,javascript解码器)播放方式等。这里只是对无插件播放方式进行示例性地说明,不对其进行具体地限定。

但是,每种无插件播放方式只能播放与自身匹配的流媒体数据。比如,mse只支持编码格式为h.264格式的视频数据。jsdecoder播放方式虽然同时支持编码格式为h.264格式和h.265格式的视频数据,但是由于jsdecoder播放方式只支持300w分辨率,所以只能支持低分辨率的视频数据。

此外,电子设备上通常只配置一种无插件播放方式,这就使得这种无插件播放方式只能播放与该无插件播放方式适配的流媒体数据,因此大大限制了对于多种流媒体数据的播放。

有鉴于此,本申请提出一种播放方式确定方法,电子设备可基于获取到的流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定出用于播放流媒体数据的无插件播放方式,使得不同编码格式和流媒体类型的流媒体数据都可以找到与自身匹配的播放方式,从而实现了确定与获取到的流媒体数据匹配的无插件播放方式。

在介绍本申请提供的播放方式确定方法之前,先对本申请所涉及的概念进行详细地说明。

1)流媒体

流媒体是指执行流式传输的方式的媒体。流媒体类型可包括:视频媒体、音频媒体、音视频媒体等,这里只是对流媒体进行示例性地说明,不对该流媒体类型进行具体地限定。

其中,视频媒体是指只包含视频数据的媒体。比如,视频媒体可包括:无声电影、无声短视频、无声电视剧、无声直播、对交通卡口、小区等区域的监控录像等,这里只是对视频媒体进行示例性地说明,不对其进行具体地限定。

音频媒体是指只包含音频数据的媒体。比如,音频媒体可包括:一首歌曲,一段语音,语音通话等等。这里只是对音频媒体进行示例性地说明,不对其进行具体地限定。

音视频媒体是指既包含视频数据、又包含音频数据的媒体。比如,音视频媒体可包括:有声电影、电视剧、mv(musicvideo,音乐短片)、有声短视频、有声直播等等,这里只是对音视频媒体进行示例性地说明,不对其进行具体地限定。

2)流媒体数据包

通常服务端上储存有流媒体。当电子设备需要播放流媒体时,电子设备可与服务端建立连接,然后服务端通过该连接将该服务端上储存的流媒体发送给电子设备。

服务端在向电子设备发送流媒体时,服务端通常会将流媒体划分为多个流媒体数据包,并将多个流媒体数据包依次发送给电子设备。

3)mse播放方式

mse播放方式是一种无插件播放方式。mse播放方式是指:浏览器预置了video(视频)标签,浏览器内置的video标签可对流媒体数据进行解码、并将解码后的流媒体数据渲染到浏览器窗口上,从而实现了在浏览器上无插件播放流媒体数据。

在实现时,电子设备在接收到针对流媒体数据包时,可对流媒体数据包进行解析,获取该数据包携带的流媒体数据,并将获取到的流媒体数据发送给浏览器。浏览器可将流媒体数组装成nalu(一种流媒体数据格式)单元。然后,浏览器可将nalu单元转换为fmp4(fragmentedmobilepentium4,碎片化视频播放器)格式。浏览器可执行内置的video标签,以使得video标签可以对fmp4格式的nalu单元进行解码,并将解码后的nalu单元进行渲染,以实现播放该流媒体数据。

3)jsdecoder播放方式

jsdecoder方式是一种无插件播放方式。jsdecoder方式是指:在电子设备中创建独立于浏览器的js(javascript,一种浏览器脚本语言)解码器。js解码器可以对流媒体数据进行解码,并将解码后的流媒体数据渲染至该电子设备上的浏览器窗口上进行播放。

在实现时,电子设备在接收到服务端发送的流媒体数据包时,可以对该流媒体数据包进行解析,获取该流媒体数据包携带的流媒体数据。然后,浏览器可执行预配置的js解码器,以使得js解码器可对该流媒体数据进行解码,并可采用webgl(webgraphicslibrary,一种3d绘图标准)技术将该流媒体数据渲染到浏览器的窗口上,以实现该流媒体数据的播放。

在介绍完上述概念之后,下面对播放方式确定方法的组网架构进行介绍。

如图1所示,图1是本申请一示例性实施例示出的一种播放方式确定方法的组网架构示意图。

图1所示的组网中至少包括:服务端和电子设备。

服务端上储存有流媒体。当电子设备需要播放流媒体时,电子设备可与服务端建立连接,然后服务端通过该连接,将该流媒体的多个流媒体数据包依次发送给电子设备。

电子设备,用于接收服务端发送的流媒体数据包,并基于该流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定与该流媒体适配的播放方式,并通过确定出的播放方式依次播放服务端发送的流媒体数据包。

其中,上述服务端可包括:服务器、服务器集群,数据中心等等,这里只是对服务端进行示例性地说明,不对其进行具体地限定。

上述电子设备,可以是指可以联网且配置有浏览器的设备。比如该电子设备可以是计算机、手机、平板电脑、笔记本等等,这里只是对电子设备进行示例性地说明,不对其进行具体地限定。

下面对本申请提供的播放方式确定方法进行详细地说明。

参见图2,图2是本申请一示例性实施例示出的一种播放方式确定方法的流程图。该方法可应用在图1所述的电子设备中,可包括如下所示步骤。

步骤201:电子设备获取流媒体数据包;所述流媒体数据包至少携带了流媒体数据的编码格式、流媒体类型;所述流媒体类型至少包括视频媒体或者音视频媒体。

步骤202:电子设备依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式。

在获取流媒体数据包时,电子设备可以接收服务端发送的流媒体数据包。当然在实际应用中,电子设备还可采用其他方式来获取流媒体数据包,比如获取本地已缓存的流媒体数据包等。这里只是对获取流媒体数据包进行示例性地说明,不对其进行具体地限定。

在实现时,服务端可将本地储存的流媒体拆分为至少一个流媒体数据包。拆分出的每个流媒体数据包均至少包括流媒体数据,或者拆分出的第一个流媒体数据包只携带了流媒体属性(比如流媒体数据的编码格式和流媒体类型等属性信息),其他的流媒体数据包携带了流媒体数据等。这里不对其进行具体地限定。此外,服务端可与电子设备建立连接。然后,服务端通过该建立的连接将至少一个流媒体数据包依次发送给电子设备。

其中该连接可以是websocket(一种基于tcp的全双工通信协议)连接,这里只是对该连接进行示例性地说明,不对其进行具体地限定。

在一种可选的实现方式中,电子设备与服务端之间的连接建立成功后接收的第一个流媒体数据包携带了流媒体数据的编码格式和流媒体类型。

电子设备可基于该第一个流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定用于播放流媒体数据的无插件播放方式。在电子设备接收到该第一个流媒体数据包的后续数据包时,可以依据确定出无插件播放方式播放后续数据包。

下面介绍下“依据确定出无插件播放方式播放后续数据包”的过程。

在实现时,电子设备可在确定出无插件播放方式后,可记录用于接收第一流媒体数据包的连接的连接标识和无插件播放方式的对应关系。当然,电子设备还可分配用于播放该连接承载的流媒体数据的播放窗口,并保存该连接的连接标识和播放窗口的对应关系。

在电子设备通过该连接接收到第一个流媒体数据包之后的流媒体数据包时,根据连接标识和无插件播放方式的对应关系,确定所述连接对应的无插件播放方式,基于确定出的无插件播放方式播放所述第一个流媒体数据包之后的流媒体数据包。

在播放时,电子设备可根据连接标识与播放窗口的对应关系,确定出该连接对应的播放窗口,并通过确定出的播放窗口播放第一个流媒体数据包之后的流媒体数据包。

例如,假设服务端通过连接1向电子设备发送了10个流媒体数据包,分别为流媒体数据包1、流媒体数据包2、…、流媒体数据包10。流媒体数据包1中只携带了流媒体数据的编码格式和流媒体类型,流媒体数据包2至流媒体数据包10携带了流媒体数据。

电子设备可基于流媒体数据包1中携带了流媒体数据的编码格式和流媒体类型,确定无插件播放方式1。电子设备可记录连接1和无插件播放方式1的对应关系1。当然,电子设备可为连接1分配播放窗口1,并记录连接1和播放窗口1的对应关系2。

然后,当电子设备在接收到流媒体数据包2至流媒体数据包10时,电子设备可依据该对应关系1,确定连接1对应的无插件播放方式(即无插件播放方式1)。以及在对应关系2中,确定连接1对应的播放窗口1,并依据无插件播放方式1在播放窗口1中播放流媒体数据包2至流媒体数据包10。

这种播放方式的好处在于:电子设备在依据第一个流媒体数据包确定出播放方式后,对于后续流媒体数据包的流媒体数据可以直接利用确定出来的播放方式进行播放,使得各流媒体数据包的流媒体数据的播放速度更高,使得流媒体数据的播放更为连贯。

在另一种可选的实现方式中,服务端在与电子设备建立连接后,在发送流媒体数据包前,服务端可向电子设备发送一个用于进行测试的流媒体数据包(这里简称为流媒体数据的测试包)。该测试包携带了流媒体数据的编码格式和流媒体类型。

电子设备可基于该测试包携带的流媒体数据的编码格式和流媒体类型,确定用于播放该服务端发送至电子设备的流媒体数据的无插件播放方式。电子设备可以按照该无插件播放方式播放后续收到的该服务端发送至电子设备的流媒体数据包。

例如,服务端在与电子设备建立连接后,向电子设备发送测试包。该测试包中携带了由该服务端编码的流媒体数据的编码格式和流媒体类型。

电子设备可基于该测试包中携带的流媒体数据的编码格式和流媒体类型,确定用于播放该服务端发送至电子设备的流媒体数据的无插件播放方式,记录该无插件播放方式和该服务端与电子设备建立的连接的连接标识的对应关系。之后,服务端可以向电子设备发送流媒体数据包,例如,可以发送流媒体数据包1、流媒体数据包2、…、流媒体数据包10,电子设备基于确定出的无插件播放方式播放流媒体数据包1至流媒体数据包10中的流媒体数据。

其中,“基于确定出的无插件播放方式播放后续的流媒体数据包”的具体实现参见上文描述,这里不再赘述。

在另一种可选的实现方式中,服务端发送给电子设备的每个流媒体数据包均携带了流媒体数据的编码格式和流媒体类型。服务端在接收到任一一个流媒体数据包时,均基于该流媒体数据包携带的流媒体数据的编码格式和流媒体类型确定无插件播放方式,并基于无插件播放方式播放该流媒体数据包携带的数据,

例如,假设服务端向电子设备发送了10个流媒体数据包,分别为流媒体数据包1、流媒体数据包2、…、流媒体数据包10。

流媒体数据包1至流媒数据包10中的每个数据包均携带了编码格式和流媒体类型。

电子设备在接收到流媒体数据包1时,可以基于流媒体数据包1携带的编码格式和流媒体类型,确定无插件播放方式,并通过无插件播放方式播放流媒体数据包1中携带的流媒体数据。

电子设备在接收到流媒体数据包2时,可以基于流媒体数据包2携带的编码格式和流媒体类型,确定无插件播放方式,并通过无插件播放方式播放流媒体数据包2中携带的流媒体数据。

依次类推,电子设备在接收到流媒体数据包10时,可以基于流媒体数据包10携带的编码格式和流媒体类型,确定无插件播放方式,并通过无插件播放方式播放流媒体数据包10中携带的流媒体数据。

在另一种可选的实现方式中,服务端发送给电子设备的除第一个流媒体数据包外的任一流媒体数据包携带了编码格式和流媒体类型。

电子设备在通过连接接收该任一流媒体数据包之前的流媒体数据包时,先将该流媒体数据包缓存至与该连接对应的缓存空间中。在接收到该任一流媒体数据包时,依据该任一流媒体数据包携带的流媒体数据的编码格式以及流媒体类型,确定无插件播放方式。

电子设备可记录所述连接的连接标识和所述无插件播放方式的对应关系,以及电子设备还分配用于播放该连接承载的流媒体数据的播放窗口,并保存该连接的连接标识和播放窗口的对应关系。

然后,电子设备可播放已缓存的流媒体数据包中的流媒体数据、该任一流媒体数据包携带的流媒体数据以及该电子设备之后接收到的流媒体数据包携带的流媒体数据。

在实现时,当电子设备从缓存空间中获取到已缓存的流媒体数据包时,可在连接标识和所述无插件播放方式的对应关系,确定该缓存空间对应的连接所对应的无插件播放方式,以及在连接标识和播放窗口的对应关系中,确定该缓存空间对应的连接所对应的播放窗口。然后,电子设备可基于确定出的无插件播放方式在确定出的播放窗口中播放已缓存的流媒体数据包。

当电子设备通过连接接收到后续的流媒体数据包时,电子设备可在连接标识和所述无插件播放方式的对应关系,确定该连接对应的无插件播放方式,以及在连接标识和播放窗口的对应关系中,确定该连接对应的播放窗口。然后,电子设备可基于确定出的无插件播放方式在确定出的播放窗口中播放后续流媒体数据包。

例如,假设服务端通过连接1向电子设备发送了10个流媒体数据包,分别为流媒体数据包1、流媒体数据包2、…、流媒体数据包10。

假设,仅流媒体数据包5携带了流媒体数据的编码格式和流媒体类型。

电子设备在接收到流媒体数据包1至流媒体数据包4时,可以将流媒体数据包1至流媒体数据包4缓存至与连接1对应的缓存空间1中。

电子设备在通过连接1接收到流媒体数据包5时,可以依据流媒体数据包5携带的流媒体数据的编码格式和流媒体类型,确定无插件播放方式1。然后,电子设备可记录连接1和无插件播放方式1的对应关系1。此外,电子设备可分配播放窗口1,并记录连接1和播放窗口1的对应关系2。

然后,电子设备可依据无插件播放方式播放已缓存的流媒体数据包1至流媒体数据包4、流媒体数据包5。

在实现时,电子设备可在对应关系1中,确定缓存空间1对应的连接1所对应的无插件播放方式(即无插件播放方式1)、以及在对应关系2中,确定缓存空间1对应的连接1所对应的播放窗口(即播放窗口1)。然后,电子设备可基于无插件播放方式1在播放窗口1中播放流媒体数据包1至流媒体数据包4、流媒体数据包5。

当电子设备接收到流媒体数据包6至流媒体数据包10时,可以依据无插件播放方式播放流媒体数据包6至流媒体数据包10。

在实现时,电子设备可在对应关系1,确定该连接1对应的无插件播放方式1,以及在对应关系2中,确定该连接1对应的播放窗口1。然后,电子设备可基于确定出的无插件播放方式1在确定出的播放窗口1中播放流媒体数据包6至流媒体数据包10。

本申请不对“携带流媒体数据的编码格式和流媒体类型的数据包”、以及“依据无插件播放方式播放流媒体数据”进行具体地限定。

需要说明的是,上述流媒体数据包携带的流媒体数据的编码格式和流媒体类型是指该整个流媒体的流媒体数据的编码格式和流媒体类型。

例如,假设该流媒体为音视频媒体,则上述流媒体数据包携带的流媒体数据的编码格式为该流媒体的音频编码格式、视频编码格式,上述流媒体数据包携带的流媒体类型为音视频媒体。

再例如,假设该流媒体为视频媒体,则上述流媒体数据包携带的流媒体数据的编码格式为视频编码格式,上述流媒体数据包携带的流媒体类型为视频媒体。

下面通过步骤a至步骤c,具体介绍下“步骤202:依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式”

步骤a:电子设备可获取步骤201中的流媒体数据包中携带的流媒体数据的编码格式。

步骤b:如果流媒体数据的编码格式为第一编码格式,电子设备则将与所述第一编码格式匹配的第一播放方式确定为所述无插件播放方式。

在一种可选的实现方式中,上述第一编码格式可至少包括:h.265(一种视频编码格式)编码格式。当然,在实际应用中,上述第一编码格式也可以是其他编码格式。这里不对该第一编码格式进行具体地限定。

上述第一播放方式用于指示调用已编译的解码器对流媒体数据包中的流媒体数据进行解码和播放。

其中,已编译的解码器可包括:jsdecoder播放方式中的js解码器。当然,该已编译的解码器也可以是其他无插件播放方式中的解码器,这里只是对其进行示例性地说明,不对其进行具体地限定。

需要说明的是,当已编译的解码器为jsdecoder播放方式中的js解码器时,该第一播放方式用于指示jsdecoder播放方式。

当第一编码格式为h.265编码格式,第一播放方式用于指示jsdecoder播放方式时,电子设备可依据第一播放方式的指示,针对服务端发送的流媒体数据包,电子设备可采用jsdecoder播放方式播放该流媒体数据包中的流媒体数据。具体地,电子设备可对该流媒体数据包进行解析获取该流媒体数据包中的流媒体数据。然后,电子设备可运行js解码器,以使得js解码器对该流媒体数据进行解码,并将解码后的流媒体数据渲染至电子设备的浏览器窗口上,以播放该流媒体数据。

步骤c:如果所述流媒体数据的编码格式为第二编码格式,则依据所述流媒体类型确定所述无插件播放方式。

其中,第二编码格式至少包括h.264(一种视频编码格式)编码格式。在实际应用中,第二编码格式也是可以是其他编码格式,这里只是对第二编码格式进行示例性地说明,不对其进行具体地限定。

需要说明的是,上述第一编码格式和第二编码格式不同,本申请所述的第一播放方式、第二播放方式和第三播放方式也不相同。

下面通过步骤c1至步骤c2对步骤c中的“依据所述流媒体类型确定所述无插件播放方式”进行详细地介绍。

步骤c1:当所述流媒体类型为音视频媒体时,电子设备将用于播放音视频媒体的第二播放方式确定为所述无插件播放方式。

其中,第二播放方式用于指示若流媒体数据包为音频数据包,则指示调用已编译的解码器对该流媒体数据包中的音频数据进行解码和播放,若流媒体数据包为视频数据包,则指示调用所述电子设备的浏览器内置的视频标签对该流媒体数据包中的视频数据进行解码播放。

其中,上述已编译的解码器可包括:jsdecoder播放方式中的js解码器。当然,该已编译的解码器也可以是其他无插件播放方式中的解码器,这里只是对其进行示例性地说明,不对其进行具体地限定。

上述视频标签为mse播放方式中的所述浏览器内置的视频video标签。当然该视频标签也可以是浏览器内置的其他用于流媒体播放的标签,这里只是对其进行示例性地说明,不对其进行具体地限定。

需要说明的是,当已编译的解码器为jsdecoder播放方式中的js解码器时,表示采用jsdecoder播放方式进行播放。当上述视频标签为mse播放方式中的所述浏览器内置的视频video标签时,表示采用mse播放方式进行播放。

在实现时,在播放流媒体数据时,电子设备可以依据第二播放方式的指示,针对服务端发送的流媒体数据包,电子设备可对该流媒体数据包进行解析,确定该流媒体数据包的类型。若流媒体数据包为音频数据包,电子设备则调用jsdecoder播放方式播放该流媒体数据包中的音频数据。若流媒体数据包为视频数据包,电子设备则调用mse播放方式播放该流媒体数据包中的视频数据。

在调用jsdecoder播放方式播放该流媒体数据包中的音频数据时,电子设备可运行js解码器,该js解码器可对该音频数据进行解码,并播放该解码后的音频数据。

在mse播放方式播放该流媒体数据包中的视频数据,电子设备可将视频数据发送给电子设备上的浏览器。浏览器可运行内置的video标签,video标签可对该视频数据进行解码,并将解码后的视频数据渲染至浏览器的窗口。

这种播放方式的好处在于:mse播放方式只支持aac(advancedaudiocoding,高级音频编码)音频编码格式,而jsdecoder播放方式支持其他音频编码格式。所以,采用第二播放方式来播放音视频媒体,就可以播放各种音频编码格式的音视频媒体,大大增加了可播放的音视频媒体的种类;同时,由于采用了mse播放方式播放视频媒体,使得播放出的视频媒体的分辨率更高。

步骤c2:当所述流媒体类型为视频媒体时,电子设备将用于播放视频媒体的第三播放方式确定为所述无插件播放方式。

其中,第三播放方式用于指示调用所述电子设备的浏览器内置的视频标签对流媒体数据包中的流媒体数据进行解码播放。

其中,上述已编译的解码器可包括:jsdecoder播放方式中的js解码器。当然,该已编译的解码器也可以是其他无插件播放方式中的解码器,这里只是对其进行示例性地说明,不对其进行具体地限定。

需要说明的是,当已编译的解码器为jsdecoder播放方式中的js解码器时,表示采用jsdecoder播放方式进行播放

在实现时,第三播放方式用于指示电子设备针对服务端发送的流媒体数据包,采用mse播放方式播放该流媒体数据包携带的流媒体数据。具体地,电子设备可对流媒体数据包进行解析,获取该数据包携带的流媒体数据,并将获取到的流媒体数据发送给浏览器。浏览器可采用内置的video标签对该流媒体数据进行解码,并将解码后的流媒体数据渲染至浏览器的窗口进行播放。

第三中播放方式的好处在于,由于mse播放方式支持高分辨率的播放,所以对于编码格式既符合mse播放方式的视频媒体又符合jsdecoder播放方式的视频媒体,采用mse播放方式播放该视频媒体,使得播放出的视频媒体的分辨率更高。

由上述描述可知,电子设备通过接收到的流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定出用于播放流媒体数据的无插件播放方式,使得不同编码格式和流媒体类型的流媒体数据都可以找到与自身匹配的播放方式,从而实现了针对不同的流媒体数据,可以确定与该获取到的流媒体数据相匹配的无插件播放方式,以实现多种流媒体数据的播放。

例如,采用本申请提供的播放方法,既可以高分辨率地播放h.264编码格式的视频媒体,还能播放h.265编码格式的视频媒体,同时还可播放音频编码格式为各种格式的音视频媒体。

此外在本申请实施例中,由于mse播放方式在初始化后占用很小的资源,而jsdecoder播放方式在初始后占用很多的资源。所以,电子设备启动后,可预先初始化mse播放方式。在使用mse播放方式播放流媒体数据时,电子设备可直接调用mse播放方式播放流媒体数据。

而由于jsdecoder播放方式在初始后占用很多的资源,因此为了节约电子设备的资源,电子设备在使用jsdecoder播放方式播放流媒体数据时,可先初始化jsdecoder播放方式,然后再调用jsdecoder播放方式播放流媒体数据。

由上述描述可知,电子设备可基于接收到的流媒体数据包携带的流媒体数据的编码格式和流媒体类型,确定出用于播放流媒体数据的无插件播放方式,使得不同编码格式和流媒体类型的流媒体数据都可以找到与自身匹配的播放方式,从而实现了确定与获取到的流媒体数据匹配的无插件播放方式。

下面以第一编码格式为h.265编码格式,第二编码格式为h.264编码格式为例,对上述播放方法进行详细地说明。

参见图3,图3是本申请一示例性实施例示出的另一种播放方式确定方法的流程图,该方法可应用在电子设备上,可包括如下所示步骤。

步骤300:电子设备初始化mse播放方式。

步骤301:电子设备接收服务端与电子设备成功建立连接后发送的第一个流媒体数据包;第一个流媒体数据包携带了流媒体数据的编码格式和流媒体类型。

步骤302:电子设备检测流媒体数据的编码格式。

步骤303:若流媒体数据的编码格式为h.265编码格式,电子设备初始化jsdecoder播放方式,并确定无插件播放方式为第一播放方式,第一播放方式指示jsdecoder播放方式。

具体可参见上文步骤b中的描述,这里不再赘述。

步骤304:若流媒体数据的编码格式为h.264编码格式,电子设备启动mse播放方式。

步骤305:电子设备则检测流媒体类型。

步骤306:若流媒体类型为音视频媒体,电子设备确定无插件播放方式为第二播放方式,第二播放方式用于指示若流媒体数据包为音频数据包,则初始化jsdecoder播放方式,并调用已初始化的jsdecoder播放方式播放流媒体数据包中的音频数据,若该流媒体数据包为视频数据包,则调用已初始化的mse播放方式播放流媒体数据包中的视频数据。

具体可参见上文步骤c1中的描述,这里不再赘述。

步骤307:若流媒体类型为视频媒体,电子设备则确定无插件播放方式为第三播放方式,第三播放方式指示调用已初始化的mse播放方式。

具体可参见上文步骤c2中的描述,这里不再赘述。

参见图4,图4是本申请一示例性实施例示出的一种电子设备的硬件结构图。

该电子设备包括:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402和机器可读存储介质403通过总线404完成相互间的通信。处理器402通过读取并执行机器可读存储介质403中与播放方式确定控制逻辑对应的机器可执行指令,可执行上文描述的播放方式确定方法。

本文中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

此外,本申请还提供了与上述播放方式确定方法对应的播放方式确定装置。

参见图5,图5是本申请一示例性实施例示出的一种播放方式确定装置的框图。该装置可应用在电子设备上,可包括如下所示单元。

获取单元501,用于获取流媒体数据包;所述流媒体数据包至少携带了流媒体数据的编码格式、流媒体类型;所述流媒体类型至少包括视频媒体或者音视频媒体;

确定单元502,用于依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式。

可选的,所述流媒体数据包为所述电子设备在与服务端之间的连接建立成功后接收的第一个流媒体数据包;

记录单元503,用于在所述确定用于播放流媒体数据的无插件播放方式后,记录所述连接的连接标识和所述无插件播放方式的对应关系;

播放单元504,用于在通过所述连接接收到所述第一个流媒体数据包之后的流媒体数据包时,根据所述对应关系确定所述连接对应的无插件播放方式,基于确定出的无插件播放方式播放所述第一个流媒体数据包之后的流媒体数据包。

可选的,所述确定单元502,在依据所述流媒体数据的编码格式、所述流媒体类型,确定用于播放流媒体数据的无插件播放方式时,用于如果所述流媒体数据的编码格式为第一编码格式,则将与所述第一编码格式匹配的第一播放方式确定为所述无插件播放方式;如果所述流媒体数据的编码格式为第二编码格式,则依据所述流媒体类型确定所述无插件播放方式。

可选的,所述第一编码格式至少包括h.265编码格式,所述第二编码格式至少包括h.264编码格式。

可选的,所述第一播放方式用于指示调用已编译的解码器对流媒体数据包中的流媒体数据进行解码和播放;

所述确定单元502,在依据所述流媒体类型确定所述无插件播放方式时,用于当所述流媒体类型为音视频媒体时,将用于播放音视频媒体的第二播放方式确定为所述无插件播放方式;所述第二播放方式用于指示若流媒体数据包为音频数据包,则指示调用已编译的解码器对该流媒体数据包中的音频数据进行解码和播放,若流媒体数据包为视频数据包,则指示调用所述电子设备的浏览器内置的视频标签对该流媒体数据包中的视频数据进行解码播放;当所述流媒体类型为视频媒体时,将用于播放视频媒体的第三播放方式确定为所述无插件播放方式;所述第三播放方式用于指示调用所述电子设备的浏览器内置的视频标签对流媒体数据包中的流媒体数据进行解码播放。

可选的,所述已编译的解码器为已初始化的jsdecoder播放方式中的js解码器;所述jsdecoder播放方式是在采用所述第一播放方式或第二播放方式前被初始化的;所述视频标签为已初始化的媒体源扩展mse播放方式中的所述浏览器内置的视频video标签;所述mse播放方式是在所述电子设备启动后被初始化的。

此外,本申请还提供了一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行上述播放方式确定方法。

此外本申请还提供了一种计算机程序,计算机程序存储于机器可读存储介质,并且当处理器执行计算机程序时,促使处理器执行上述播放方式确定方法。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部方式来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1