具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的用于实现视频播放的***拓扑图,其中包括网络设备2以及多个与之经由网络相连接的用户设备1。其中,多个用户设备1与网络设备2经由网络相连接,用户设备1向网络设备2发送视频访问请求;网络设备2接收该视频访问请求;获取与该视频访问请求相对应的视频流;将该视频流发送给用户设备1;用户设备1接收该视频流,对该视频流进行解封装处理,得到一个或多个编码单元序列流;解码播放该编码单元序列流。在此,网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。
另外,用户设备1可以是任何一种可以植入嵌入式***并且可与用户通过键盘、鼠标、遥控器、触摸屏或手写设备等方式进行人机交互的电子产品,例如机顶盒、网络电视、手机、PDA、掌上电脑PPC或者平板电脑等。网络设备2包括但不限于网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合。网络设备2与多个用户设备1之间的通信相互独立,可以是基于诸如TCP/IP协议、UDP协议等的分组数据传输。
本领域技术人员应能理解上述网络设备2、用户设备1以及连接其间的网络和通信方式仅为举例,其他现有的或今后可能出现的网络设备、用户设备、网络或通信方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
本领域技术人员还应能理解,图1中仅为简明起见而示出的各类网络元素的数量可能小于一个实际网络中的数量,但这种省略无疑地是以不会影响对本发明进行清楚、充分的公开为前提的。
为简明起见,下面以一个用户设备1为例进行描述。本领域技术人员应能理解,网络设备2可以同时与多个用户设备1交互,并根据从不同用户设备1接收的视频访问请求获取与这些视频访问请求相对应的视频流,将这些视频流发送至不同的用户设备1;对应的用户数设备1接收相应的视频流,对这些视频流解封装处理,得到多个编码单元序列流,并解码播放这些编码单元序列流。
图2为根据本发明一个方面的方法流程图,示出用户设备与网络设备配合用于实现视频播放的过程。其中,用户设备1经由网络与网络设备2相连接,两者配合来实现视频播放的过程。
具体地,在步骤S1中,用户与用户设备1进行人机交互,用户设备1获取用户操作,如节目选择、播放控制等。例如,用户设备1通过任何一种可与用户进行人机交互的交互设备来实时地获取用户在用户设备1上对于视频图标的选择操作。该交互设备可以是键盘、鼠标、遥控器、触摸屏或声控设备等。以遥控器为例,当用户通过用户设备1上的客户端软件或浏览器软件在其用户界面,即当前遥控器操作所作用的界面,通过操作遥控器移动屏幕上的光标至视频图标所在的位置,通过按压“确认”键来选中该视频图标,用户设备1通过例如遥控器操作位置、视频访问请求等信息,实时地获取该用户操作。本领域技术人员应能理解上述用户操作及其获取方式仅为举例,其他现有的或今后可能出现的用户操作及其获取方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S2中,用户设备1向网络设备2发送视频访问请求。具体地,在步骤S2中,用户设备1,根据用户希望访问的视频文件,例如通过其在步骤S1中获取的用户操作确定该操作所对应的视频文件,向网络设备2发送相对应的视频访问请求;相应地,网络设备2接收自用户设备1发送的视频访问请求。例如,用户设备1获取用户操作所对应的视频文件为“敢死队”,并向网络设备2发送对“敢死队”的视频访问请求。与此相对应的,网络设备2接收用户设备1发送的该“敢死队”的视频访问请求。在此,用户设备1网络设备2发送视频访问请求的方式包括但不限于,通过一次或多次调用网络设备2提供的应用程序接口(API)或其他约定的通信方式,如基于http、https的视频访问请求,将该视频访问请求发送至网络设备2。在此,视频访问请求可以是基于同步阻塞模型的,也可以是基于异步非阻塞模型的。本领域技术人员应能理解上述发送视频访问请求的方式仅为举例,其他现有的或今后可能出现的发送视频访问请求的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S3中,用户设备1接收自网络设备2发送的基于所述视频访问请求的视频流。具体地,网络设备2根据其接收的自用户设备1在步骤S2中发送的视频访问请求,获取相应的视频流,并将该视频流发送至用户设备1,例如通过RTSP、HTTP、FTP、P2P等数据传输协议发送至用户设备1;相应地,用户设备1接收该视频流。以P2P方式为例,用户设备1从网络设备2接收多路视频流,这些多路视频流包括例如不同来源的视频流,不同来源的一个影片的多个片段视频流,然后用户设备1再对特定的视频流或者特定时间的片段视频流进行接下来的各步骤。在此,本领域技术人员应能理解上述数据传输协议仅为举例,其他现有的或今后可能出现的数据传输协议如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备2获取视频流的方式包括但不限于,从网络设备2本身的存储装置、内容提供商的服务器、第三方服务器或者其他可以与网络设备2通信的第三方设备获取视频流,其中,内容提供商的服务器或者第三方服务器包括web服务器和流媒体服务器。例如,用户设备1根据用户操作确定该用户操作对应的视频文件,向网络设备2发送与该视频文件对应的视频访问请求,网络设备2接收该视频访问请求后,根据该视频访问请求中的URL地址,获取与该URL地址相对应的视频流。本领域技术人员应能理解上述视频流的获取方式仅为举例,其他现有的或今后可能出现的视频流的获取方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S4中,用户设备1对所述视频流进行解封装处理,以得到一个或多个编码单元序列流。具体地,在步骤S4中,用户设备1根据其接收的视频流的封装格式,执行相应的解封装应用,以获取一个或多个编码单元序列流。例如,用户设备1通过调用(如本地调用或远程调用)或者加载并调用相应的解封装应用,解封装视频流,从而获取该视频流解封装后的一个或多个编码单元序列流(如sample序列流)。例如,假设用户设备1中已有对应于视频流的封装格式的解封装应用,那么用户设备1就直接调用(或者加载并调用,如果用户设备1中已经存储该解封装应用)该解封装应用,从而解封装该视频流并获取该视频流中的一个或多个编码单元序列流。再如,假设用户设备1中没有对应于视频流的封装格式的解封装应用,那么用户设备1从外部(网络或者其他设备处)获取该解封装应用,加载并调用该解封装应用,以解封装该视频流,获取该视频流中的一个或多个编码单元序列流。又如,假设用户设备1中没有对应于视频流的封装格式的解封装应用,那么用户设备1从外部(网络或者其他设备处)远程调用该解封装应用,以解封装该视频流,获取该视频流中的一个或多个编码单元序列流。本领域技术人员应能理解上述几种调用解封装应用的方式仅为举例,其他现有的或今后可能出现的调用解封装应用的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S5中,用户设备1解码播放所述一个或多个编码单元序列流。具体地,在步骤S5中,用户设备1对其在步骤S4中解封装后获得的编码单元序列流进行解码,然后根据该编码单元序列流中的时间信息同步播放该编码单元序列流中的音频数据和/或视频数据。例如,用户设备1将其获得的编码单元序列流解压缩,从编码单元序列流的时间信息中获取音频数据和视频数据的时间戳,然后根据该时间戳实现音频数据和视频数据的同步播放。本领域技术人员应能理解上述音频数据和视频数据的同步方式仅为举例,其他现有的或今后可能出现的音频数据和视频数据的同步方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,该解码播放操作既可以通过解码器(芯片)进行,也可以通过解码软件进行。而且,该解码播放操作可以在一个或多个解码器和/或解码软件上完成,例如,用户设备1将所述一个或多个解码单元序列流导入至多个解码器和/或解码软件,以实现多路的解码播放输出。本领域技术人员还应能理解上述解码播放方式仅为举例,其他现有的或今后可能出现的解码播放方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,步骤S2、步骤S3、步骤S4和步骤S5是持续不断工作的。具体地,用户设备1,在步骤S2中,向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;在步骤S3中,接收自网络设备2发送的基于所述视频访问请求的视频流;在步骤S4中,对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;在步骤S5中,解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指用户设备1在步骤S2、步骤S3、步骤S4、和步骤S5分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,接收视频流,对视频流进行解封装以获得编码单元序列流,以及解码播放编码单元序列流,直至该用户在较长时间内停止通过用户设备1执行用户操作。
步骤S6中,用户与用户设备1进一步交互。此次用户与用户设备1的交互将会启动新一轮用户设备1和网络设备2按照步骤S2、步骤S3、步骤S4和步骤S5的工作。
在一个优选实施例中,该过程还包括步骤S7(未示出),用户设备1在步骤S7中,在用户设备1中分配缓存;随后,在步骤S2中,用户设备1向网络设备2发送视频访问请求;在步骤S3中,用户设备1接收网络设备2发送的基于该视频访问请求的视频流,将所述视频流存储于所述缓存中。具体地,用户设备1在向网络设备2发送相应的视频访问请求之前,在用户设备1中分配一定大小的缓存;随后,用户设备1向网络设备2发送视频访问请求,等待网络设备2的响应,然后接收网络设备2发送的视频流,将该视频流存储在缓存中。例如,为了平滑网络抖动,用户设备1在其中为视频流分配了20M的缓存,以使得用户设备1播放视频流时,缓存中能够保存一定量的视频流,然后向网络设备2发送视频访问请求,接收网络设备2发送的相应的视频流,再将一定量(不超过20M)的视频流存储在该缓存中,并且在用户设备1读取该缓存中的视频流的同时,接收网络设备2发送的该视频流的后续部分。
优选地,步骤S7、步骤S2、步骤S3、步骤S4和步骤S5是持续不断工作的。具体地,用户设备1,在步骤S7中,在用户设备1中分配缓存;在步骤S2中,向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;在步骤S3中,用户设备1接收网络设备2发送的与所述视频访问请求相对应的视频流;接下来,用户设备1,在步骤S4中,对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;在步骤S5中,解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指用户设备1在步骤S8、步骤S2、步骤S3、步骤S4和步骤S5分别按照设定的或实时调整的工作模式要求进行缓存的分配,视频访问请求的发送,视频流的接收,视频流的解封装以获得编码单元序列流,以及编码单元序列流的解码播放,直至该用户在较长时间内停止通过用户设备1执行用户操作。
更优选地是,在步骤S7中,用户设备1还根据所述缓存,设置缓存时间。具体地,在步骤S7中,用户设备1还根据所分配的缓存大小设置缓存时间。如果缓存中的视频流的时间小于缓存时间,用户设备1则处于缓冲状态;如果缓存中的视频流的时间大于缓存时间,用户设备1则处于播放状态。例如,假设缓存时间为3S,如果缓存中的视频流的时间为5S,则用户设备1处于播放状态;如果缓存中的视频流的时间为1S,则用户设备1则处于缓冲状态。
在另一个优选实施例中,该过程还包括步骤S8(未示出),在步骤S8中,用户设备1向网络设备2发送关于所述视频访问请求对应的视频流的视频信息请求;相应地,用户设备1接收自网络设备2发送的基于所述视频信息请求的视频信息;用户设备1根据所述视频信息配置用户设备1。随后,在步骤S3中,用户设备1接收自网络设备2发送的所述视频流。具体地,在步骤S8中,用户设备1向网络设备2发送关于所述视频访问请求对应的视频流的视频信息请求;相应地,网络设备2接收自用户设备1发送的关于所述视频访问请求对应的视频流的视频信息请求,根据所述视频信息请求,获取所述视频流的视频信息,向用户设备1发送所述视频信息;相应地,用户设备1接收自网络设备2发送的基于所述视频信息请求的视频信息;用户设备1根据所述视频信息配置用户设备1。随后,在步骤S3中,用户设备1接收自网络设备2发送的所述视频流。在此,该视频信息请求既可以与视频访问请求(对应步骤S2)“同时”发送至网络设备2,例如,在视频访问请求对应的数据包的一些字段中同时包括关于视频信息请求的内容,或者在用户设备1发送该视频访问请求(即步骤S2)与接收网络设备2发送的基于该视频访问请求的视频流(即步骤S3)之间,将该视频信息请求发送至网络设备2。相应地,网络设备2接收该视频信息请求,并在获得用户设备1请求的视频流之后,进一步获取视频流的视频信息,例如,视频流的数量,每路流的信息,视频流的总时长,视频图像的尺寸等。本领域技术人员还应能理解上述视频信息请求的发送方式仅为举例,其他现有的或今后可能出现的视频信息请求的发送方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,该视频信息包括但不限于,以下各项中的至少任一项:1)视频流的数量;2)视频流的格式信息;3)视频流的视频总时长;4)视频流的视频图像尺寸;5)视频流的AVC配置数据。其中,视频流的数量为用户设备1接收到的自网络设备2发送的对应于视频访问请求的视频流的数量;视频流的格式信息包括视频流的类型、视频流的描述信息等;视频流的视频总时长为视频流的完整时长;视频流的视频图像尺寸包括视频图像的宽、高;视频流的AVC配置数据包括码率模式、质量模式、数据长度等。本领域技术人员应能理解上述视频信息仅为举例,其他现有的或今后可能出现的视频信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的格式信息包括但不限于,以下各项中的至少任一项:1)视频流的基本格式信息;2)视频流的扩充格式信息。本领域技术人员应能理解上述视频流的格式信息仅为举例,其他现有的或今后可能出现的视频流的格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的基本格式信息包括但不限于,以下各项中的至少任一项:1)视频流的基本类型,例如视频、音频;2)视频流的子类型,例如H264、AAC等;3)视频流的解码配置信息,例如配置数据的类型、配置数据的长度、配置数据的内容等。本领域技术人员应能理解上述视频流的基本格式信息仅为举例,其他现有的或今后可能出现的视频流的基本格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的扩充格式信息包括但不限于以下各项中的至少任一项:1)视频流的音频描述信息,例如音频声道数量、音频采样率、音频的采样位宽等;2)视频流的视频描述信息,例如图像宽度、图像高度、视频帧率等。本领域技术人员应能理解上述视频流的扩充格式信息仅为举例,其他现有的或今后可能出现的视频流的扩充格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,步骤S2、步骤S3、步骤S4、步骤S5和步骤S8是持续不断工作的。具体地,用户设备1,在步骤S2中,向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,在步骤S8中,向网络设备2发送该视频流的视频信息请求,相应地,接收该视频信息,并根据该视频信息配置用户设备1;在步骤S3中,用户设备1接收与所述视频访问请求相对应的视频流;接下来,用户设备1,在步骤S4中,对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;在步骤S5中,解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指用户设备1在步骤S2、步骤S3、步骤S4、步骤S5和步骤S8分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,视频信息的请求接收以及据其进行用户设备1的配置,视频流的接收,视频流的解封装以获得编码单元序列流,以及编码单元序列流的解码播放,直至该用户在较长时间内停止通过用户设备1执行用户操作。
优选地,在步骤S4,用户设备1还对所述视频流进行解封装处理,以获得一个或多个编码单元序列流及其扩充信息。具体地,在步骤S4中,用户设备1通过对自网络设备2接收的视频流进行解封装处理,不仅获得视频流中编码单元序列流,还获得编码单元序列流的扩充信息。在此,该扩充信息包括但不限于:编码单元的编号、时间戳、数据长度、播放时间、是否为关键帧,是否与上一编码单元连续等。本领域技术人员应能理解上述扩充信息仅为举例,其他现有的或今后可能出现的扩充信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在再一优选实施例中,该过程还包括步骤S9(未示出),用户设备1获取所述视频访问请求的统计信息,其中,统计信息包括但不限于,以下各项中的至少任一项:1)播放状态,例如未启动、正常播放、缓冲、暂定、播放缓冲百分比、缓存中的数据可以支持播放的时间等;2)下载统计,例如开始时刻、总共下载的字节数、总共上传的字节数、Http下载的字节数、Http下载个数、P2P下载的字节数、P2P长传的字节数、P2P下载个数、候补P2P下载的资源个数、总共的上传Cache请求数、总共的长传Cache命中数、下载总共持续时长等;3)下载速度,例如当前下载速度(5S统计、20S统计)、当前上传速度(5S统计、20S统计)、最近一分钟平均下载速度、最近一分钟平均上传速度、历史平均下载速度、历史平均上传速度、当前1S的下载速度、当前1S的上传速度等。本领域技术人员应能理解上述统计信息仅为举例,其他现有的或今后可能出现的统计信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
特别地,步骤S9与步骤S2、步骤S3、步骤S4和步骤S5不是顺序工作的,而是可以并行工作的。具体地,用户设备1,在步骤S2中,向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,在步骤S3中,用户设备1接收自网络设备2发送的与所述视频访问请求相对应的视频流;接下来,用户设备1,在步骤S4中,对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;在步骤S5中,解码播放所述编码单元序列流;与此过程同时,步骤S9也在工作,获取所述视频访问请求的统计信息,直至该用户在较长时间内停止通过用户设备1执行用户操作。
优选地,该过程还包括步骤S10(未示出),用户设备1关闭所述视频访问请求。具体地,例如当用户关闭视频流时,用户设备1关闭与该视频流相对应的视频访问请求,停止该视频流的接收、解封装和解码播放,并释放所分配的内存以及占用的用户设备1的资源。例如,当前用户正在观看影片“盗梦空间”,用户点击影片播放界面上的停止或者关闭按钮时,用户设备1相应地关闭与“盗梦空间”相对应的视频访问请求,并释放相关的***资源。
更优选地,步骤S2、步骤S3、步骤S4、步骤S5和步骤S10是持续不断工作的。具体地,用户设备1,在步骤S2中,向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,在步骤S3中,用户设备1接收自网络设备2发送的与所述视频访问请求相对应的视频流;接下来,用户设备1,在步骤S4中,对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;在步骤S5中,解码播放所述编码单元序列流;在步骤S10中,用户设备1关闭视频访问请求。在此,本领域技术人员应理解“持续”是指用户设备1在步骤S2、步骤S3、步骤S4、步骤S5和步骤S10分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,视频流的获取,视频流的解封装以获得编码单元序列流,编码单元序列流的解码播放,以及视频访问请求的关闭,直至该用户在较长时间内停止通过用户设备1执行用户操作。
图3为根据本发明另一个方面的设备示意图,示出用于实现视频播放的用户设备和网络设备。其中,用户设备1经由网络与网络设备2相连接,两者配合来实现视频播放的过程。
具体地,用户设备1包括发送装置11、接收装置12、解封装装置13和解码装置14。
发送装置11,用于向网络设备2发送视频访问请求。具体地,发送装置11根据用户希望访问的视频文件,例如,根据用户操作确定该操作所对应的视频文件,向网络设备2发送相对应的视频访问请求;相应地,网络设备2接收自用户设备1的发送装置11发送的视频访问请求。例如,用户设备1获取用户操作所对应的视频文件为“敢死队”,发送装置11向网络设备2发送对“敢死队”的视频访问请求。与此相对应的,网络设备2接收用户设备1发送的该“敢死队”的视频访问请求。在此,用户设备1网络设备2发送视频访问请求的方式包括但不限于,通过一次或多次调用网络设备2提供的应用程序接口(API)或其他约定的通信方式,如基于http、https的视频访问请求,将该视频访问请求发送至网络设备2。在此,视频访问请求可以是基于同步阻塞模型的,也可以是基于异步非阻塞模型的。本领域技术人员应能理解上述发送视频访问请求的方式仅为举例,其他现有的或今后可能出现的发送视频访问请求的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
接收装置12,用于接收自网络设备2发送的基于所述视频访问请求的视频流。具体地,网络设备2根据其接收的自用户设备1的发送装置11发送的视频访问请求,获取相应的视频流,并将该视频流发送至用户设备1,例如通过RTSP、HTTP、FTP、P2P等数据传输协议发送至用户设备1;相应地,用户设备1的接收装置12接收该视频流。以P2P方式为例,接收装置12从网络设备2接收多路视频流,这些多路视频流包括例如不同来源的视频流,不同来源的一个影片的多个片段视频流,然后用户设备1再对特定的视频流或者特定时间的片段视频流进行接下来的各步骤。在此,本领域技术人员应能理解上述数据传输协议仅为举例,其他现有的或今后可能出现的数据传输协议如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备2获取视频流的方式包括但不限于,从网络设备2本身的存储装置、内容提供商的服务器、第三方服务器或者其他可以与网络设备2通信的第三方设备获取视频流,其中,内容提供商的服务器或者第三方服务器包括web服务器和流媒体服务器。例如,用户设备1根据用户操作确定该用户操作对应的视频文件,向网络设备2发送与该视频文件对应的视频访问请求,网络设备2接收该视频访问请求后,根据该视频访问请求中的URL地址,获取与该URL地址相对应的视频流。本领域技术人员应能理解上述视频流的获取方式仅为举例,其他现有的或今后可能出现的视频流的获取方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
解封装装置13,用于对所述视频流进行解封装处理,以得到一个或多个编码单元序列流。具体地,解封装装置13根据接收装置12接收的视频流的封装格式,执行相应的解封装应用,以获取一个或多个编码单元序列流。例如,解封装装置13通过调用(如本地调用或远程调用)或者加载并调用相应的解封装应用,解封装视频流,从而获取该视频流解封装后的一个或多个编码单元序列流(如sample序列流)。例如,假设用户设备1中已有对应于视频流的封装格式的解封装应用,那么解封装装置13就直接调用(或者加载并调用,如果用户设备1中已经存储该解封装应用)该解封装应用,从而解封装该视频流并获取该视频流中的一个或多个编码单元序列流。再如,假设用户设备1中没有对应于视频流的封装格式的解封装应用,那么解封装装置13从外部(网络或者其他设备处)获取该解封装应用,加载并调用该解封装应用,以解封装该视频流,获取该视频流中的一个或多个编码单元序列流。又如,假设用户设备1中没有对应于视频流的封装格式的解封装应用,那么解封装装置13从外部(网络或者其他设备处)远程调用该解封装应用,以解封装该视频流,获取该视频流中的一个或多个编码单元序列流。本领域技术人员应能理解上述几种调用解封装应用的方式仅为举例,其他现有的或今后可能出现的调用解封装应用的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
解码装置14,用于解码播放所述一个或多个编码单元序列流。具体地,解码装置14对解封装装置13解封装后获得的编码单元序列流进行解码,然后根据该编码单元序列流中的时间信息同步播放该编码单元序列流中的音频数据和/或视频数据。例如,解码装置14将解封装装置13获得的编码单元序列流解压缩,从编码单元序列流的时间信息中获取音频数据和视频数据的时间戳,然后根据该时间戳实现音频数据和视频数据的同步播放。本领域技术人员应能理解上述音频数据和视频数据的同步方式仅为举例,其他现有的或今后可能出现的音频数据和视频数据的同步方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,该解码播放操作既可以通过解码器(芯片)进行,也可以通过解码软件进行。而且,该解码播放操作可以在一个或多个解码器和/或解码软件上完成,例如,用户设备1将所述一个或多个解码单元序列流导入至多个解码器和/或解码软件,以实现多路的解码播放输出。本领域技术人员还应能理解上述解码播放方式仅为举例,其他现有的或今后可能出现的解码播放方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,发送装置11、接收装置12、解封装装置13和解码装置14是持续不断工作的。具体地,发送装置11向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接收装置12接收自网络设备2发送的基于所述视频访问请求的视频流;解封装装置13对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;解码装置14解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指发送装置11、接收装置12、解封装装置13和解码装置14分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,接收视频流,对视频流进行解封装以获得编码单元序列流,以及解码播放编码单元序列流,直至该用户在较长时间内停止通过用户设备1执行用户操作。
在一个优选实施例中,用户设备1还包括分配装置(未示出),在用户设备1中分配缓存;随后,发送装置11向网络设备2发送视频访问请求;接收装置12接收网络设备2发送的基于该视频访问请求的视频流,将所述视频流存储于所述缓存中。具体地,用户设备1的发送装置11在向网络设备2发送相应的视频访问请求之前,分配装置先在用户设备1中分配一定大小的缓存;随后,发送装置11向网络设备2发送视频访问请求,等待网络设备2的响应,然后接收装置12接收网络设备2发送的视频流,将该视频流存储在缓存中。例如,为了平滑网络抖动,分配装置在用户设备1中为视频流分配了20M的缓存,以使得用户设备1播放视频流时,缓存中能够保存一定量的视频流,然后发送装置11向网络设备2发送视频访问请求,接收装置12接收网络设备2发送的相应的视频流,再将一定量(不超过20M)的视频流存储在该缓存中,并且在用户设备1读取该缓存中的视频流的同时,接收装置12接收网络设备2发送的该视频流的后续部分。
优选地,分配装置、发送装置11、接收装置12、解封装装置13和解码装置14是持续不断工作的。具体地,分配装置在用户设备1中分配缓存;发送装置11向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接收装置12接收网络设备2发送的与所述视频访问请求相对应的视频流;接下来,解封装装置13对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;解码装置14解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指分配装置、发送装置11、接收装置12、解封装装置13和解码装置14分别按照设定的或实时调整的工作模式要求进行缓存的分配,视频访问请求的发送,视频流的接收,视频流的解封装以获得编码单元序列流,以及编码单元序列流的解码播放,直至该用户在较长时间内停止通过用户设备1执行用户操作。
更优选地是,分配装置还根据所述缓存,设置缓存时间。具体地,分配装置还根据所分配的缓存大小设置缓存时间。如果缓存中的视频流的时间小于缓存时间,用户设备1则处于缓冲状态;如果缓存中的视频流的时间大于缓存时间,用户设备1则处于播放状态。例如,假设分配装置设置的缓存时间为3S,如果缓存中的视频流的时间为5S,则用户设备1处于播放状态;如果缓存中的视频流的时间为1S,则用户设备1则处于缓冲状态。
在另一个优选实施例中,用户设备1还包括配置装置(未示出),向网络设备2发送关于所述视频访问请求对应的视频流的视频信息请求;相应地,接收自网络设备2发送的基于所述视频信息请求的视频信息;根据所述视频信息配置用户设备1。随后,接收装置12接收自网络设备2发送的所述视频流。具体地,配置装置向网络设备2发送关于所述视频访问请求对应的视频流的视频信息请求;相应地,网络设备2接收自用户设备1发送的关于所述视频访问请求对应的视频流的视频信息请求,根据所述视频信息请求,获取所述视频流的视频信息,向用户设备1发送所述视频信息;相应地,配置装置接收自网络设备2发送的基于所述视频信息请求的视频信息;根据所述视频信息配置用户设备1。随后,接收装置12接收自网络设备2发送的所述视频流。在此,该视频信息请求既可以与视频访问请求(对应发送装置11)“同时”发送至网络设备2,例如,在视频访问请求对应的数据包的一些字段中同时包括关于视频信息请求的内容,或者在发送装置11发送该视频访问请求与接收装置12接收网络设备2发送的基于该视频访问请求的视频流之间,配置装置将该视频信息请求发送至网络设备2。相应地,网络设备2接收该视频信息请求,并在获得用户设备1请求的视频流之后,进一步获取视频流的视频信息,例如,视频流的数量,每路流的信息,视频流的总时长,视频图像的尺寸等。本领域技术人员还应能理解上述视频信息请求的发送方式仅为举例,其他现有的或今后可能出现的视频信息请求的发送方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,该视频信息包括但不限于,以下各项中的至少任一项:1)视频流的数量;2)视频流的格式信息;3)视频流的视频总时长;4)视频流的视频图像尺寸;5)视频流的AVC配置数据。其中,视频流的数量为用户设备1接收到的自网络设备2发送的对应于视频访问请求的视频流的数量;视频流的格式信息包括视频流的类型、视频流的描述信息等;视频流的视频总时长为视频流的完整时长;视频流的视频图像尺寸包括视频图像的宽、高;视频流的AVC配置数据包括码率模式、质量模式、数据长度等。本领域技术人员应能理解上述视频信息仅为举例,其他现有的或今后可能出现的视频信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的格式信息包括但不限于,以下各项中的至少任一项:1)视频流的基本格式信息;2)视频流的扩充格式信息。本领域技术人员应能理解上述视频流的格式信息仅为举例,其他现有的或今后可能出现的视频流的格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的基本格式信息包括但不限于,以下各项中的至少任一项:1)视频流的基本类型,例如视频、音频;2)视频流的子类型,例如H264、AAC等;3)视频流的解码配置信息,例如配置数据的类型、配置数据的长度、配置数据的内容等。本领域技术人员应能理解上述视频流的基本格式信息仅为举例,其他现有的或今后可能出现的视频流的基本格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,视频流的扩充格式信息包括但不限于以下各项中的至少任一项:1)视频流的音频描述信息,例如音频声道数量、音频采样率、音频的采样位宽等;2)视频流的视频描述信息,例如图像宽度、图像高度、视频帧率等。本领域技术人员应能理解上述视频流的扩充格式信息仅为举例,其他现有的或今后可能出现的视频流的扩充格式信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,发送装置11、接收装置12、解封装装置13、解码装置14和配置装置是持续不断工作的。具体地,发送装置11向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,配置装置向网络设备2发送该视频流的视频信息请求,相应地,接收该视频信息,并根据该视频信息配置用户设备1;接收装置12接收与所述视频访问请求相对应的视频流;接下来,解封装装置13对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;解码装置14解码播放所述编码单元序列流。在此,本领域技术人员应理解“持续”是指发送装置11、接收装置12、解封装装置13、解码装置14和配置装置分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,视频信息的请求接收以及据其进行用户设备1的配置,视频流的接收,视频流的解封装以获得编码单元序列流,以及编码单元序列流的解码播放,直至该用户在较长时间内停止通过用户设备1执行用户操作。
优选地,解封装装置13还对所述视频流进行解封装处理,以获得一个或多个编码单元序列流及其扩充信息。具体地,解封装装置13通过对接收装置12自网络设备2接收的视频流进行解封装处理,不仅获得视频流中编码单元序列流,还获得编码单元序列流的扩充信息。在此,该扩充信息包括但不限于:编码单元的编号、时间戳、数据长度、播放时间、是否为关键帧,是否与上一编码单元连续等。本领域技术人员应能理解上述扩充信息仅为举例,其他现有的或今后可能出现的扩充信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在再一优选实施例中,用户设备1还包括获取装置(未示出),获取所述视频访问请求的统计信息,其中,统计信息包括但不限于,以下各项中的至少任一项:1)播放状态,例如未启动、正常播放、缓冲、暂定、播放缓冲百分比、缓存中的数据可以支持播放的时间等;2)下载统计,例如开始时刻、总共下载的字节数、总共上传的字节数、Http下载的字节数、Http下载个数、P2P下载的字节数、P2P长传的字节数、P2P下载个数、候补P2P下载的资源个数、总共的上传Cache请求数、总共的长传Cache命中数、下载总共持续时长等;3)下载速度,例如当前下载速度(5S统计、20S统计)、当前上传速度(5S统计、20S统计)、最近一分钟平均下载速度、最近一分钟平均上传速度、历史平均下载速度、历史平均上传速度、当前1S的下载速度、当前1S的上传速度等。本领域技术人员应能理解上述统计信息仅为举例,其他现有的或今后可能出现的统计信息如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
特别地,获取装置与发送装置11、接收装置12、解封装装置13和解码装置14不是顺序工作的,而是可以并行工作的。具体地,发送装置11向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,接收装置12接收自网络设备2发送的与所述视频访问请求相对应的视频流;随后,解封装装置13对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;解码装置14解码播放所述编码单元序列流;与此过程同时,获取装置也在工作,获取所述视频访问请求的统计信息,直至该用户在较长时间内停止通过用户设备1执行用户操作。
优选地,用户设备1还包括关闭装置(未示出),关闭所述视频访问请求。具体地,例如,当用户关闭视频流时,关闭装置关闭与该视频流相对应的视频访问请求,停止该视频流的接收、解封装和解码播放,并释放所分配的内存以及占用的用户设备1的资源。例如,当前用户正在观看影片“盗梦空间”,用户点击影片播放界面上的停止或者关闭按钮时,关闭装置相应地关闭与“盗梦空间”相对应的视频访问请求,并释放相关的***资源。
更优选地,发送装置11、接收装置12、解封装装置13、解码装置14和关闭装置是持续不断工作的。具体地,发送装置11向网络设备2发送视频访问请求,相应地,网络设备2接收所述视频访问请求;接下来,接收装置12接收自网络设备2发送的与所述视频访问请求相对应的视频流;随后,解封装装置13对所述视频流进行解封装处理,以得到一个或多个编码单元序列流;解码装置14解码播放所述编码单元序列流;关闭装置关闭视频访问请求。在此,本领域技术人员应理解“持续”是指发送装置11、接收装置12、解封装装置13、解码装置14和关闭装置分别按照设定的或实时调整的工作模式要求进行视频访问请求的发送,视频流的获取,视频流的解封装以获得编码单元序列流,编码单元序列流的解码播放,以及视频访问请求的关闭,直至该用户在较长时间内停止通过用户设备1执行用户操作。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。