本发明涉及桌面虚拟化的流媒体处理
技术领域:
,具体而言,涉及一种流媒体处理方法及装置。
背景技术:
:目前很多桌面虚拟化协议都只支持单一的流媒体重定向方式,从而无法适应多变的流媒体播放环境。使得用户的体验感较大程度的降低,还给用户带来了极大的不变。因此,如何解决上述问题是目前亟需解决的问题。技术实现要素:本发明提供一种流媒体处理方法及装置,旨在改善上述问题。第一方面,本发明提供的一种流媒体处理方法,所述方法包括获取基于默认播放模式播放的视频文件;基于预设静态配置策略,获取当前播放环境所支持的所有播放模式;当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设播放模式作为待播放模式;在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。第二方面,本发明提供的一种流媒体处理装置,所述装置包括数据获取单元,用于获取基于默认播放模式播放的视频文件;数据查找单元,用于当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设播放模式作为待播放模式;数据处理单元,用于基于预设静态配置策略,获取当前播放环境所支持的所有播放模式;检测单元,用于在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。上述本发明提供的一种流媒体处理方法及装置,本申请通过支持多种流媒体处理模式并将选择权开发给用户,使得用户可以选择更多的模式,通过模式选项过滤,可引导用户选择默认的播放模式,且通过实时获取当前播放环境可以进行动态调整播放模式,使得用户可以在播放视频时选择系统推荐的最优的播放模式进行播放视频文件。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本发明较佳实施例提供的一种电子设备的结构框图;图2为本发明第一实施例提供的一种流媒体处理方法的流程图;图3为本发明第二实施例提供的一种流媒体处理方法的流程图;图4为本发明第三实施例提供的一种流媒体处理装置的功能模块示意图;图5为本发明第四实施例提供的一种流媒体处理装置的功能模块示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,为本发明实施例提供的一种电子设备的结构框图。其中,所述电子设备200包括流媒体处理装置、存储器202、存储控制器203、处理器204、外设接口205、输入输出单元206、音频单元207、显示单元208。所述存储器202、存储控制器203、处理器204、外设接口205、输入输出单元206、音频单元207、显示单元208各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述流媒体处理装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器202中或固化在所述流媒体处理终端设备的操作系统(operatingsystem,OS)中的软件功能模块。所述处理器204用于执行存储器202中存储的可执行模块,例如所述流媒体处理装置包括的软件功能模块或计算机程序。其中,存储器202可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead-OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。其中,存储器202用于存储程序,所述处理器204在接收到执行指令后,执行所述程序。处理器204可能是一种集成电路芯片,具有信号的处理能力。上述的处理器204可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器204等。所述外设接口205将各种输入/输入装置耦合至处理器204以及存储器202。在一些实施例中,外设接口205、处理器204以及存储控制器203可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。输入输出单元206用于提供给用户输入数据实现用户与服务器或本地终端的交互。所述输入输出单元206可以是,但不限于,鼠标和键盘等。音频单元207用于向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。显示单元208在服务器(或本地终端)与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元208可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器204进行计算和处理。请参阅图2,是本发明第一实施例提供的一种流媒体处理方法的流程图。下面将对图2所示的具体流程进行详细阐述。步骤S301,获取基于默认播放模式播放的视频文件。其中,所述默认播放模式是预先设置好的,其中播放模式包括无缝体验模式、高清兼容模式、流畅兼容模式和精简兼容模式。其中,所述默认播放模式为精简兼容模式。在本实施例中,所述无缝体验模式、高清兼容模式、流畅兼容模式和精简兼容模式均是指用于播放视频文件的一种具体播放模式。在本实施例中,获取播放的视频文件是指基于所述默认播放模式下的播放文件,即通过精简兼容模式处理后的流媒体文件。步骤S302,基于预设静态配置策略,获取当前播放环境所支持的所有播放模式。其中,所述静态配置策略是指基于每个所述播放模式所对应的限制性条件对所有预设播放模式进行过滤。所述限制性条件为一组用于反映当前播放环境对应的软硬件情况的参数;获取过滤后的所有的所述播放模式作为当前播放环境所支持的所有播放模式。将所述当前播放环境所支持的所有播放模式所对应的预设模式开关选项进行标记,并对所述标记进行标注说明以引导用户进行播放模式选择。作为一种实施方式,预先对各个播放模式以及与每个播放模式所对应的开关选项进行过滤,并对过滤后得到的可使用的播放模式进行激活。例如在客户端进行加亮标注,并进行标注说明,以引导用户进行选择。例如,当用户选择无缝体验模式时,则告知用户,此模式下可提供流媒体的无缝体验,但只能使用指定的播放器类型。具体地,当用户将鼠标移动至对应播放模式时,则显示对此播放模式的说明,或是直接用文本的方式附加在播放模式后面。可以将无缝体验模式的优先级设为较高,具体为:如果用户选择开启无缝体验模式,则当检测流媒体播放时,如发现无缝体验模式方式可用,就会优先选择使用无缝体验模式。当发现虽然无缝体验模式开启,但无缝体验模式不可用,例如播放器不支持,则即使开启了无缝体验模式,依旧会选择其它的非重定向方式,即兼容模式组中的任意一种播放模式进行流媒体播放传输。当选择兼容模式组中的默认流媒体播放模式时,具体为:选择高清兼容模式、流畅兼容模式与精简兼容模式中的任意一项作为默认播放模式。当有流媒体播放,且无缝体验模式不可用时,则使用选择的默认流媒体播放模式对流媒体进行压缩传输。步骤S303,当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设模式作为待播放模式。其中,模式参数是指与播放模式所对应的一个值。其中,当用户输入模式参数时,根据用户输入的模式参数获取与模式参数所对应的播放模式。作为一种实施方式,当获取到用户所输入的模式参数后,根据预先设定的与所述模式参数所对应的播放模式,查找所述模式参数所对应的播放模式,从而将用户所输入的模式参数所对应的播放模式作为当前播放视频文件的播放模式。例如,表1示出了各个播放模式所对应的模式参数。表1播放模式模式参数无缝体验模式A高清兼容模式B流畅兼容模式C精简兼容模式D例如,当前播放模式为精简兼容模式,当用户通过用户终端上预设的按键或者是输入播放模式名称等方式输入模式参数时,当客户端或是服务端获取到用户所输入的模式参数后,根据用户输入的模式参数进行选择新的播放模式进行播放,从而使得用户能够进行多模式体验以及模式可选择等体验。例如,用户输入的模式参数为B,B所对应的播放模式为高清兼容模式,从而根据用户输入的B获取到与B对应的播放模式进行播放。其中,所述用户终端可以是键盘,也可以是遥控器等,在此不作具体限定。其中,预设限制条件是指对客户端和服务端的硬件条件。表2示出了各个模式所对应的限制性条件。表2其中,无缝体验模式对服务端硬件加速支持无要求,支持客户端硬件加速支持,对播放器有限制。高清兼容模式支持服务端硬件加速支持和支持客户端硬件加速支持,对播放器没有限制。流畅兼容模式支持服务端硬件加速支持和支持客户端硬件加速支持,对播放器没有限制。精简兼容模式不支持服务端硬件加速支持和不支持客户端硬件加速支持,对播放器没有限制。在本实施例中,所述满足预设限制条件是指所述待播放模式对服务端、客户端以及播放器的限制条件与预先设置的播放模式对服务端、客户端以及播放器的限制条件一致。作为一种实施方式,通过获取所述待播放模式的播放环境参数;当所述播放环境参数与预先设置的环境参数匹配时,基于所述待播放模式播放所述视频文件。其中,所述播放环境参数是指当前播放模式对服务端、客户端以及播放器的是否有要求。作为另一种实施方式,当没有获取到用户输入的模式参数时,基于所述默认播放模式播放所述视频文件。其中,所述没有获取到用户输入的模式参数是指用户没有进行模式选择,或者是输入参数有误,导致无法获取,或者是获取失败等。当用户输入的模式参数不满足预设限制条件时,生成提示信息并基于所述预设默认播放模式播放所述视频文件。其中,所述提示信息是指用于提示用户所输入的模式参数错误或者是当前播放环境不支持用户输入的模式参数所对应的播放模式的信息。其中可以是在客户端弹出提示框的方式显示提升信息,还可以是其他任意方式,在此不作具体限定。步骤S304,在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。其中,所述动态配置策略是指当所述播放情况满足预设条件时,基于预设算法获取当前环境下的候选播放模式。所述预设条件包括所述流媒体播放情况为卡顿且所述卡顿对应的原因向量中任意一个原因参数的布尔值为1,所述原因向量包括多个用布尔表达式表达的原因参数。若所述原因向量中的所有原因都未触发,即,所述原因向量中的所有原因参数的布尔值均为0时,则即使流媒体播放出现卡顿,也不满足预设条件。因为流媒体播放所造成的客户端/服务端CPU消耗比较难以进行定量统计。具体地,根据所述当前播放模式,查找预设动态决策表中的所有播放模式所对应的排名参数组,所述排名参数组包括用于表示服务端CPU消耗的第一排名参数、用于表示客户端CPU消耗的第二排名参数和用于表示网络带宽消耗的第三排名参数;将所述当前播放模式所对应的所述排名参数组中的各个参数分别与其他所述播放模式所对应的排名参数组中相对应的参数进行计算,获取所述候选播放模式。其中,预设动态决策表中存储有播放模式编号、播放模式、模式编码、模式需求编码、服务端CPU消耗排名、客户端CPU消耗排名和网络带宽消耗排名。其中,一个播放模式对应一个或多个模式编码。具体如表3所示。表3在本实施例中,所述动态决策表是基于模式全集表与限制条件获取的。其中所述限制条件是指每个播放模式所对应的必须性条件或推荐性条件,必须性条件或推荐性条件是指播放环境对服务端、客户端以及播放器的要求。在本实施例中,出现卡顿的原因包括服务端编码能力不足、客户端解码能力不足和带宽不足。每个原因都对应有相应的原因参数,例如,服务端编码能力不足所对应的原因参数为服务端CPU消耗比例,通过获取原因参数的值从而获取与原因参数所对应的原因,即获取播放情况出现卡顿的原因。例如,在用户使用流媒体功能时,如果当检测到当前播放环境已无法对当前使用的流媒体播放模式进行良好支持时,则通过根据获取到的当前播放环境计算出候选播放模式。如果当前播放环境支持多个候选播放模式时,通过总优势率算法获取多个候选播放模式中优势率最高的候选播放模式,将所述播放模式作为当前播放环境下最佳的播放模式。其中,所述总优势率算法是指获取某种播放模式相对于另一种播放模式在当前播放环境下的适应度。具体地,根据所述动态决策表中所存储的每个模式编码所对应的优势参数组,所述优势参数组包括第一优势参数、第二优势参数和第三优势参数。其中,某一项资源的优势参数指的是在播放流媒体时,某一算法的该项参数相比于其它算法的同项参数所能获得的资源节约优势,用于定量的去衡量不同流媒体处理模式的资源消耗对比。其中,各项优势参数可以通过流媒体样本播放实测得到,即选定某流媒体样本、客户端/服务端CPU与客户端/服务端解码芯片并播放,然后统计并记录此流媒体播放期间的各模式下的平均服务端CPU消耗、平均客户端CPU消耗、平均网络带宽消耗。例如,某一种模式在测试环境下的服务端CPU消耗为50%,则记此模式此项的优势参数为50。如某一种模式在测试环境下的客户端CPU消耗为50%,则记此模式此项的优势参数为50。如某一模式在测试环境下的网络带宽消耗为5.2bps,则记此模式此项的优势参数为5.2。在本实施例中,所述候选播放模式是指与当前播放环境的适应度最大的播放模式。请参阅图3,是本发明第二实施例提供的一种流媒体处理方法的流程图。下面将对图3所示的具体流程进行详细阐述。步骤S401,获取预先设置的模式组,所述模式组包括兼容模式组、重定向组和智能流媒体模式开关。其中,所述兼容模式组是指包括所有兼容模式的一个集合。同理,所述重定向组是指包括所有重定向模式的一个集合。所述智能流媒体模式开关用于确定是否使用预设的动态配置策略。即当所述智能流媒体模式开关开启时,表示在播放时,启用动态配置策略对当前播放环境进行实时检测,从而获取当前播放环境所支持的最佳的播放模式。在本实施例中,所述高清兼容模式、所述流畅兼容模式以及所述精简兼容模式属于互斥选项,即三种模式只能选择其中任意一种,代表在非重定向方式下,即不是在无缝体验模式时的默认流媒体播放策略。在本实施例中,所述重定向组包括无缝体验模式。所述无缝体验模式是指对视频文件采用重定向模式处理后的一种播放模式。所述重定向模式是指通过对特定播放器进行COM接口替换的方式来实现重定向,所述COM接口即是指clustercommunicationport,即串行通讯端口。具体地,所述重定向模式是指先读取视频或音频内容,然后通过分类器对所获得的视频或音频文件格式的解析,并分离出视频和音频,最后通过预设程序接口将没有渲染的视频源直接发送到客户端,从而实现对视频的重定向。步骤S402,将所述兼容模式组中的精简兼容模式设为默认播放模式。在本实施例中,预先将兼容模式组中的精简兼容模式设为默认播放模式。对于所述重定向组则是默认无缝体验模式关闭。以及对于智能流媒体模式开关预先默认智能流媒体模式开关关闭。作为一种实施方式,当默认播放模式为兼容模式组中的精简兼容模式时,所述兼容模式组中的其他模式则不能被使用,即所述高清兼容模式、所述流畅兼容模式以及所述精简兼容模式为互斥模式。且所述默认播放模式只能为兼容模式组中的任意一项播放模式。如果当用户选择无缝体验模式时,则在环境允许的情况下,即满足限制条件时,将默认对流媒体播放采用流媒体重定向方式。其中,所述重定向方式可以是Flash重定向。步骤S403,基于所述默认播放模式播放视频文件。步骤S404,获取基于默认播放模式播放的视频文件。步骤S405,基于预设静态配置策略,获取当前播放环境所支持的所有播放模式。步骤S406,当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设播放模式作为待播放模式。步骤S407,在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。步骤S404、步骤S405、步骤S406和步骤S407的具体实施方式请参照第一实施例中所对应的步骤,在此,不再赘述。请参阅图4,是本发明第三实施例提供的一种流媒体处理装置的功能模块示意图。所述流媒体处理装置600包括数据获取单元610、数据处理单元620、数据查找单元630和检测单元640。数据获取单元610,用于获取基于默认播放模式播放的视频文件。数据处理单元620,用于基于预设静态配置策略,获取当前播放环境所支持的所有播放模式。数据查找单元630,用于当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设播放模式作为待播放模式。检测单元640,用于在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。请参阅图5,是本发明第四实施例提供的一种流媒体处理装置的功能模块示意图。所述流媒体处理装置700包括数据预处理单元710、数据设置单元720、数据播放单元730、数据获取单元740、数据处理单元750、数据查找单元760和检测单元770。数据预处理单元710,用于获取预先设置的模式组,所述模式组包括兼容模式组、重定向组和智能流媒体模式开关。数据设置单元720,用于将所述兼容模式组中的精简兼容模式设为默认播放模式。数据播放单元730,用于基于所述默认播放模式播放视频文件。数据获取单元740,用于获取基于默认播放模式播放的视频文件。数据处理单元750,用于基于预设静态配置策略,获取当前播放环境所支持的所有播放模式。数据查找单元760,用于当获取到用户输入的模式参数时,查找与所述模式参数匹配的预设播放模式,将所查找到的所述预设播放模式作为待播放模式。检测单元770,用于在所述视频文件播放过程中,当检测到当前播放环境不支持当前播放模式时,基于预设动态配置策略,计算出候选播放模式。其中,所述检测单元770还包括检测子单元771。所述检测子单元,用于获取当前播放模式下的播放情况,当所述播放情况满足预设条件时,基于预设算法获取当前环境下的候选播放模式。具体地,所述检测子单元771具体用于:根据所述当前播放模式,查找预设动态决策表中的所有播放模式所对应的排名参数组,所述排名参数组包括用于表示服务端CPU消耗的第一排名参数、用于表示客户端CPU消耗的第二排名参数和用于表示网络带宽消耗的第三排名参数;将所述当前播放模式所对应的所述排名参数组中的各个参数分别与其他所述播放模式所对应的排名参数组中相对应的参数进行计算,获取所述候选播放模式。综上所述,本发明提供一种流媒体处理方法及装置,本申请通过预先对各个播放模式进行过滤,从而获得当前播放环境下所能够支持的播放模式,在通过获取用户输入的模式参数,根据用户所输入的模式参数查找与用户输入的模式参数所对应的播放模式。并根据当前播放环境判定用户所输入的模式参数是否可以执行,使得用户可以选择更多的模式,通过模式选项过滤,可引导用户选择默认的播放模式。且当在播放流媒体的过程中,基于预设动态配置策略,计算出当前播放环境下所能够支持的最佳的候选播放模式,使得用户可以在播放视频时选择系统推荐的最优的播放模式进行播放视频文件。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。当前第1页1 2 3