预览图的展示方法以及设备与流程

文档序号:15625741发布日期:2018-10-09 22:56阅读:211来源:国知局

本发明涉及视频领域,尤其涉及一种预览图的展示方法以及设备。



背景技术:

随着互联网的发展,视频资源越来越丰富,在视频播放中,通过拖动播放进度条来拖动视频进度是一种比较常见的用户体验。在视频进度拖动的过程中,目前很多视频服务厂商都提供了预览图效果,能准实的看到对应的播放进度条位置上的视频的预览图(videopreview),帮助用户快速定位到想看的内容。

但是目前各视频服务厂商提供的预览图实现协议和视频播放协议是相互独立的,另外,各视频服务厂商提供的预览图信息不统一,各家实现差异大,不利于用户体验的一致性。



技术实现要素:

有鉴于此,实有必要提供一种与播放协议结合的预览图实现方法,保证用户体验的一致性。

第一方面,提供一种预览图的展示方法,包括:

客户端从服务器获取视频节目的索引文件,所述索引文件包含预览图的描述信息,所述索引文件为dash协议中的媒体展示描述mpd文件;

所述客户端根据所述预览图描述信息从所述服务器获取预览图;

所述客户端根据用户操作指令展示所述预览图,比如用户拖动播放进度条时,展示对应位置的预览图。该方法将预览图的描述信息包含在视频节目的索引文件中,使得客户端在根据该索引文件进行视频播放时,即可直接根据该索引文件获取预览图。将预览图的实现与播放协议结合起来,保证了用户体验的一致性,也可以减轻视频业务提供商另外再单独开发预览图实现协议的复杂度,能够实现视频业务的快速上线。

可选的,所述预览图描述信息包括:

预览图的地址信息和预览图对应的时间信息,地址信息可以是预览图存储的位置信息,预览图对应的时间信息可以包括该视频首个预览图的对应时间以及预览图之间的时间间隔。这样,客户端在展示预览图时,可根据预览图的时间信息与播放进度条的位置确定具体需要展示的是哪个预览图,从而获取对应的预览图进行展示,保证展示的预览图与视频的一致性。

可选的,客户端可以根据所述预览图的地址信息提前从服务器下载预览图存储到本地,在用户拖动播放进度条时,从本地获取对应时间的预览图,这样使得预览图展示的速度更快,实时性更强。

可选的,客户端也在用户拖动播放进度条时,根据所述播放进度条的位置以及所述预览图对应的时间信息,确定对应的预览图的地址信息,根据所述确定的预览图的地址信息从服务器下载预览图。该可选方式可以减轻客户端的存储压力,节省存储空间。

第二方面,提供一种预览图的展示方法,应用在服务器端,包括:

服务器向客户端发送视频节目的索引文件,所述索引文件为dash协议的媒体展示描述mpd文件,所述索引文件包含预览图的描述信息;

接收客户端预览图下载请求;

响应所述客户端的下载请求,将所述预览图发送给所述客户端。

可选的,所述预览图描述信息包括:

预览图的地址信息和预览图对应的时间信息。

可选的,所述方法还包括:

服务器根据预览图生成规则生成预览图和预览图描述信息。

可选的,所述预览图生成规则包括:

预览图间隔时间信息和预览图分辨率信息。

可选的,服务器可根据预览图的间隔时间信息和分辨率信息直接从视频文件中截取视频帧的方式生成预览图。

第三方面,提供一种客户端装置,包括:

接收器,用于从服务器获取视频节目的索引文件,所述索引文件为dash协议的mpd文件,所述索引文件包含预览图的描述信息;

处理器,用于根据所述预览图描述信息从所述服务器获取预览图,根据用户操作指令展示所述预览图。

可选的,所述预览图描述信息包括:

预览图的地址信息和预览图对应的时间信息。

可选的,所述处理器具体用于:

在用户拖动播放进度条时,根据播放进度条的位置显示对应的预览图。

可选的,所述处理器还用于:在用户拖动播放进度条之前,根据所述预览图的地址信息从服务器下载预览图。

可选的,所述处理器还用于:在用户拖动播放进度条时,根据所述播放进度条的位置以及所述预览图对应的时间信息,确定对应的预览图的地址信息,根据所述确定的预览图的地址信息从服务器下载预览图。

第四方面,提供一种服务器,包括:

发射器,用于向客户端发送视频节目的索引文件,所述索引文件为dash协议的mpd文件,所述索引文件包含预览图的描述信息;

接收器,用于接收客户端预览图下载请求;

所述发射器还用于响应所述客户端的下载请求,将所述预览图发送给所述客户端。

可选的,该服务器还包括:

处理器,用于根据预览图生成规则生成预览图和预览图描述信息。

可选的,所述预览图生成规则包括:

预览图间隔时间信息和预览图分辨率信息。

可选的,处理器可根据预览图的间隔时间信息和分辨率信息直接从视频文件中截取视频帧的方式生成预览图。

第五方面,提供一种计算机程序产品,包括可执行程序代码,其中所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述服务器或者客户端可执行如上述方面所述的预览图展示方法。

第六方面,本申请实施例提供了一种计算机存储介质,用于储存为上述服务器、客户端所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

附图说明

图1是用于实施本申请实施例的自适应http流传输的系统架构图;

图2是用于实施本申请实施例的网络设备结构框图;

图3是本申请一实施例的预览图展示方法交互流程图;

图4是本申请另一实施例的预览图展示方法交互流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

图1示出了用于实施本申请实施例的自适应http流传输的典型系统架构。如图1所示,该系统100可包括n个http服务器110,n可为任意整数数字、客户端120和网络130。http服务器110和客户端120可以通过网络130和http缓存(未示出)等其它网络部件彼此耦合。

http服务器110可以是用于通过http发送和接收数据的任意硬件计算机服务器。http服务器110可包括服务器dash模块(dashmodule,dm)111,用于通过http并根据dash标准发送和接收数据。http服务器可形成内容分发网(cdn)140,cdn140可指通过多个骨干网部署在多个数据中心用于分发内容的分布式服务器系统。cdn140可包括任意数目的http服务器110,这样n可以是任意整数数字。通常,cdn可包括成千上百个服务器。

客户端120可以是用于通过http发送和接收数据的任意硬件设备。例如,客户端120可为笔记本电脑、平板电脑、台式电脑、移动电话或其它设备。客户端120可包括客户端dash模块(dashmodule,dm)121、应用122和图形用户界面(gui)123。

客户端dm121可用于通过http并根据dash标准发送和接收数据。客户端dm121可进一步包括dash访问引擎(dashaccessengine,dae)1211和媒体输出(mediaexport,me)1212。dae1211可以是用于从http服务器110接收原始数据并将这些数据构建为观看格式的主要部件。例如,dae1211可将为活动图像专家组(mpeg)容器格式的数据和定时数据一起格式化,随后将格式化后的数据输出到me1212。me1212可负责初始化、回放和其它与内容关联的功能并将内容输出到应用122。

应用122可以是具有用于下载和展示内容的接口的网页浏览器或其它应用。应用122可耦合到gui123,这样与客户端120关联的用户可查看应用122的各种功能。应用122可包括搜索功能,这样用户能够搜索内容。例如,如果应用122为媒体播放器,那么应用122可包括搜索栏,这样用户可输入字符串搜索电影。应用122可展示搜索命中列表,用户可从命中列表中选择想要的电影。选择之后,应用122可将下载电影的指令发送到客户端dm121。dm121可下载电影和处理电影以输出到应用122。应用122可提供指令给gui123以供gui123展示电影给用户观看。应用122可进一步提供指令给gui123以供gui123展示进度条,该进度条显示电影的时间进度。

网络130可以是用于提供http服务器110和客户端120之间通信的任意网络。例如,网络130以是因特网、移动电话网络或其它网络。网络130可允许沿有线或无线信道进行通信。

图2为用于实施本发明实施例的网络设备200的示意图。设备200可包括多个入端口210和/或接收器单元(rx)220,用于接收数据;逻辑单元或处理器230,用于处理信号;多个出端口240和/或发射器单元(tx)250,用于将数据发送到其它部件;以及存储器260。设备200可适于实施任意所公开的特征、方法和设备。例如,设备200可适于实施http服务器110、和客户端120。

逻辑单元230(可称为中央处理单元(cpu))可与入端口210、接收器单元220、出端口240、发射器单元250和存储器260通信。逻辑单元230可以实施为一个或多个cpu芯片、核(例如,多核处理器)、现场可编程门阵列(fpga)、专用集成电路(asic)和/或数字信号处理器(dsp),并且/或者可以是一个或多个asic的一部分。

存储器260可由一个或多个磁盘、磁带驱动器、光盘驱动器或固态驱动器组成;可用于数据的非易失性存储和用作溢流数据存储设备;可用于当选择执行此类程序时存储程序;以及可用于存储程序执行期间读取的指令和数据。存储器260可为易失性和/或非易失性的并且可以是只读存储器(rom)、随机存取存储器(ram)、三重内容寻址内存(tcam)、静态随机存取存储器(sram)、其它合适的存储器类型、或其任意组合。存储器260可包括dm270,dm270可适于实施服务器dm111或客户端dm121。虽然存储器260示为包括dm270,但是逻辑单元230或逻辑单元230和存储器260的任意组合可包括dm270。

基于前述的http流传输的典型系统架构和网络设备,图3为根据本申请实施例的预览图展示方法的流程交互图。

客户端110可以使用httpget请求或类似的消息,以从http服务器120或http缓存(图未示出)下载媒体展示描述(mpd)。mpd可以是可扩展标记语言(xml)文档。mpd包含对媒体内容进行编码所使用的格式的元数据,比如比特率、编解码、屏幕解析度、以及语言等信息,在本实施例中,mpd还包括预览图的描述信息。

本实施例中,视频内容注入时,服务器可读取对应视频的预览图生成规则,例如:预览图的间隔时间、预览图的分辨率等,生成预览图以及预览图的描述信息,预览图描述信息可以有多种实现方式:

第一种实现方式中,所有的预览图可以压缩成一个文件,以压缩包的形式承载,预览图的属性参数在mpdrepresentation中定义,描述如下:

representation标签内元素介绍:

id:预览图组标识.

width:预览图的宽,单位:像素.

height:预览图的高,单位:像素.

starttime:第一张预览图对应视频中的时间点.

interval:相邻预览图间隔时长,单位:秒.

number:本视频生成的预览图总个数.

baseurl:该组预览图打包成zip文件后的url,供下载用.

第二中实施方式中,通过列表描述预览图,预览图的属性参数在mpdrepresentation中定义,描述如下:

representation标签内元素介绍:

id:预览图(组)的标识.

width:预览图的宽,单位:像素.

height:预览图的高,单位:像素.

starttime:第一张预览图对应视频中的时间点.

interval:相邻预览图片间隔时长,单位:秒

number:本视频生成的预览图总个数.

segmenturl:标签支持多值

media:具体预览图文件url,供终端下载用.

第三种实施方式中,通过模板描述预览图,预览图的属性参数在mpdrepresentation中定义,描述如下:

representation标签内元素介绍:

previewtemplate:预览图下载地址(url)的规则。

previewtimeline:描述预览图对应视频内容的规则。

starttime:第一张预览图对应视频中的时间点。

interval:相邻预览图片间隔时长,单位:秒。

number:本视频生成的预览图总个数。

id:预览图(组)标识。

width:预览图的宽,单位:像素。

height:预览图的高,单位:像素。

如图3所示,本实施例的预览图展示方法包括如下步骤:

步骤310,客户端120可向http服务器110发送对mpd的请求。

步骤320,http服务器110可将mpd发送到客户端120。客户端120可通过dash访问引擎dae1211接收mpd,其中mpd包括预览图的描述信息,具体的,预览图的描述信息可以包括预览图的地址信息、时间信息,还可以包含预览图的分辨率信息。

步骤330,客户端120从mpd文件中解析出预览图的描述信息,获取预览图的地址信息、时间信息和分辨率信息,其中预览图的时间信息至少包括:第一帧预览图对应的时间、相邻预览图之间的间隔时间,以及预览图的总帧数。

步骤340,客户端120根据预览图的描述信息,向http服务器请求预览图。

具体的,客户端120可以根据屏幕大小等终端参数选择合适预览图分辨率,对应的预览图xml文档,根据文档中的预览图的地址,从服务器请求下载对应的预览图。

步骤350,http服务器将预览图发送到客户端120,客户端120将预览图缓存到本地存储器中。

步骤360,客户端120在用户拖动播放进度条时,展示对应进度的预览图。

具体的,在用户拖动播放进度条时,确定播放进度条停止的位置以及时间,根据时间获取对应时间的预览图进行展示。需要注意的是,拖动播放进度条可以是用户直接使用鼠标拖动,或者用户直接输入时间参数以定位播放进度条的位置实现。

可选的,客户端120可在视频播放开始时,根据预览图的地址信息从服务器预先将所有的预览图下载到本地存储,在用户拖动播放进度条时,从本地获取对应时间的预览图进行展示,这种方式可以在用户拖动播放进度条时实时的显示预览图,展示体验更好。

另外,客户端120也可以在用户拖动进度条时,判断进度条停止位置及对应的时间,根据该时间选择对应时间的预览图,根据预览图的位置信息从服务器实时下载对应的预览图进行展示,该方式可以减轻客户端的存储压力,可以节省客户端的存储空间。

如图4所示,为本申请另一实施例的预览图展示方法交互流程图。

本实施例中,预览图描述信息可以为独立的xml文件,mpd中可仅包括对该xml文件的描述,比如预览图xml文件的url。客户端可解析mpd后,根据预览图xml文件的url从服务器获取预览图xml文件。其中,mpd关于预览图xml文件的描述可如下:

参数说明:

mimetype:标识application/xml,非videoaudio,预览图属于应用类,用xml来承载

value:明确是时间轴预览用,timelinepreview。

representationid:当有多组分辨率的预览图提供预览时,通过id区分多个representation。

width,预览图宽度,单位为像素

height,预览图高度,单位为像素

baseurl:预览图xml文件的url,客户端可根据该url获取预览图详细的描述信息。

具体的,预览图xml文件描述有多种方式,本实施例中,第一种实现方式中预览图xml文件为单图片模式,每张预览图都是一个单独的图片,描述如下:

<!–previewpreview_240.xml-->

<xmlversion="1.0"encoding="utf-8">

<timemline>

<imagetime=“000006”id=“preview_240_$time$.jpg”/>

<imagetime="000012"id="preview_240_$time$.gif"/>

<imagetime="005900"id="preview_240_$time$.gif"/>

</timemline>

参数说明:

timemline:该xml节点下的内容是用于时间轴的场景

image:表示是对预览图对象节点进行描述

time:格式时分秒hhmmss

id=“preview_240_$time$.jpg”:预览图文件的url

第二种实现方式中,预览图片xml文件为合并图片模式,即多个预览图合成在一张图片中:

<!–previewpreview_240.xml-->

<xmlversion="1.0"encoding="utf-8">

<timemline>

<imagestarttime=“000000”endtime=”001000”interval=”6”

id=“preview_$starttime$_$endtime$.jpg”/>

<imagestarttime=“001000”endtime=”002000”interval=”6”

id=“preview_$starttime$_$endtime$.jpg”/>

<imagestarttime=“012000”endtime=”013000”interval=”6”

id=“preview_$starttime$_$endtime$.jpg”/>

</timemline>

参数说明:

timemline:该xml节点下的内容是用于时间轴的场景

image:表示是对预览图对象节点进行描述

starttime:视频的开始时间,格式:hhmmss

endtime:视频的结束时间,格式:hhmmss

interval:本段视频内预览图生成间隔时间,单位:秒

id=“preview_$starttime$_$endtime$.jpg”:预览图文件的url

合并图片模式,能减少图片数量,客户端读取合并图片,能减少文件打开关闭的数量,提高显示的速度。

本实施例中,预览图展示方法,包括如下步骤:

步骤410,客户端120可向http服务器110发送对mpd的请求。

步骤420,http服务器110可将mpd发送到客户端120。客户端120可通过dae1211接收mpd,其中mpd包括预览图描述信息,具体的,预览图描述信息包括:预览图描述文件的url。

具体的,预览图描述信息可如下描述:

客户端120根据value=“timelinepreview,确定该视频支持预览图特性,其中多个representation,表示有多个分辨率的预览图可以获取,终端可根据自己屏幕大小,选择合适的分辨率预览图xml,本实例中以获取的240分辨率的预览图为例。

步骤430,客户端120从mpd文件中解析出预览图描述文件的url。

步骤440,客户端120根据该预览图描述文件的url向服务器请求该预览图描述文件。

具体的,客户端120可根据选择的分辨率为240的预览图的baseurl从服务器请求该预览图的描述文件。

步骤450,http服务器110将预览图的描述文件返回给客户端120。

具体的,预览图描述文件可为xml文档,具体内容可如下:

<!–previewxml-->

<xmlversion="1.0"encoding="utf-8">

<timemline>

<imagetime=“000006”id=“preview_240_000006.jpg”/>

<imagetime="000012"id="preview_240_000012.gif"/>

….

<imagetime="013000"id="preview_240_013000.gif"/>

</timemline>

步骤460,客户端120根据预览图的描述文件,向http服务器请求预览图。

步骤470,http服务器将预览图发送到客户端120,客户端120将预览图缓存到本地存储器中。

步骤480,客户端120在用户拖动播放进度条时,展示对应进度的预览图。

具体的,在用户拖动播放进度条时,确定播放进度条停止的位置以及时间,根据时间获取对应时间的预览图进行展示。

可选的,客户端120可在视频播放开始时,根据预览图的地址信息从服务器预先将所有的预览图下载到本地存储,在用户拖动播放进度条时,从本地获取对应时间的预览图进行展示,这种方式可以在用户拖动播放进度条时实时的显示预览图,展示体验更好。

另外,客户端120也可以在用户拖动进度条时,判断进度条停止位置及对应的时间,根据该时间选择对应时间的预览图,根据预览图的位置信息从服务器实时下载对应的预览图进行展示,该方式可以减轻客户端的存储压力,可以节省客户端的存储空间。

需要注意的是,本申请实施例方案也可以适用于hls等其他http协议,如适用hls协议,可将预览图的描述信息包含在m3u8文件中,具体实施方式可参考如上实施例。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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