书签 分享 收藏 举报 版权申诉 / 14

一种流媒体播放方法及装置.pdf

  • 上传人:柴****2
  • 文档编号:4887732
  • 上传时间:2018-11-22
  • 格式:PDF
  • 页数:14
  • 大小:2.04MB
  • 摘要
    申请专利号:

    CN201310246666.0

    申请日:

    2013.06.20

    公开号:

    CN104243430A

    公开日:

    2014.12.24

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):H04L 29/06申请日:20130620|||公开

    IPC分类号:

    H04L29/06

    主分类号:

    H04L29/06

    申请人:

    腾讯科技(深圳)有限公司

    发明人:

    周洪权

    地址:

    518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

    优先权:

    专利代理机构:

    北京品源专利代理有限公司 11332

    代理人:

    马晓亚

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种流媒体播放方法及装置,该方法包括:获取媒体流的索引文件,其中媒体流包括索引文件和至少两个切片文件,索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息;根据索引文件获取媒体流的各切片文件;将所获取到的所有的切片文件合并转换为一个本地媒体文件;利用本地播放器播放本地媒体文件;其中,本地媒体文件的格式为本地播放器所支持的格式。本发明能够将本地播放器非支持的格式的媒体流利用本地播放器进行播放。

    权利要求书

    权利要求书1.  一种流媒体播放方法,其特征在于,所述方法包括:获取媒体流的索引文件,其中所述媒体流包括索引文件和至少两个切片文件,所述索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息;根据所述索引文件获取所述媒体流的各切片文件;将所获取到的所有的切片文件合并转换为一个本地媒体文件;利用本地播放器播放所述本地媒体文件;其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。2.  根据权利要求1所述的流媒体播放方法,其特征在于,所述将所获取到的所有的切片文件合并转换为一个本地媒体文件的步骤包括:按照所述时间信息,将所获取到的所有的切片文件合并为一个完整文件;将所述完整文件转换成所述本地播放器所支持的播放格式的本地媒体文件。3.  根据权利要求1所述的流媒体播放方法,其特征在于,获取媒体流的索引文件的步骤包括:向服务器发送媒体播放请求;从所述服务器获取媒体流的索引文件。4.  根据权利要求3所述的流媒体播放方法,其特征在于,根据所述索引文件,获取所述媒体流的各切片文件的步骤包括:解析所述索引文件,确定所述媒体流的各切片文件的地址信息;根据所述媒体流的各切片文件的地址信息,从所述服务器获取各切片文件。5.  根据权利要求3所述的流媒体播放方法,其特征在于,根据所述索引文件,获取所述媒体流的各切片文件的步骤包括:解析所述索引文件,确定所述媒体流的各切片文件的地址信息和所述地址信息中所包含的名称信息;对本地存储器进行扫描,获取所述本地存储器中已下载的切片文件,其中已下载的切片文件为与所述媒体流的切片文件名称相一致的切片文件;根据所述地址信息,从所述服务器获取除已下载的切片文件之外的其它切片文件。6.  根据权利要求5所述的流媒体播放方法,其特征在于,根据所述索引文件,获取所述媒体流的各切片文件的步骤之后还包括:将从所述服务器获取的各切片文件保存至本地存储器。7.  根据权利要求1所述的流媒体播放方法,其特征在于,所述媒体流为基于超文本传输协议实时流协议的媒体流,所述索引文件为M3U8索引文件,所述切片文件为传输流切片文件。8.  根据权利要求1所述的流媒体播放方法,其特征在于,所述本地媒体文件的格式为FLV格式,所述本地播放器为Flash播放器。9.  一种流媒体播放装置,其特征在于,所述装置包括:索引文件获取模块,用于获取媒体流的索引文件,其中所述媒体流包括索引文件和至少两个切片文件,所述索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息;切片文件获取模块,用于根据所述索引文件获取所述媒体流的各切片文件;转换模块,用于将所获取到的所有的切片文件合并转换为一个本地媒体文件;播放模块,用于利用本地播放器播放所述本地媒体文件;其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。10.  根据权利要求9所述的流媒体播放装置,其特征在于,所述转换模块具体用于:按照所述时间信息,将所获取到的所有的切片文件合并为一个完整文件;将所述完整文件转换成所述本地播放器所支持的播放格式的本地媒体文件。11.  根据权利要求9所述的流媒体播放装置,其特征在于,所述索引文件获取模块具体用于:向服务器发送媒体播放请求;从所述服务器获取媒体流的索引文件。12.  根据权利要求11所述的流媒体播放装置,其特征在于,所述切片文件获取模块包括:解析子模块,用于解析所述索引文件,确定所述媒体流的各切片文件的地址信息;获取子模块,用于根据所述媒体流的各切片文件的地址信息,从所述服务器获取各切片文件。13.  根据权利要求11所述的流媒体播放装置,其特征在于,所述切片文件获取模块包括:解析子模块,用于解析所述索引文件,确定所述媒体流的各切片文件的地址信息和所述地址信息中所包含的名称信息;第一获取子模块,用于对本地存储器进行扫描,获取所述本地存储器中已下载的切片文件,其中已下载的切片文件为与所述媒体流的切片文件名称相一致的切片文件;第二获取子模块,用于根据所述地址信息,从所述服务器获取除已下载的 切片文件之外的其它切片文件。14.  根据权利要求13所述的流媒体播放装置,其特征在于,所述装置还包括存储模块,用于将所述切片文件获取模块获取到的各切片文件保存至所述本地存储器。15.  根据权利要求9所述的流媒体播放装置,其特征在于,所述媒体流为基于超文本传输协议实时流协议的媒体流,所述索引文件为M3U8索引文件,所述切片文件为传输流切片文件。16.  根据权利要求9所述的流媒体播放装置,其特征在于,所述本地媒体文件的格式为FLV格式,所述本地播放器为Flash播放器。

    说明书

    说明书一种流媒体播放方法及装置
    技术领域
    本发明涉及信息技术领域,具体涉及流媒体技术领域,尤其涉及一种流媒体播放方法及装置。
    背景技术
    通过互联网获取流媒体并进行播放,已经成为用户设备(例如智能手机、台式电脑、笔记本电脑)上最重要的功能之一。传统的流媒体传输是基于专门的流媒体传输协议来实现的,例如RTMP(Routing Table Maintenance Protocol,路由选择表维护协议)、RTSP(Real Time Streaming Protocol,实时流传输协议)、MMS(Multimedia Message Service,多媒体短信服务)协议等。但是,采用基于上述专门的流媒体传输协议对流媒体进行传输时,在实际的网络环境中通常会由于防火墙、NAT(Network Address Translation,网络地址转换)路由器的存在,而无法建立有效的传输数据的网络通路。
    为此,苹果公司提出HLS(HTTP Live Streaming,超文本传输协议实时流)协议,将原本连续的媒体流切分为若干个TS(Transport Stream,传输流)切片文件,并相应生成一个M3U8索引文件(播放列表文件),然后将TS切片文件和M3U8索引文件存储至HTTP服务器。所述若干个TS切片文件和M3U8索引文件组成HLS媒体流。相应的终端,例如IPhone、Ipad、Itouch、Mac,利用HTTP协议从HTTP服务器获取M3U8索引文件,并根据M3U8索引文件提供的URL(Uniform Resourse Locator,统一资源定位符)获取TS切片文件,进而实现对流媒体的播放。由于流媒体数据通过HTTP协议传输,可以完全不用考虑防火墙或者代理的问题,而且TS切片文件的时长很短,相应的终端可以很快的选择 和切换码率,以适应不同带宽条件下的播放。然而,目前诸多除苹果终端外的其它被广泛使用的终端不支持对基于HLS协议的媒体流的播放,并且即便是支持基于HLS协议的媒体流播放的终端也不能够实现基于HLS协议的媒体流的离线播放,严重影响用户的视频观看体验。
    发明内容
    鉴于以上理由,本发明实施例提出一种流媒体播放方法及装置,来解决以上背景技术部分提到的技术问题。
    一种流媒体播放方法,所述方法包括:
    获取媒体流的索引文件,其中所述媒体流包括索引文件和至少两个切片文件,所述索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息;
    根据所述索引文件获取所述媒体流的各切片文件;
    将所获取到的所有的切片文件合并转换为一个本地媒体文件;
    利用本地播放器播放所述本地媒体文件;
    其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。
    相应地,本发明实施例还提供了一种流媒体播放装置,所述装置包括:
    索引文件获取模块,用于获取媒体流的索引文件,其中所述媒体流包括索引文件和至少两个切片文件,所述索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息;
    切片文件获取模块,用于根据所述索引文件获取所述媒体流的各切片文件;
    转换模块,用于将所获取到的所有的切片文件合并转换为一个本地媒体文件;
    播放模块,用于利用本地播放器播放所述本地媒体文件;
    其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。
    相较于现有技术,本发明实施例通过将所获取到的所有的切片文件合并转换为一个本地媒体文件,利用本地播放器播放本地媒体文件,进而实现了终端上对本地播放器不支持的格式的媒体流的播放,提高了用户对流媒体的观看体验。
    附图说明
    图1是本发明第一实施例提供的一种流媒体播放方法的流程示意图;
    图2是本发明第一实施例提供的一种基于HLS协议的流媒体传输系统的结构示意图;
    图3是本发明第二实施例提供的一种流媒体播放方法的流程示意图;
    图4是本发明第二实施例提供的根据所述M3U8索引文件,从HTTP服务器、本地存储器获取所述媒体流的各TS切片文件的流程示意图;
    图5是本发明第三实施例提供的一种流媒体播放装置的结构示意图;
    图6是本发明第四实施例提供的一种流媒体播放装置的结构示意图。
    具体实施方式
    下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
    本发明实施例的流媒体播放方法、流媒体播放装置可以运行于安装有Android(谷歌公司开发的用于便携式可移动智能设备的操作系统平台)、iOS(苹果公司开发的用于便携式可移动智能设备的操作系统平台)、Windows  Phone(微软公司开发的用于便携式可移动智能设备的操作系统平台)等操作系统的终端中,该终端可以是智能手机、平板电脑、个人数字助理、笔记本电脑、台式电脑等等中的任意一种,该终端中可以包括中央处理器、存储器、开关器件、电源、时钟信号生成器、图像处理器、声音处理器等中的任意组合,上述中央处理器、存储器、开关器件、电源、时钟信号生成器、图像处理器、声音处理器等中的任意组合用于实现本发明的实施例的流媒体播放方法及流媒体播放装置中的功能。
    在本发明实施例的流媒体播放方法、流媒体播放装置中,所涉及的媒体流为包括索引文件和至少两个切片文件,且所述索引文件记录有所述至少两个切片文件中各切片文件的时间信息和地址信息的媒体流,以下各实施例均以基于HLS协议的媒体流为例进行阐述。其中,基于HLS协议的媒体流的索引文件为M3U8索引文件,切片文件为TS文件。
    图1-2示出了本发明的第一实施例。
    图1是本发明第一实施例提供的一种流媒体播放方法的流程示意图。参见图1,该方法包括:
    步骤S101、获取基于HLS协议的媒体流的M3U8索引文件。
    图2是本发明第一实施例提供的一种基于HLS协议的流媒体传输系统的结构示意图。参见图2,发射流媒体的卫星201或者采集流媒体的摄像机202将流媒体传送至编码切割装置203中;编码切割装置203对所接收的流媒体进行编码和封装,生成TS文件,并采用切片工具将TS文件切割成多个连续的、固定长度的TS小文件得到TS切片文件,同时生成与TS切片文件相对应的M3U8索引文件;HTTP服务器204接收并存储编码切割装置203发送的基于HLS协议的媒体流:TS切片文件和M3U8索引文件;台式电脑205或者智能手机206从HTTP 服务器204不断地下载并播放TS切片文件。
    在本实施例中,可通过无线连接方式将媒体播放请求发送给存储有TS切片文件和M3U8索引文件的HTTP服务器,其中所述媒体播放请求为HTTP请求;然后,接收所述HTTP服务器提供的对上述媒体播放请求的回复,其中所述回复包含了与媒体播放请求相对应的基于HLS协议的媒体流的M3U8索引文件。M3U8索引文件记录有至少两条时间信息及与所述至少两条时间信息中的每一条时间信息对应的TS切片文件的时间信息(播放长度)和地址信息(定位所述TS切片文件的URL)。
    步骤S102、根据所述M3U8索引文件,从HTTP服务器获取所述媒体流的各TS切片文件。
    在步骤S102中,首先按照M3U格式和UTF-8字符编码格式对M3U8索引文件进行解析,确定所述媒体流的各TS切片文件的地址信息;然后向HTTP服务器发送TS切片文件获取请求,其中该请求包括了所有TS切片文件的地址信息;最后接收HTTP服务器根据所述请求发送的各TS切片文件。
    例如,一个基于HLS协议的媒体流的M3U8索引文件可以描述为:
    #EXTM3U
    #EXT-X-MEDIA-SEQUENCE:6
    #EXT-X-TARGETDURATION:10
    #EXTINF:10,
    http://live.example.com/1.ts
    #EXTINF:10,
    http://live.example.com/2.ts
    #EXTINF:10,
    http://live.example.com/3.ts
    通过对上述M3U8索引文件进行解析,得出该M3U8索引文件共包括3个TS切片文件,所述3个TS切片文件的名称信息分别为:1.ts、2.ts、3.ts,时间信息(播放长度)分别为10秒、10秒、10秒,地址信息URL分别为:http://live.example.com/1.tshttp://live.example.com/2.tshttp://live.example.com/3.ts
    步骤S103、将所获取到的所有的TS切片文件合并转换为一个本地媒体文件。
    从HTTP服务器获取到所有的TS切片文件后,按照M3U8索引文件中的时间信息将所有的TS切片文件合并为一个完整TS文件,然后将该完整TS文件转换成本地播放器所支持的播放格式的本地媒体文件。其中,转换过程可根据TS封装格式标准及本地播放器所支持的播放格式标准实现。例如,可将完整TS文件转换成本地Flash播放器所支持的FLV格式的本地媒体文件。当然,本地媒体文件的格式还可以是MPEG、MPG、DAT、AVI、MOV、3GP等为本地播放器所支持的格式。
    步骤S104、利用本地播放器播放所述本地媒体文件。
    在本实施中,本地播放器为终端上已安装好的流媒体播放器。
    本发明第一实施例,通过将所获取到的所有的传输流切片文件合并转换为一个本地媒体文件,利用本地播放器播放本地媒体文件,能够使得除苹果终端外的其它被广泛使用的终端也能够播放基于HLS协议的媒体流。
    图3-4示出了本发明的第二实施例。
    图3是本发明第二实施例提供的一种流媒体播放方法的流程示意图。参见图3,该方法包括:
    步骤S301、获取基于HLS协议的媒体流的M3U8索引文件。
    与第一实施例的步骤S101相同,这里不再赘述。
    步骤S302、根据所述M3U8索引文件,从HTTP服务器、本地存储器获取所述媒体流的各TS切片文件。
    图4是本发明第二实施例提供的根据所述M3U8索引文件,从HTTP服务器、本地存储器获取所述媒体流的各TS切片文件的流程示意图。参见图4,步骤S302进一步包括:
    子步骤S3021、解析所述M3U8索引文件,确定所述媒体流的各TS切片文件的地址信息和地址信息中所包含的名称信息;
    子步骤S3022、对本地存储器进行扫描,获取所述本地存储器中已下载的TS切片文件,其中已下载的TS切片文件为与所述媒体流的TS切片文件名称相一致的TS切片文件;
    子步骤S3023、根据所述地址信息,从HTTP服务器获取除已下载的TS切片文件之外的其它TS切片文件。
    在子步骤S3023中,可先向HTTP服务器发送TS切片文件获取请求,其中该请求包括了除已下载的TS切片文件之外的其它TS切片文件的地址信息;然后接收HTTP服务器根据所述请求发送的TS切片文件。
    步骤S303、将从HTTP服务器获取的各TS切片文件保存至本地存储器。
    在根据所述M3U8索引文件,获取到所述媒体流的各TS切片文件之后,将从HTTP服务器获取的各TS切片文件保存至本地存储器,其中所保存的位置可以是外存(例如,本地磁盘)或内存中。由于内存通常用来存储CPU运算所需要的代码,为了减小内存负担、不影响CPU执行速度,优选的,将所述各TS切片文件保存至本地磁盘。
    步骤S304、将所获取到的所有的TS切片文件合并转换为一个本地媒体文件。
    与第一实施例的步骤S103相同,这里不再赘述。
    步骤S305、利用本地播放器播放所述本地媒体文件。
    与第一实施例的步骤S104相同,这里不再赘述。
    在本实例中,步骤S303和步骤S304-S305是没有先后顺序关系的,可先执行步骤S304-S305,再执行步骤S303,或者先执行步骤S304,再执行步骤S303,最后执行步骤S305。
    本发明第二实施例通过将所获取到的所有的传输流切片文件合并转换为一个本地媒体文件,利用本地播放器播放本地媒体文件,能够使得除苹果终端外的其它被广泛使用的终端也能够支持基于HLS协议的媒体流的播放;通过将各传输流切片文件保存至本地存储器,能够使得后续在重复播放HLS媒体时可无需再从HTTP服务器获取传输流切片文件,而直接查找本地存储器中存储的传输流切片文件,这样可以不必受限于网络环境,节省上网流量,大大提升了用户的视频观看体验。
    图5示出了本发明的第三实施例。
    图5是本发明第三实施例提供的一种流媒体播放装置的结构示意图。参见图5,该装置包括:索引文件获取模块501,用于获取基于HLS协议的媒体流的M3U8索引文件;切片文件获取模块502,用于根据所述M3U8索引文件,从HTTP服务器获取所述媒体流的各TS切片文件;转换模块503,用于将所获取到的所有的TS切片文件合并转换为一个本地媒体文件;播放模块504,用于利用本地播放器播放所述本地媒体文件。其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。
    在本实施例中,索引文件获取模块501可通过无线连接方式将媒体播放请求发送给存储有TS切片文件和M3U8索引文件的HTTP服务器,其中所述媒体播放请求为HTTP请求;然后,索引文件获取模块501接收所述HTTP服务器提供的对上述媒体播放请求的回复,其中所述回复包含了与媒体播放请求相对应的基于HLS协议的媒体流的M3U8索引文件。M3U8索引文件记录有至少两条时间信息及与所述至少两条时间信息中的每一条时间信息对应的TS切片文件的时间信息(播放长度)和地址信息(定位所述TS切片文件的URL)。
    在本实施例中,切片文件获取模块502包括:
    解析子模块5021,用于首先按照M3U格式和UTF-8字符编码格式对M3U8索引文件进行解析,确定所述媒体流的各TS切片文件的地址信息;
    获取子模块5022,用于根据所述媒体流的各传输流切片文件的地址信息,从HTTP服务器获取各传输流切片文件。
    具体的,获取子模块5022先向HTTP服务器发送TS切片文件获取请求,其中该请求包括了所有TS切片文件的地址信息,而后接收HTTP服务器根据所述请求发送的各TS切片文件。
    在本实施例中,在切片文件获取模块502从HTTP服务器获取到所有的TS切片文件后,转换模块503按照M3U8索引文件记录的时间信息将所有的TS切片文件合并为一个完整TS文件,然后将该完整TS文件转换成本地播放器所支持的播放格式的一个本地媒体文件。其中,转换过程可根据TS封装格式标准及本地播放器所支持的播放格式标准实现。例如,转换模块503可将完整TS文件转换成本地Flash播放器所支持的FLV格式的本地媒体文件。当然,本地媒体文件的格式还可以是MPEG、MPG、DAT、AVI、MOV、3GP等为本地播放器所支持的格式。
    本发明第三实施例,通过将所获取到的所有的传输流切片文件合并转换为一个本地媒体文件,利用本地播放器播放本地媒体文件,能够使得除苹果终端外的其它被广泛使用的终端也能够支持基于HLS协议的媒体流的播放。
    图6示出了本发明的第四实施例。
    图6是本发明第四实施例提供的一种流媒体播放装置的结构示意图。参见图6,该装置包括:索引文件获取模块601,用于获取基于HLS协议的媒体流的M3U8索引文件;切片文件获取模块602,用于根据所述M3U8索引文件,从HTTP服务器、本地存储器获取所述媒体流的各TS切片文件;存储模块603,用于将切片文件获取模块602从HTTP服务器获取的各TS切片文件保存至本地存储器;转换模块604,用于将所获取到的所有的TS切片文件合并转换为一个本地媒体文件;播放模块605,用于利用本地播放器播放所述本地媒体文件。其中,所述本地媒体文件的格式为所述本地播放器所支持的格式。
    在本实施例中,索引文件获取模块601与第三实施例中的索引文件获取模块501的功能相同,转换模块604与第三实施例中的转换模块503的功能相同,播放模块605与第三实施例中的播放模块504的功能相同,这里均不再做详细赘述。
    在本实施例中,切片文件获取模块602包括:
    解析子模块6021,用于解析所述M3U8索引文件,确定所述媒体流的各TS切片文件的地址信息和地址信息中所包含的名称信息;
    第一获取子模块6022,用于对本地存储器进行扫描,获取所述本地存储器中已下载的TS切片文件,其中已下载的TS切片文件为与所述媒体流的TS切片文件名称相一致的TS切片文件;
    第二获取子模块6023,用于根据所述地址信息,从HTTP服务器获取除已下 载的TS切片文件之外的其它TS切片文件。
    具体的,第二获取子模块6023可先向HTTP服务器发送TS切片文件获取请求,其中该请求包括了除已下载的TS切片文件之外的其它TS切片文件的地址信息,然后接收HTTP服务器根据所述请求发送的TS切片文件。
    在本实施例中,存储模块603将从HTTP服务器获取的各TS切片文件保存至本地存储器,其中所保存的位置可以是外存(例如,本地磁盘)或内存中。由于内存通常用来存储CPU运算所需要的代码,为了减小内存负担、不影响CPU执行速度,优选的,存储模块603将所述各TS切片文件保存至本地磁盘。
    本发明第四实施例通过将所获取到的所有的传输流切片文件合并转换为一个本地媒体文件,利用本地播放器播放所述本地媒体文件,能够使得除苹果终端外的其它被广泛使用的终端也能够支持基于HLS协议的媒体流的播放;通过将各传输流切片文件保存至本地存储器,能够使得后续在重复播放HLS媒体时可无需再从HTTP服务器获取传输流切片文件,而直接查找本地存储器中存储的传输流切片文件,这样可以不必受限于网络环境,节省上网流量,大大提升了用户的视频观看体验。
    以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
    以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

    关 键  词:
    一种 流媒体 播放 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种流媒体播放方法及装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4887732.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1