CN106550245A - 具有压缩播放列表的实时或近实时流传输 - Google Patents

具有压缩播放列表的实时或近实时流传输 Download PDF

Info

Publication number
CN106550245A
CN106550245A CN201611125055.0A CN201611125055A CN106550245A CN 106550245 A CN106550245 A CN 106550245A CN 201611125055 A CN201611125055 A CN 201611125055A CN 106550245 A CN106550245 A CN 106550245A
Authority
CN
China
Prior art keywords
play list
list file
file
client devices
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611125055.0A
Other languages
English (en)
Other versions
CN106550245B (zh
Inventor
R·潘特斯
J·D·巴特森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN106550245A publication Critical patent/CN106550245A/zh
Application granted granted Critical
Publication of CN106550245B publication Critical patent/CN106550245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/913Multimedia
    • Y10S707/916Audio

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请涉及具有压缩播放列表的实时或近实时流传输。方法和装置使用诸如符合HTTP的协议之类的传输协议提供实时或近实时的内容流传输。在一个实施例中,一种方法包括提供对播放列表文件(例如,更新的播放列表)的请求(300)并且使用或针对所述请求指定压缩协议;所述请求可以来自正从web服务器请求播放列表的客户机设备。web服务器可以按压缩格式提供播放列表。

Description

具有压缩播放列表的实时或近实时流传输
本申请是于2013年7月9日提交的题为“具有压缩播放列表的实时或近实时流传输”的发明专利申请201180064518.6的分案申请。
相关申请
本申请要求于2009年12月21日提交的美国临时专利申请61/288,828(案卷号P7437Z6)的权益,并且特此将该临时申请通过引用结合在此;并且本申请也是如下美国申请的部分继续申请:
(1)要求于2008年12月31日提交的美国临时专利申请No.61/142,110(案卷号P7437Z)、于2009年3月16日提交的美国临时专利申请No.61/160,693(案卷号P7437Z2)、于2009年3月17日提交的美国临时专利申请No.61/161,036(案卷号P7437Z3)、于2009年4月7日提交的美国临时专利申请No.61/167,524(案卷号P7437Z4)的权益的、于2009年6月5日提交的题为“REAL-TIME OR NEAR REAL-TIME STREAMING”的申请No.12/479,690(案卷号P7437US1);以及
(2)要求于2008年12月31日提交的美国临时专利申请No.61/142,110(案卷号P7437Z)、于2009年3月16日提交的美国临时专利申请No.61/160,693(案卷号P7437Z2)、于2009年3月17日提交的美国临时专利申请No.61/161,036(案卷号P7437Z3)、于2009年4月7日提交的美国临时专利申请No.61/167,524(案卷号P7437Z4)的权益的、于2009年6月5日提交的题为“VARIANT STREAMS FOR REAL-TIME OR NEAR REAL-TIME STREAMING”的申请No.12/479,698(案卷号P7437US2);以及
(3)要求于2008年12月31日提交的美国临时专利申请No.61/142,110(案卷号P7437Z)、于2009年3月16日提交的美国临时专利申请No.61/160,693(案卷号P7437Z2)、于2009年3月17日提交的美国临时专利申请No.61/161,036(案卷号P7437Z3)、于2009年4月7日提交的美国临时专利申请No.61/167,524(案卷号P7437Z4)的权益的、于2009年6月5日提交的题为“UPDATABLE REAL-TIME OR NEAR REAL-TIME STREAMING”的申请No.12/479,732(案卷号P7437US3);
(4)要求于2008年12月31日提交的美国临时专利申请No.61/142,110(案卷号P7437Z)、于2009年3月16日提交的美国临时专利申请No.61/160,693(案卷号P7437Z2)、于2009年3月17日提交的美国临时专利申请No.61/161,036(案卷号P7437Z3)、于2009年4月7日提交的美国临时专利申请No.61/167,524(案卷号P7437Z4)的权益的、于2009年6月5日提交的题为“PLAYLISTS FOR REAL-TIME OR NEAR REAL-TIME STREAMING”的申请No.12/479,735(案卷号P7437US4);以及
(5)要求于2009年9月8日提交的美国临时专利申请No.61/240,648(案卷号P7437Z5)的权益的、于2010年9月8日提交的申请No.12/878,002(案卷号P7437X)。申请No.12/878,002(案卷号P7437X)通过引用在其与本申请相一致的范围内结合在此。
技术领域
本发明的各实施例涉及数据传输技术。更具体地,本发明的各实施例涉及使用诸如超文本传输协议(HTTP)的非流传输协议来允许数据流传输的技术。
背景技术
内容的流传输一般地涉及从服务器设备持续传送并由客户机设备接收的多媒体内容。该内容通常在其由流传输服务器递送的同时被呈现给终端用户。该名称指代媒体的递送方法而非媒体本身。
当前的流传输服务一般需要专用服务器来向终端用户分发“现场”内容。在任何大规模部署中,这会导致极高的成本并且需要专门的技能进行设置和运行。这导致了可用于流传输的内容库比期望要少。
发明内容
在一个实施例中,一种方法包括提供对播放列表的请求并在该请求中指定该播放列表能够被压缩,并且响应于所述请求,在服务器能够以压缩形式提供播放列表的情况下接收压缩形式的所述播放列表(否则,该播放列表可由服务器以未压缩的格式提供)。可以使用由现有HTTP标准压缩技术支持的压缩技术或格式(诸如deflate或gzip)来压缩(也可称为编码)播放列表。发送和接收压缩格式的播放列表能够显著减小传送和接收的数据大小,尤其是在播放列表随时间增大的情况下(例如,在该播放列表用于的是长时间棒球比赛的情况下)。在一个实施例中,对播放列表使用压缩对于客户机(请求播放列表的系统)和服务器(通过发送播放列表对该请求作出响应的系统)两者是可选的。作为HTTP标准的一部分的压缩技术或格式的使用使得任何兼容web服务器都能够提供压缩的播放列表,并且使得任何兼容的客户机都能够解压缩并使用该播放列表。
附图说明
本发明以例示而非限制的方式示出,并且附图中类似参考编号指代相似元素。
图1是能够实时或近实时发送和接收内容的服务器和客户机的一个实施例的框图。
图2A是用于一个或多个服务器设备使用非流传输协议支持媒体内容的技术的一个实施例的流程图。
图2B是用于一个或多个服务器设备向一个或多个客户机设备提供动态更新的播放列表的技术的一个实施例的流程图。
图2C是用于一个或多个服务器设备使用多比特率向客户机设备提供媒体内容的技术的一个实施例的流程图。
图3A是用于客户机设备使用非流传输协议支持内容的流传输的技术的一个实施例的流程图。
图3B是用于客户机设备使用多比特率支持内容的流传输的技术的一个实施例的流程图。
图4是服务器流代理的一个实施例的框图。
图5是客户机流代理的一个实施例的框图。
图6示出了具有多个标签的播放列表文件的一个实施例。
图7是本文描述的经组装流回放技术的一个实施例的流程图。
图8是电子系统的一个实施例的框图。
图9A是示出了客户机设备如何能够在变体播放列表内的替换内容之间进行切换的例子的流程图。
图9B是示出了客户机设备如何能够在两个播放列表内的内容之间进行切换的进一步的流程图。
图9C是示出了客户机设备如何能够使用音频模式匹配而在内容之间进行切换的进一步的流程图。
图9D图示了如何使用音频模式匹配实现图9C的方法。
图10是提供多个冗余位置的技术的一个实施例的流程图,所述多个冗余位置使用替换流将媒体内容提供给客户机设备。
图11例示了根据一个实施例在其中客户机1102使用一个或多个URL进行双向通信的网络。
具体实施方式
在随后的描述中将阐述多个特定细节。然而,可以在没有这些特定细节的情况下实践本发明的各实施例。在其他实例中,没有详细示出周知的电路、结构和技术,以免模糊对本说明书的理解。
本说明书包括受版权保护的材料,诸如图形用户界面图像的图解。版权的所有人(包括本发明的受让人)由此保留他们对这些材料的权利(包括版权)。版权所有人并不反对任何人对本专利文档或专利公开如其出现在专利商标局的文件或记录中那样进行复制再现,但在其他情况下对无论什么都保留所有权利。版权所有-苹果公司2009(CopyrightApple Inc.2009.)
在一个实施例中,本文描述的技术和部件可以包括使用非流传输协议(例如,HTTP)和其他技术(例如,移动图形专家组(MPEG)流)递送流传输体验的机制。例如,近实时流传输体验可以通过使用HTTP广播“现场”音乐或体育事件、现场新闻、Web相机馈送等来提供。在一个实施例中,协议可以将引入的媒体数据分段为多个媒体文件,并将这些分段媒体文件存储在服务器上。该协议还可以建立包括统一资源标识符(URI)的播放列表文件,统一资源标识符用于将客户机引导至存储在服务器上的分段媒体文件。当根据(一个或多个)播放列表回放分段媒体文件时,客户机可以向用户提供“现场”事件的近实时广播。还能够以类似方式提供预先记录的内容。
在一个实施例中,服务器可以将补充或替换媒体内容(例如,广告、与体育事件相关的统计信息、主要呈现的附加媒体内容)动态引入广播事件。例如,在客户机回放媒体事件期间,服务器可以向播放列表文件添加额外的URI,该URI可以标识客户机能够从其下载补充媒体文件的位置。可以指令客户机周期性地从服务器检索一个或多个更新的播放列表文件,以访问已由服务器引入的任何补充或附加(或两者)媒体内容。
在一个实施例中,服务器可以在累积模式或滚动模式下操作。在累积模式中,服务器可以创建播放列表文件并且将媒体文件标识符附加到播放列表文件的结尾。客户机随后可以在流下载时访问来自单个播放列表文件的该流的任何部分(例如,用户可从演出节目的中间开始)。在滚动模式中,服务器可以通过基于滚动从播放列表文件的开头移除媒体文件标识符来限制媒体文件的可用性,藉此提供客户机设备可访问的媒体内容滑动窗。服务器还可以向播放列表添加媒体文件标识符,并且在滚动模式中,服务器可以将媒体文件的可用性限制为最近被添加至播放列表的那些媒体文件。客户机于是重复地下载播放列表文件的更新副本,以继续观看。用于播放列表下载的滚动基础在内容潜在地时间无限时(例如,来自持续操作的web摄像头的内容)会是有用的。客户机可以在滚动模式下持续重复请求播放列表,直到其发现播放列表中的结尾标签为止。
在一个实施例中,上述机制通过提供相同呈现的变体流来支持比特率切换。例如,可以在服务器上存储待供给(serve)呈现的若干版本。每个版本可以具有基本相同的内容,但以不同的比特率编码。这可以允许客户机设备在不累及回放连贯性的情况下取决于例如可用带宽的检测在各比特率之间进行切换。
在一个实施例中,可以提供保护特征,由此防止内容的未经授权的使用。例如,非顺序媒体文件编号可以用于防止预测。还可以使用媒体文件加密。还可以使用部分媒体内容列表。还可以提供附加的和/或不同的保护特征。
图1是一个能够发送和接收实时或近实时内容的服务器和客户机的实施例的框图。图1的例子提供了经网络耦接两个客户机和一服务器的简单服务器-客户机连接。使用在此描述的技术和机制,可以支持任意数量的客户机。进一步地,根据在此描述的技术和机制,多个服务器可以提供内容和/或可以一起操作以提供内容。例如,一个服务器可以创建内容,创建播放列表并创建多个媒体(例如,文件),而其他服务器存储并发送创建的内容。
网络110可以是有线、无线(例如,IEEE 802.11、802.16)或其任意组合的任何类型的网络。例如,网络110可以是因特网或内联网。另举一例,网络110可以是蜂窝网络(例如,3G、CDMA)。在一个实施例中,客户机设备150和180可以具有经多种网络类型进行通信的能力(例如,每个设备可以经WiFi无线LAN通信,还可以经无线蜂窝电话网络通信)。例如,客户机150和180可以是能够经由蜂窝无线电电话网络以及数据网络进行通信的智能电话或具有蜂窝功能的个人数字助理。这些设备可以具有经任一类型的网络、甚至按需在网络间切换以利用在此描述的流传输机制的能力。
服务器120能以本领域内已知的任何方式作为HTTP服务器操作。是服务器120包括使用HTTP协议提供内容的HTTP服务器代理145。虽然图1的例子结合HTTP描述,但是也能以类似方式利用其他协议。分段器130和索引器135是驻留在服务器120(或多个服务器)上以如本文所述结合播放列表文件提供媒体文件内的内容的代理。这些媒体文件和播放列表文件可以使用HTTP协议通过HTTP服务器代理145(或通过其他服务器)经网络110来提供。在此描述的代理可由硬件、软件、固件或其组合实现。
分段器130可以用于将媒体数据流分割成可通过HTTP协议传送的多个媒体文件。索引器135可以用于创建与分段媒体文件相对应的播放列表文件,以使得客户机设备可以重新组装媒体文件,由此为服务器120所提供的内容提供实时或近实时的传输。响应于来自客户机设备的一个或多个请求,HTTP服务器代理145(或其他服务器)可以传送由索引器135生成的一个或多个播放列表文件以及由分段器130生成的内容的媒体文件。服务器120还可以包括提供在此讨论的一个或多个安全功能(例如,加密)的可选安全代理140。服务器120还可以包括未在图1中例示的附加部件。
客户机设备150和180可以经网络110接收来自服务器120的播放列表文件和媒体文件。客户机设备可以是能够接收经网络传送的数据并利用经网络接收到的数据生成输出的任何类型的电子设备,例如,无线移动设备、PDA、娱乐设备、消费电子设备等。输出可以是任何媒体类型或媒体类型的组合,所述媒体类型例如包括音频、视频或其任意组合。
客户机设备150可以包括组装器代理160和输出生成器代理165。类似地,客户机设备180可以包括组装器代理190和输出生成器代理195。组装器代理160和190接收来自服务器120的播放列表文件,并且使用这些播放列表文件访问并下载来自服务器120的媒体文件。输出生成器代理165和195分别使用下载的媒体文件从客户机设备150和180生成输出。输出可由一个或多个扬声器、一个或多个显示屏、扬声器和显示屏的组合、或者任何其他输入或输出设备提供。客户机设备还可以包括用作缓冲器以如被接收时那样来存储媒体文件(例如,压缩的媒体文件或未压缩的媒体文件)的存储器(例如,闪存或DRAM等);缓冲器可以提供超出当前呈现内容时间许多秒的可呈现内容,从而能够在下载新内容的同时稍后显示缓冲内容。该缓冲器能够在客户机设备正尝试通过间歇性减缓的网络连接检索内容的同时提供可呈现内容,由此该缓冲器能够掩盖网络等待时间或连接问题。
客户机设备150和180还可以分别包括可选安全代理170和185,其提供在此讨论的一个或多个安全功能。客户机设备150和180还可以包括未在图1中例示的附加部件。
在一个实施例中,在本申请中讨论的技术可以用于经非流传输协议(例如,HTTP)传送无限多媒体数据流。各实施例还可以包括媒体数据的加密和/或流备选版本的提供(例如,提供备选比特率)。因为媒体数据可以在创建之后很快被传送,所以就能够近实时地接收数据。提供示例性的文件数据格式以及要由多媒体数据流的服务器(发送方)和客户机(接收方)采取的动作;然而,还能够支持其他格式。
能够作为仿真实时流(或近实时流)传送的媒体呈现由指示播放列表文件的统一资源指示符(URI)指定。在一个实施例中,播放列表文件是附加URI的有序列表。播放列表文件中的每个URI指代作为流分段的媒体文件,上述流分段可以是一具体节目的单个连续的媒体数据流。
为了播放该媒体数据流,客户机设备获取来自服务器的播放列表文件。客户机还获取并播放由该播放列表文件指示的每个媒体数据文件。在一个实施例中,客户机可以动态或重复地重载播放列表文件,以发现附加和/或不同的媒体分段。
播放列表文件例如可以是扩展M3U播放列表文件。在一个实施例中,使用有效扩展该M3U格式的附加标签。M3U指的是移动图形专家组音频层3统一资源定位符(MP3URL),并且是一种用于存储多媒体播放列表的格式。M3U文件是包含用于媒体播放器播放的一个或多个媒体文件的位置的文本文件。
在一个实施例中,播放列表文件是由各独立行组成的扩展M3U格式的文本文件。行可由单个LF字符或由跟随在LF字符后的CR字符终止。每一行可以是URI、空行、或以注解字符(例如,“#”)起始。URI标识要被播放的媒体文件。空行可以忽略。
以注解字符起始的行可以是注解或标签。标签可以#EXT开始,而注解行可以#开始。注解行通常会被服务器和客户机忽略。在一个实施例中,播放列表文件以UTF-8格式编码。UTF-8(8位统一代码变换格式)是长度可变的字符编码格式。在备选实施例中,可以使用其他的字符编码格式。
在随后的例子中,利用包括两个标签EXTM3U和EXTINF的扩展M3U格式。扩展M3U文件可以通过包括“#EXTM3U”的第一行与基本M3U文件加以区别。
EXTINF是描述由跟随在标签之后的URI标识的媒体文件的记录标记。在一个实施例中,在每个媒体文件URI之前加上EXTINF标签,例如:
#EXTINF:<持续时间>,<标题>
其中“持续时间”指定媒体文件的持续时间,“标题”则是目标媒体文件的标题。
在一个实施例中,下面的标签可被用于管理媒体文件的传送和回放:
EXT-X-TARGETDURATION
EXT-X-MEDIA-SEQUENCE
EXT-X-KEY
EXT-X-PROGRAM-DATE-TIME
EXT-X-ALLOW-CACHE
EXT-X-STREAM-INF
EXT-X-ENDLIST
如下将详细描述这些标签中的每一个。虽然将描述与每个新标签相关的特定格式和属性,但是替换实施例可利用不同属性、名称、格式等支持。
EXT-X-TARGETDURATION标签能够指示将被添加至该呈现的下一媒体文件的近似持续时间。其可被包括在回放文件内,并且格式可以是:
#EXT-X-TARGETDURATION:<秒>
其中“秒”指示媒体文件的持续时间。在一个实施例中,实际持续时间可能与标签指示的目标持续时间稍有不同。在一个实施例中,每个指示分段的URI将与该分段的近似持续时间相关联;例如,针对一分段的URI可以冠以指示该分段的近似持续时间的标签的前缀。
播放列表文件中的每个媒体文件URI可以具有唯一的序列号。在一个实施例中,URI的序列号(如果存在)等于在它之前URI的序列号加1。EXT-X-MEDIA-SEQUENCE标签可以指示播放列表文件内出现的第一URI的序列号并且格式可以是:
#EXT-X-MEDIA-SEQUENCE:<号码>
其中“号码”是该URI的序列号。如果播放列表文件不包括#EXT-X-MEDIA-SEQUENCE标签,则可以认为播放列表中第一URI的序列号为1。在一个实施例中,序列编号可以不是顺序的;例如,诸如1、5、7、17等的非顺序序列编号可以使得难以预测序列中的下一号码,而这能够帮助保护内容不被剽窃。用于帮助保护内容的另一选项是在任意给定时间仅展现播放列表的部分。
某些媒体文件可被加密。EXT-X-KEY标签提供能被用于解密其后跟随的媒体文件的信息,并且格式可以是:
#EXT-X-KEY:METHOD=<方法>[,URI="<URI>"]
METHOD参数指定加密方法,而URI参数(如果存在)则指定如何获取密钥。
加密方法NONE指示不加密。可以使用各种加密方法,例如AES-128,其指示使用具有128位密钥和PKCS7填料的先进加密标准(Advance Encryption Standard)加密的加密[参见RFC3852]。新的EXT-X-KEY标签取代任何在前的EXT-X-KEY标签。
具有URI参数的EXT-X-KEY标签标识密钥文件。密钥文件可以包含要用于解密播放列表文件中列出的后续媒体文件的密码密钥。例如,AES-128加密方法使用16-八位组密钥。密钥文件的格式可以是二进制格式的16个八位组包装阵列(packed array)。
AES-128的使用通常要求在加密和解密时供应相同的16-八位组初始化向量(IV)。变化IV能够用于增加密码强度。当使用AES-128加密时,可以在加密或解密媒体文件时使用媒体文件的序列号作为IV。
EXT-X-PROGRAM-DATE-TIME标签可以将下一个媒体文件的开始与绝对日期和/或时间相关联,并且能够包括或指示时区。在一个实施例中,日期/时间表示是ISO/IEC 8601:2004。标签格式可以是:
EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ss Z>
EXT-X-ALLOW-CACHE标签可被用于指示客户机是否可高速缓存下载的媒体文件以供后续回放。标签格式可以是:
EXT-X-ALLOW-CACHE:<YES|NO>
EXT-X-ENDLIST标签在一个实施例中指示不再有媒体文件要被添加至播放列表文件。标签格式可以是:
EXT-X-ENDLIST
在一个实施例中,如果播放列表包含最后的分段或媒体文件,则播放列表将具有EXT-X-ENDLIST标签。
EXT-X-STREAM-INF标签可被用于指示播放列表文件中的下一个URI标识另一个播放列表文件。在一个实施例中,标签格式可以是:
EXT-X-STREAM-INF:[属性=值][,属性=值]*<URI>
其中可以使用如下属性。属性BANDWIDTH=<n>是表达为比特数每秒的流比特率的近似上限。属性PROGRAM-ID=<i>是唯一地标识播放列表文件范围内的特定呈现的号码。播放列表文件可以包括具有同一PROGRAM-ID的用以描述同一呈现的各变体流的多个EXT-X-STREAM-INF URI。变体流和变体播放列表将在本公开中得到进一步描述(例如,参见图9A-9D)。
前述标签和属性可由服务器设备用来组织、传送和处理表示原始媒体内容的媒体文件。客户机设备使用这一信息,以向客户机设备的用户提供实时或近实时流传输体验(例如,观看诸如音乐或体育事件的现场广播)的方式重新组装并呈现媒体文件。
播放列表文件的每个媒体文件URI标识作为原始呈现(即,原始媒体内容)的分段的媒体文件。在一个实施例中,每个媒体文件被格式化为MPEG-2输送流、MPEG-2节目流或MPEG-2音频元素流。格式可以通过指定CODEC来指定,并且播放列表可以通过指定CODEC来指定格式。在一个实施例中,呈现中的所有媒体文件可以具有相同格式;然而,在其他实施例中可以支持多种格式。在一个实施例中,输送流文件应该包含单个MPEG-2节目,并且应该在每个文件的起始存在有节目关联表和节目映射表。包含视频的文件应该具有至少一个密钥帧以及用于完全初始化视频解码器的足够信息。客户机应该准备好通过选择合理的子集来处理具体类型(例如,音频或视频)的多个轨道。在一个实施例中,客户机应该忽略其无法认识出的输送流内的私有流。媒体文件内部的流内的以及跨多个媒体文件的相应流之间的样本编码参数应该保持一致。然而,客户机应该在遇到编码改变时处理这些编码改变,例如通过缩放(scale)视频内容以适应分辨率改变。
图2A是用于一个或多个服务器设备使用非流传输协议支持媒体内容的技术的一个实施例的流程图。图2A的例子参考HTTP提供;然而也可以以类似方式利用其他非流传输协议。图2A的例子参考执行特定任务的单个服务器提供。然而,也可以利用任意数量的服务器。例如,向客户机设备提供媒体文件的服务器可以是与将内容分段成多个媒体文件的服务器不相同的设备。
在操作200,服务器设备接收要被提供的内容。该内容可以表示现场音频和/或视频(例如,体育事件、现场新闻、Web相机馈送)。该内容还可以表示预先记录的内容(例如,已被记录的音乐会、培训研讨会等)。无论是否是流传输的,该内容可以根据本领域内已知的任何格式和协议而由服务器接收。在一个实施例中,内容由服务器以MPEG-2流的形式接收;然而,同样能够支持其他格式。
然后在操作210,服务器可以临时存储内容的至少一部分。内容或内容的至少一部分可被临时存储在例如存储设备(例如,存储区域网络内的硬盘等)上或存储器内。替换地,内容可以经由存储介质(例如,紧致盘、闪速驱动器)接收,且内容可从该存储介质被传送至存储设备或存储器。在一个实施例中,服务器具有在需要时将内容转换成一个或多个流(例如,MPEG-2)的编码器。这一转换可以在不永久存储接收到的内容的情况下发生,并且在某些实施例中,存储操作210可以省略或者在其他实施例中可以是更长期存储(例如,归档存储)。
在操作220,将要被提供的内容分段成多个媒体文件。在一个实施例中,服务器将流转换成分开且不同的媒体文件(即,分段),这些媒体文件可以使用标准web服务器来分发。在一个实施例中,服务器在支持个体媒体文件的有效解码的点处(例如,在诸如PES分组边界和i帧边界之类的分组和密钥帧边界上)分段媒体流。媒体文件可以是原始流的具有近似相等持续时间的各部分。服务器还为每个媒体文件创建URI。这些URI允许客户机设备访问媒体文件。
因为分段使用固有地递送完整文件的HTTP服务器来供给,所以服务器应该在媒体文件可供给客户机之前使得完全分段的媒体文件是可用的。于是,客户机可以(在时间上)将广播延迟至少一个媒体文件长度。在一个实施例中,媒体文件的尺寸基于延迟时间和具有太多文件之间的平衡。
在一个实施例中,支持两个会话类型(现场会话和事件会话)。对于现场会话,仅保留流的固定大小部分。在一个实施例中,过期的内容媒体文件被从节目播放列表文件中移除,并可从服务器中移除。第二类会话是事件会话,其中客户机可以调谐至广播的任意点(例如,从开头开始、从中间点开始)。这类会话可用于例如重新广播。
在操作230,将媒体文件存储在服务器存储器内。在操作230存储文件之前可由诸如加密的安全特征保护媒体文件。媒体文件被存储作为准备好使用由服务器设备上的Web服务器应用支持的(或者由进行传送的另一设备支持的)网络协议(例如,HTTP或HTTPS)传送的文件。
在操作240,生成一个或多个播放列表文件以指示出媒体文件应被组装以重建原始内容的次序。(一个或多个)播放列表文件能够利用扩展M3U标签以及在此描述的标签来提供用于客户机设备访问和重新组装媒体文件以在客户机设备上提供流传输体验的信息。用于每个媒体文件的URI以媒体文件要被播放的次序被包括在(一个或多个)播放列表文件内。服务器还可以创建用于(一个或多个)播放列表文件的一个或多个URI,以允许客户机设备访问这(一个或多个)播放列表文件。
在操作250,可将(一个或多个)播放列表文件存储在服务器上。虽然在图2A中以具体次序呈现了媒体文件和(一个或多个)播放列表文件的创建和存储,但是也可以使用不同的次序。例如,(一个或多个)播放列表文件可以在媒体文件创建或存储之前创建。另举一例,(一个或多个)播放列表文件和媒体文件可以在任一被存储之前创建。
如果媒体文件要被加密,则(一个或多个)播放列表文件可以定义URI,该URI允许经授权的客户机设备获取包含用于解密媒体文件的加密密钥的密钥文件。加密密钥可以使用安全连接(例如,HTTPS)传送。另举一例,(一个或多个)播放列表文件可以使用HTTPS传送。再举一例,媒体文件可以按不可预测的次序布置,以使得客户机在没有(一个或多个)播放列表文件的情况下无法重新创建流。
如果加密方法是AES-128,则例如可以将AES-128CBC加密应用于独立媒体文件。在一个实施例中,加密整个文件。在一个实施例中,通常不跨媒体文件应用密码块链接。媒体文件序列如上所述用作IV。在一个实施例中,服务器将具有密钥URI的EXT-X-KEY标签添加至播放列表文件的结尾。服务器于是使用该密钥加密所有的后续媒体文件,直到加密配置发生改变为止。
为了切换至新的加密密钥,服务器可以通过与在呈现中使用的所有在前密钥URI不相同的新URI来使得新密钥可用。服务器还将具有该新密钥URI的EXT-X-KEY标签添加至播放列表文件的结尾,并且使用该新密钥加密所有后续媒体文件。
为了结束加密,服务器可以将具有加密方法NONE的EXT-X-KEY标签添加到播放列表文件的结尾处。该标签(以“NONE”作为方法)在一个实施例中不包括URI参数。不加密所有的后续媒体文件直到如上所述加密配置发生改变为止。如果播放列表文件包含针对用该密钥加密的媒体文件的URI,则服务器不从该播放列表文件中移除EXT-X-KEY标签。在操作270,服务器可响应于客户机请求经网络传送(一个或多个)播放列表文件和媒体文件,如下将参考图3A更为详细地描述。
在一个实施例中,响应于接收自客户机设备的对播放列表文件的请求,服务器将播放列表文件传送至客户机设备。客户机设备可以使用已被提供给该客户机设备的URI来访问/请求播放列表文件。URI指示播放列表文件在服务器上的位置。作为响应,服务器可以向客户机设备提供播放列表文件。客户机设备可以利用播放列表文件中的标签和URI(或其他标识符)来访问多个媒体文件。
在一个实施例中,服务器可将媒体文件的可用性限制为已在最近被添加至(一个或多个)播放列表文件的那些媒体文件。为此,每个播放列表文件可以仅包括一个EXT-X-MEDIA-SEQUENCE标签,并且可以针对从播放列表文件中移除的每一个媒体文件URI将该值加1。可以按照媒体文件URI被添加的次序来从(一个或多个)播放列表文件中移除这些媒体文件URI。在一个实施例中,当服务器从(一个或多个)播放列表文件中移除媒体文件URI时,该媒体文件在等于该媒体文件的持续时间加上其中已出现该媒体文件的最长播放列表文件的持续时间的时间段内保持对客户机可用。
播放列表文件的持续时间是该播放列表文件内媒体文件的持续时间之和。还可以使用其他持续时间。在一个实施例中,除非存在EXT-X-ENDLIST标签,服务器可以在所有时间内在播放列表中维持至少三个主要呈现媒体文件。
图2B是用于一个或多个服务器设备向一个或多个客户机设备提供动态更新的播放列表的技术的一个实施例的流程图。播放列表可以使用在此描述的累积模式或滚动模式而被更新。图2B的例子参考HTTP提供;然而也可以按类似方式利用其他非流传输协议(例如,HTTPS等)。图2B的例子参考执行特定任务的服务器提供。然而,也可以利用任意数量的服务器。例如,向客户机设备提供媒体文件的服务器可以是与将内容分段成多个媒体文件的服务器不相同的设备。
在操作205,服务器设备接收要被提供的内容。然后在操作215,服务器可以临时存储内容的至少一部分。操作215可以与图2A中的操作210相类似。在操作225,将要提供的内容分段成多个媒体文件。在操作235,可将媒体文件存储在服务器存储器内。在操作235存储文件之前可由诸如加密的安全特征保护媒体文件。
在操作245,生成一个或多个播放列表文件以指示媒体文件应被组装以重新创建原始内容的次序。在操作255,可将(一个或多个)播放列表文件存储在服务器上。虽然在图2B中以具体次序呈现了媒体文件和(一个或多个)播放列表文件的创建和存储,但是也可以使用不同的次序。
在操作275,该服务器(或另一服务器)可以响应于客户机请求经网络传送(一个或多个)播放列表文件和媒体文件,如下将参考图3A-3B更为详细地描述。
(一个或多个)播放列表文件可由服务器出于各种理由进行更新。在操作285,服务器可以接收要被提供给客户机设备的附加数据。可以在操作255存储(一个或多个)播放列表文件之后接收该附加数据。附加数据可以是例如现场呈现的附加部分,或是现有呈现的附加信息。附加数据可以包括广告或统计信息(例如,与体育事件相关的得分或数据)。附加数据可以重叠(通过半透明)在所述呈现上,或者可以在侧边栏用户界面内呈现。附加数据能够以与原始接收到的数据相同的方式而被分段。如果附加数据构成广告或者要被插入由播放列表表示的节目的其他内容,则该附加数据可在操作215被存储(至少是临时存储),在操作225被分段,并在操作235被存储;在存储分段的附加数据之前,可以对附加数据的各分段进行加密。然后在操作245,可以生成包含有节目和附加数据的更新的播放列表。该播放列表基于附加数据而被更新,并且在操作255被再次存储。对(一个或多个)播放列表文件的改变从客户机设备的观点看来应被原子地做出。在一个实施例中,更新的播放列表代替在前播放列表。如下将更为详细地讨论的,客户机设备可以多次请求该播放列表。这些请求使得客户机设备能够利用最近的播放列表。在一个实施例中,附加数据可以是元数据;在此情况下,播放列表不需要被更新,但分段则能够被更新以包括元数据。例如,元数据可以包含能够与各分段内的时间戳相匹配的时间戳,并且可将该元数据添加至具有匹配时间戳的分段。
更新的播放列表也会导致媒体文件的移除。在一个实施例中,服务器应该以用于媒体文件的URI被添加至播放列表的次序从播放列表中移除这些URI。在一个实施例中,如果服务器移除整个呈现,则使得这(一个或多个)播放列表文件对客户机设备不可用。在一个实施例中,服务器维持媒体文件和(一个或多个)播放列表文件达包含要被移除的媒体文件的(一个或多个)最长播放列表文件的持续时间,由此允许当前客户机设备完成对呈现的访问。因此,播放列表文件内的每个媒体文件URI可以冠以EXT-X-STREAM-INF标签的前缀,以指示由播放列表文件所指示的媒体文件的近似累积持续时间。在备选实施例中,媒体文件和(一个或多个)播放列表文件可以即刻被移除。
在操作275,来自客户机设备的对于播放列表的后续请求使得服务器提供更新的播放列表。在一个实施例中,播放列表被规律更新,例如以与目标持续时间相关的时间段。播放列表文件的周期更新允许服务器提供服务器对动态改变的呈现的访问。
图2C是用于一个或多个服务器设备使用多比特率向客户机设备提供媒体内容的技术(作为使用替换流的一个形式)的一个实施例的流程图。图2C的例子参考HTTP提供;然而也可以以类似方式利用其他非流传输协议。图2C的例子参考执行特定任务的服务器提供。然而,也可以利用任意数量的服务器。例如,向客户机设备提供媒体文件的服务器可以是与将内容分段成多个媒体文件的服务器不相同的设备。
在一个实施例中,服务器可以提供多个播放列表文件,或者是在单个播放列表文件内具有多个媒体文件列表的单个播放列表文件,由此提供对相同呈现的不同编码。如果提供了不同的编码,则(一个或多个)播放列表文件可以包括提供不同比特率的每一个变体流,由此允许客户机设备在各编码之间动态切换(这将结合图9A-9D进一步描述)。具有变体流的播放列表文件可以包括用于每个变体流的EXT-X-STREAM-INF标签。用于同一呈现的每个EXT-X-STREAM-INF标签可以具有相同的PROGRAM-ID属性值。用于每个呈现的PROGRAM-ID值在这些变体流内是唯一的。
在一个实施例中,服务器在产生变体流时符合如下限制。每个变体流可由包括不是主呈现一部分的可选内容的相同内容组成。服务器可以在流的最小目标持续时间的精度内使得相同时间段的内容对于所有的变体流可用。变体流的媒体文件在一个实施例中是具有与所有变体流中的相应内容匹配的样本时间戳的MPEG-2输送流或MPEG-2节目流。同样地,所有变体流在一个实施例中应该包含相同的音频编码。这允许客户机设备在不损失内容的情况下在变体流之间切换。
参考图2C,在操作202,服务器设备接收要被提供的内容。然后在操作212,服务器可以至少临时存储所述内容。在操作222,将要被提供的内容分段成多个媒体文件。在操作232,每个媒体文件以选定比特率(或其他编码参数的选定值)编码并存储在服务器上。例如,媒体文件可以靶向高、中和低带宽连接。媒体文件可以在存储之前加密。靶向各类连接的媒体文件的编码可被选择用于在目标带宽水平上提供流传输体验。
在一个实施例中,在操作242生成具有在此描述的指示各种编码水平的标签的变体播放列表。标签可以包括例如具有针对相应媒体播放列表文件的URI的用于每个编码水平的EXT-X-STREAM-INF标签。
这一变体播放列表可以包括针对用于各种编码水平的媒体播放列表文件的URI。于是,客户机设备可以从指示编码水平的变体播放列表中所提供的替换方案中选择目标比特率,并检索相应的播放列表文件。在一个实施例中,客户机设备可以在回放期间在各比特率之间进行切换(例如,参考图9A-9D所述)。在操作252,将指示各种编码水平的变体播放列表存储在服务器上。在操作242,变体播放列表中涉及的每个播放列表可被生成,并在随后于操作252中被存储。
在操作272,响应于来自客户机设备的请求,服务器可以传送指示各种编码水平的变体播放列表。在操作282,服务器可以接收对变体播放列表中指定的媒体播放列表中与选定比特率相对应的一个媒体播放列表的请求。在操作292,响应于所述请求,服务器传送与来自客户机设备的请求相对应的媒体播放列表文件。客户机设备于是可以使用该媒体播放列表请求来自服务器的媒体文件。在操作297,服务器响应于请求而向客户机设备提供媒体文件。
图3A是用于客户机设备使用非流传输协议支持内容的流传输的技术的一个实施例的流程图。图3A的例子参考HTTP提供;然而也可以以类似方式利用其他非流传输协议。图3A-3B中示出的方法可由一个客户机设备或由若干分开的客户机设备执行。例如,在这些方法的任一方法的情况下,单个客户机设备可以执行全部操作(例如,请求播放列表文件,使用播放列表文件内的URI请求媒体文件,组装媒体文件以生成并提供呈现/输出),或者若干不同的客户机设备可以执行部分而非全部操作(例如,第一客户机设备可以请求播放列表文件,使用播放列表文件内的URI请求媒体文件,并且能够存储这些媒体文件以供能够处理这些媒体文件以生成并提供呈现/输出的第二客户机设备使用)。
在操作300,客户机设备可以请求来自服务器的播放列表文件。在一个实施例中,根据符合HTTP的协议做出请求。该请求利用针对存储在服务器上的初始播放列表文件的URI。在备选实施例中,还可以支持其他非流传输协议。响应于所述请求,服务器将相应的播放列表文件经网络传送至客户机。如上讨论的,网络可以是有线的或无线的,并且可以是有线或无线网络的任意组合。进一步地,网络可以是数据网络(例如IEEE 802.11、IEEE802.16)或蜂窝电话网络(例如,3G)。
在操作310,客户机设备可以接收播放列表文件。在操作320,可将播放列表文件存储在客户机设备的存储器中。存储器例如可以是硬盘、闪存、随机存取存储器。在一个实施例中,每次从播放列表URI载入或重载播放列表文件时,客户机检测以判定该播放列表文件是否以#EXTM3U标签开始,并且在该标签不存在时不加以继续。如上所讨论的,播放列表文件包括一个或多个标签以及一个或多个针对媒体文件的URI。
客户机设备可以包括组装器代理,该组装器代理通过在操作330请求由播放列表文件中的URI指示的媒体文件而使用播放列表文件重新组装原始内容。在一个实施例中,该组装器代理是作为标准Web浏览器应用的一部分的插件模块。在另一实施例中,该组装器代理可以是独立应用,该独立应用与Web浏览器交互以接收媒体文件并且使用(一个或多个)播放列表文件组装这些媒体文件。再举一例,该组装器代理可以是嵌入在客户机设备内的专用硬件或固件部件。
该组装器使得从服务器下载播放列表文件中的URI指示的媒体文件。如果播放列表文件包括EXT-X-ENDLIST标签,则可以首先播放由播放列表文件指示的任何媒体文件。如果EXT-X-ENDLIST标签不存在,则可以首先播放除了倒数第一和倒数第二个媒体文件之外的任何媒体文件。一旦选择了要播放的第一媒体文件,就载入播放列表文件内的后续媒体文件,在一个实施例中,以媒体文件在播放列表文件中出现的次序来载入(否则呈现的内容会乱序)。在一个实施例中,客户机设备尝试在需要时之前载入这些媒体文件(并在缓冲器中存储),以提供不间断的回放并补偿网络等待时间和吞吐量的临时变化。
在操作340,可将下载的(一个或多个)媒体文件存储在客户机设备上的存储器中。其内能存储内容的存储器可以是客户机设备上的任何类型的存储器,例如随机存取存储器、硬盘或视频缓冲器。存储可以是允许回放的临时存储,也可以是永久存储。如果播放列表文件包含EXT-X-ALLOW-CACHE标签且其值为NO,则客户机在下载的媒体文件被播放之后不存储这些媒体文件。如果播放列表文件包含EXT-X-ALLOW-CACHE标签且其值为YES,则客户机可以无限期地存储媒体文件以供后续重放。客户机设备可以使用EXT-X-PROGRAM-DATE-TIME标签的值来向用户显示节目发源时间。在一个实施例中,客户机可以缓冲多个媒体文件,以使其对网络抖动不那么敏感,以便提供更好的用户体验。
在一个实施例中,如果解密方法是AES-128,则将AES-128 CBC解密应用于各独立的媒体文件。整个文件被解密。在一个实施例中,不跨媒体文件应用密码块链接。媒体文件的序列号可以如上所述用作初始化向量。
在操作350,从该存储器,内容可自客户机设备输出。输出或呈现例如可以是经内置扬声器或头戴式听筒的音频输出。输出可以包括经屏幕输出或从客户机设备投影的视频。可以利用本领域内已知的任何类型的输出。在操作351,客户机设备判定所存储的当前播放列表中是否还存在有尚未播放或以其他方式呈现的任何其他媒体文件。如果存在这样的媒体文件(并且如果它们尚未被请求),则处理返回至在其中请求一个或多个媒体文件的操作330并且处理重复。如果不存在这样的媒体文件(即,当前播放列表中的所有媒体文件都已播放),则处理行进至判定播放列表文件是否包括结束标签的操作352。
如果在操作352播放列表包括结束标签(例如,EXT-X-ENDLIST),则在由播放列表文件指示的媒体文件已被播放时停止回放。如果该播放列表中没有结束标签,则客户机设备再次从服务器请求播放列表并返回操作300以获取该节目的进一步的或更新的播放列表。
如参考图2B进一步详细讨论的,服务器可以更新播放列表文件以引入补充内容(例如,在现场广播中与附加媒体内容相对应的附加媒体文件标识符)或附加内容(例如,流的进一步下游的内容)。为了访问补充内容或附加内容,客户机可以从服务器重载更新的播放列表。这能够提供可凭借来动态更新播放列表文件的机制,即便在与播放列表文件相关联的媒体内容的回放期间亦是如此。客户机可以基于多个触发请求对播放列表文件的重载。没有结束标签是一个这样的触发。
在一个实施例中,客户机设备周期性地重载(一个或多个)播放列表文件,除非播放列表文件包含EXT-X-ENDLIST标签。当客户机设备第一次载入播放列表文件,或重载播放列表文件并发现该播放列表文件从上次载入起已经改变时,客户机可以在尝试再次重载该播放列表文件之前等待一时间段。该时间段被称为是初始最小重载延迟。这是从客户机开始载入播放列表文件的时刻起测量的。
在一个实施例中,初始最小重载延迟是播放列表文件中最后一个媒体文件的持续时间和目标持续时间的三倍中较短的一个。媒体文件持续时间由EXTINF标签指定。如果客户机重载播放列表文件并发现其尚未改变,则客户机可以在重试之前等待一时间段。最小延迟在一个实施例中是目标持续时间的三倍和初始最小重载延迟的倍数中较短的一个。在一个实施例中,这一倍数对第一次尝试是0.5,对第二次尝试是1.5,而对第三次尝试是3.0;然而也可以使用其他倍数。
每次载入或重载播放列表文件时,客户机设备检查该播放列表文件以确定下一个要载入的媒体文件。第一个要载入的文件是如上所述选择用以首先播放的媒体文件。如果第一个要播放的媒体文件已被载入并且播放列表文件不包含EXT-X-MEDIA-SEQUENCE标签,则客户机可以验证当前播放列表文件在最后载入的媒体文件最初被找到的偏移处包含该最后载入的媒体文件的URI,并在文件未被找到的情况下中止回放。下一个要载入的媒体文件可以是播放列表文件中跟随在该最后载入的URI之后的第一个媒体文件URI。
如果第一个要播放的文件已被载入并且播放列表文件包含EXT-X-MEDIA-SEQUENCE标签,则下一个要载入的媒体文件可以是具有比最后载入的媒体文件的序列号要大的最小序列号的媒体文件。如果播放列表文件包含指定密钥文件URI的EXT-X-KEY标签,则客户机设备获取该密钥文件并且使用该密钥文件内的密钥解密跟随在EXT-X-KEY标签之后的媒体文件,直到遇到另一个EXT-X-KEY标签为止。
在一个实施例中,客户机设备利用与在前使用的URI相同的URI来下载播放列表文件。于是,如果已经对播放列表文件做出改变,则该客户机设备可以使用更新的播放列表文件检索媒体文件,并且基于这些媒体文件提供输出。
播放列表文件的改变例如可以包括删除对媒体文件的URI,添加对新媒体文件的URI,以及替换对替换媒体文件的URI。当对播放列表文件做出改变时,可以更新一个或多个标签以反映这(一个或多个)改变。例如,如果对媒体文件的改变导致由播放列表文件指示的媒体文件的回放持续时间改变,则可以更新持续时间标签。
图3B是用于客户机设备使用(作为替换流的一个形式的)多比特率支持内容的流传输的技术的一个实施例的流程图。图3B的例子参考HTTP提供;然而也可以以类似方式利用其他非流传输协议。
在操作370,客户机设备可以请求播放列表文件。如上讨论的,可以利用提供给客户机设备的URI检索播放列表文件。在一个实施例中,播放列表文件包括媒体文件的变体流列表,从而以不同的比特率提供相同内容;换句话说,单个播放列表文件包括针对多个变体流中的每一个的媒体文件的URI。图3B所示的例子使用这一实施例。在另一实施例中,变体流可由被分别提供给客户机的、各自提供不同比特率的相同内容的多个不同的播放列表文件所表示,并且变体播放列表可以提供针对多个不同播放列表文件中的每一个的URI。这使得客户机设备能够基于客户机条件选择比特率。
在操作375,(一个或多个)播放列表文件可由客户机设备检索。在操作380,(一个或多个)播放列表文件可存储在客户机设备存储器中。在操作385,客户机设备可以基于当前网络连接速度选择待使用的比特率。在操作390,使用包括在播放列表文件中的与选定比特率相对应的URI请求来自服务器的媒体文件。检索到的媒体文件可被存储在客户机设备存储器中。在操作394,由客户机设备使用媒体文件提供输出,并且客户机设备判定是否改变比特率。
在一个实施例中,客户机设备初始选择最低的可用比特率。在播放媒体时,客户机设备可以监视可用带宽(例如,当前网络连接比特率)以判定可用带宽是否能够支持用于回放的更高比特率的使用。如果是,客户机设备可以选择更高的比特率并访问由该更高比特率媒体播放列表文件指示的媒体文件。相反情况也可以得到支持。如果回放消耗了太多带宽,客户机设备可以选择更低的比特率并访问由该更低比特率媒体播放列表文件指示的媒体文件。
如果在操作394客户机设备例如响应于可用带宽的改变或响应于用户输入而改变了比特率,则在操作385该客户机设备可以选择不同的比特率。在一个实施例中,为了选择不同的比特率,客户机设备可以利用包括在播放列表文件中的与新选定的比特率相对应的不同的URI列表。在一个实施例中,客户机设备可以在访问播放列表内的媒体文件期间改变比特率。
如果在操作394比特率没有改变,则客户机设备判定在当前播放列表中是否还有未被播放的任何其他媒体文件尚未被检索和呈现。如果这样的媒体文件存在,则处理返回至操作390并且使用针对播放列表中这些文件的URI检索一个或多个媒体文件。如果不存在这样的媒体文件(即,当前播放列表中的所有媒体文件都已播放),则处理行进至其中判定播放列表是否包括结束标签的操作396。如果是,则结束节目的回放并完成处理;如果不是,则处理返回操作370,并且客户机设备请求重载该节目的播放列表,并且处理通过图3B所示的方法重复。
图4是服务器流代理的一个实施例的框图。将会理解的是,服务器流代理400的元件可以跨若干服务器设备分布。例如,第一服务器设备可以包括分段器430、索引器440和安全代理450,但不包括文件服务器460,而第二服务器可以包括文件服务器460,但不包括分段器430、索引器440和安全代理450。在此例中,第一服务器设备将准备播放列表和媒体文件,但是不将其传送至客户机设备,同时一个或多个第二服务器设备则将接收并可选地存储播放列表和媒体文件,并且将把播放列表和媒体文件传送至客户机设备。服务器流代理400包括实现逻辑功能控制以引导服务器流代理400的操作的控制逻辑410,以及与引导服务器流代理400的操作相关联的硬件。逻辑可以是硬件逻辑电路,或是软件例程或固件。在一个实施例中,服务器流代理400包括一个或多个应用412,应用412代表向控制逻辑410提供指令的代码序列和/或程序。
服务器流代理400包括存储器414,存储器414代表存储器设备或是对存储数据或指令的存储器资源的访问。存储器414可以包括位于服务器流代理400本地的存储器,作为附加或者替换地,可以包括服务器流代理400驻留其上的主机系统的存储器。服务器流代理400还包括一个或多个接口416,接口416代表服务器流代理400相对于服务器流代理400外部的(电子的或人类)实体送出/接收的访问接口(输入/输出接口)。
服务器流代理400还可包括服务器流引擎420,服务器流引擎420代表使得服务器流代理400能够提供在此所述的实时或近实时流传输的一种或多种功能。图4的例子提供了可被包括在服务器流引擎420内的若干部件;然而,也可以包括不同的或额外的部件。提供流传输环境可牵涉到的示例性部件包括分段器430、索引器440、安全代理450和文件服务器460。这些部件各自可以进一步包括提供其他功能的其他部件。如在此所使用的,部件指代可由硬件、软件、固件或其某种组合实现的例程、子系统等。
分段器430将要提供的内容分割成可以使用Web服务器协议(例如,HTTP)作为文件传输的媒体文件。例如,分段器430可以将内容以预先确定的文件格式分割成预定的、固定尺寸的数据块。
索引器440可以提供一个或多个播放列表文件,这一个或多个播放列表文件提供针对由分段器430创建的媒体文件的地址或URI。索引器440例如可以创建带有与分段器430创建的每个文件相对应的标识符次序列表的一个或多个文件。标识符可由分段器430或索引器440创建或指派。索引器440还可以在播放列表文件中包括一个或多个标签以支持对媒体文件的访问和/或利用。
安全代理450可以提供诸如以上讨论的安全特征(例如,加密)。Web服务器460可以提供与将存储在主机系统上的文件提供给远程客户机设备相关的Web服务器功能。Web服务器460可以支持例如符合HTTP的协议。
图5是客户机流代理的一个实施例的框图。将会理解的是,客户机流代理的元件可以跨若干客户机设备分布。例如,第一客户机设备可以包括组装器530和安全代理550并且可以将经解密的媒体文件流提供给包括输出生成器540(但不包括组装器530和安全代理550)的第二客户机设备。在另一例中,主客户机设备可以检索播放列表并将他们提供给次客户机设备,后者则检索在播放列表中指定的媒体文件并生成用于呈现这些媒体文件的输出。客户机流代理500包括实现逻辑功能控制以引导客户机流代理500的操作的控制逻辑510,以及与引导客户机流代理500的操作相关联的硬件。逻辑可以是硬件逻辑电路,或是软件例程或固件。在一个实施例中,客户机流代理500包括(一个或多个)应用512,后者表示向控制逻辑510提供指令的代码序列或程序。
客户机流代理500包括存储器514,后者代表存储器设备或是对存储数据和/或指令的存储器资源的访问。存储器514可以包括位于客户机流代理500本地的存储器,作为附加或者替换地,可以包括客户机流代理500驻留其上的主机系统的存储器。客户机流代理500还包括一个或多个接口516,后者代表客户机流代理500相对于客户机流代理500外部的(电子的或人类)实体送出/接收的访问接口(输入/输出接口)。
客户机流代理500还可包括客户机流引擎520,后者代表使得客户机流代理500能够提供在此所述的实时或近实时流传输的一种或多种功能。图5的例子提供了可被包括在客户机流引擎520内的若干部件;然而,也可以包括不同的或额外的部件。提供流传输环境可牵涉到的示例性部件包括组装器530、输出生成器540和安全代理550。这些部件各自可以进一步包括提供其他功能的其他部件。如在此所使用的,部件指代可由硬件、软件、固件或其某种组合实现的例程、子系统等。
组装器530可以利用从服务器接收的播放列表文件以经由Web服务器协议(例如,HTTP)从服务器访问媒体文件。在一个实施例中,组装器530可以使得下载如播放列表文件中的URI所指示的媒体文件。组装器530可以对包括在播放列表文件内的标签作出响应。
输出生成器540可以将接收到的媒体文件提供作为主机系统上的音频或视频输出(或音频和视频两者)。输出生成器540例如可以使得音频被输出至一个或多个扬声器并使得视频被输出至显示设备。安全代理550可以提供诸如以上讨论的安全特征。
图6示出了具有多个标签的播放列表文件的一个实施例。图6的示例性播放列表包括特定数量和次序的标签。这仅提供用于描述的目的。某些播放列表文件可以包括更多、更少或不同组合的标签,并且这些标签能够以与图6所示次序不同的次序布置。
开始标签610可以指示播放列表文件的开始。在一个实施例中,开始标签610是#EXTM3U标签。持续时间标签620可以指示回放列表的持续时间。也就是由回放列表600所指示的媒体文件的回放持续时间。在一个实施例中,持续时间标签620是EXT-X-TARGETDURATION标签;然而,也可以使用其他标签。
日期/时间标签625可以提供与由回放列表600指示的媒体文件所提供的内容的日期和时间相关的信息。在一个实施例中,日期/时间标签625是EXT-X-PROGRAM-DATE-TIME标签;然而,也可以使用其他标签。序列标签630可以指示播放列表文件600在播放列表序列中的顺序。在一个实施例中,序列标签630是EXT-X-MEDIA-SEQUENCE标签;然而,也可以使用其他标签。
安全标签640可以提供与应用于由播放列表文件600指示的媒体文件的安全和/或加密相关的信息。例如,安全标签640可以指定解密密钥用以解密由媒体文件指示符指定的文件。在一个实施例中,安全标签640是EXT-X-KEY标签;然而,也可以使用其他标签。变体列表标签645可以指示变体流是否由播放列表600提供以及与这些变体流相关的信息(例如,多少、比特率)。在一个实施例中,变体列表标签645是EXT-X-STREAM-INF标签。
媒体文件指示符650可以提供与要播放的媒体文件相关的信息。在一个实施例中,媒体文件指示符650包括针对要播放的多个媒体文件的URI。在一个实施例中,播放列表600中URI的次序与媒体文件应被访问和/或播放的次序相对应。后续播放列表指示符660可以提供与要在回放文件600之后使用的一个或多个回放文件相关的信息。在一个实施例中,后续播放列表指示符660可以包括针对在播放列表600的媒体文件已被播放之后要使用的一个或多个播放列表文件的URI。
存储器标签670可以指示在媒体文件内容的回放之后,客户机设备是否可以存储媒体文件和/或存储多久。在一个实施例中,存储器标签670是EXT-X-ALLOW-CACHE标签。结束标签680指示播放列表文件600是否是用于呈现的最后一个播放列表文件。在一个实施例中,结束标签680是EXT-X-ENDLIST标签。
如下部分包括根据一个实施例的若干示例性播放列表文件。
简单播放列表文件
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:5220,
http://media.example.com/entire.ts
#EXT-X-ENDLIST
_______________________________________________
滑动窗播放列表,使用HTTPS
#EXTM3U
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:2680
#EXTINF:8,
https://priv.example.com/fileSequence2680.ts
#EXTINF:8,
https://priv.example.com/fileSequence2681.ts
#EXTINF:8,
https://priv.example.com/fileSequence2682.ts
________________________________________________
具有加密媒体文件的播放列表文件
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="
https://priv.example.com/key.php?r=52"
#EXTINF:15,
http://media.example.com/fileSequence7794.ts
#EXTINF:15,
http://media.example.com/fileSequence7795.ts
#EXTINF:15,
http://media.example.com/fileSequence7796.ts
#EXT-X-KEY:METHOD=AES-128,URI="
https://priv.example.com/key.php?r=53"
#EXTINF:15,
http://media.example.com/fileSequence7797.ts
________________________________________________
变体播放列表文件
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
________________________________________________
图7是本文描述的经组装流回放技术的一个实施例的流程图。在一个实施例中,接收到的媒体文件的回放可由用户控制而启动、停止、倒回等。在操作700由客户机设备接收播放列表文件。在操作710检索由播放列表文件指示的媒体文件。在操作720基于接收到的媒体文件生成输出。接收和基于媒体文件生成输出可以如上所述完成。
如果在操作730检测到控制输入,则客户机设备能够在操作740判定该输入是否指示停止。如果该输入是停止,则处理结束并且回放停止。如果在操作750该输入指示倒回或前进请求,则客户机设备在操作760可基于仍被存储在存储器中的在前播放的媒体文件生成输出。如果这些文件不再位于高速缓存内,则处理返回至操作710以检索媒体文件并重复处理。在一个备选实施例中,回放可以支持暂停特征,该暂停特征中止回放而不是像停止输入那样结束回放。
参考图9A-9D进一步描述用于从一个流转变至另一流的方法。一个客户机设备可以执行这些方法中的每一种,或者这些方法中的每一种方法的各操作可以如本文所述跨多个客户机设备分布;例如,在分布情况下,一个客户机设备可以检索变体播放列表和两个媒体播放列表,并将这些播放列表提供给另一个客户机设备,所述另一个客户机设备则检索由这两个媒体播放列表指定的媒体文件并在由检索出的媒体文件所提供的两个流之间进行切换。将会理解的是,在替换实施例中,示出的操作次序可被修改,或者可以存在比这些图中所示的更多或更少的操作。这些方法可以使用变体播放列表来选择不同的流。变体播放列表可以在操作901被检索和处理以确定节目(例如,体育事件)的可用流。操作901可由客户机设备进行。可在操作903从变体播放列表中选择第一流,并且客户机设备于是可以检索用于该第一流的媒体播放列表。客户机设备可以在操作905处理用于第一流的媒体播放列表并且还可以在操作907测量或以其他方式确定针对第一流的网络连接的比特率。将会理解的是,操作序列可以按照与图9A所示次序不同的次序执行;例如,操作907可以在操作903期间执行等。在操作911,客户机设备基于在操作907测得的比特率而从变体播放列表中选择替换媒体播放列表;该替换媒体播放列表可以处于比第一流的现有比特率更高的第二比特率处。这典型地意味着替换流将具有比第一流更高的分辨率。如果基于当前条件(例如,在操作907测得的比特率)替换媒体播放列表比用于第一流的当前播放列表更佳地匹配,则可以选择该替换媒体播放列表。在操作913,检索并处理用于备选流的替换媒体播放列表。这典型地意味着客户机设备可以接收并处理第一流和替换流两者以使其两者都可用于呈现;在一个流被呈现时另一个流则准备好被呈现。客户机设备于是在操作915选择在流的各版本之间进行切换的转变点,停止呈现第一流并开始呈现替换流。如何实现这一切换的例子将结合图9B-9D提出。在某些实施例中,客户机设备可以在做出切换之前停止对第一流的接收。
图9B示出了客户机设备在操作921和923检索、存储和呈现由第一媒体播放列表指定的内容(例如,第一流),而由第一媒体播放列表指定的所述内容正被呈现时,客户机设备在操作925还检索和存储由第二媒体播放列表指定的内容(例如,第二流)。在正呈现从第一媒体播放列表获取的内容时对由第二媒体播放列表指定的内容进行的检索和存储(例如,存储在临时缓冲器内)创建节目内容在时间上的重叠955(如图9D所示),这就允许客户机设备在基本不中断节目的情况下在节目各版本之间进行切换。以此方式,可以在用户没有注意到切换已经发生(尽管在一些情况下用户可在切换之后注意到更高分辨率的图像)或在基本不中断节目呈现的许多情况下实现在节目各版本之间的切换。在操作927,客户机设备确定从第一媒体播放列表指定的内容切换至由第二媒体播放列表指定的内容的转变点;转变点的例子(转变点959)在图9D中示出。由第二媒体播放列表指定的内容于是在转变之后于操作931呈现。
图9C和9D中示出的方法代表用于确定转变点的一个实施例;该实施例依赖于来自两个流951和953的音频样本的模式匹配来确定所述转变点。将会理解的是,替换实施例可以使用视频样本的模式匹配,或者可以使用两个流中的时间戳等来确定所述转变点。本方法可以在操作941包括将由第一媒体播放列表指定的内容(例如,流951)存储在缓冲器内;该缓冲器可用于内容的呈现,还可用于模式匹配操作。流951包括音频样本951A和视频样本951B两者。视频样本可以使用依赖于i-帧或密钥帧的压缩技术,其中i-帧或密钥帧具有用于显示单个视频帧所必须的全部内容。流951中的内容可以包括指定时间(例如,从节目开始起经过的时间)的时间戳,并且这些时间戳可以标记每个样本的开头(例如,每个音频样本951A的开头和每个视频样本951B的开头)。在某些情况下,两个流之间的时间戳比较可能无法用于确定转变点,这是因为它们可能不足够精确,或者因为两个流中样本边界的差异;尽管如此,时间戳范围的比较可以用于验证两个流之间在时间上存在有重叠955。在操作943,客户机设备在缓冲器中存储由第二媒体播放列表指定的内容;该内容用于与从第一媒体播放列表获取的内容相同的节目,并且也可以包括时间戳。在一个实施例中,如果流内不存在时间戳,则可以向流的播放列表添加时间戳;例如,在一个实施例中,可以将包括一个或多个时间戳的ID3标签添加至播放列表(诸如,变体播放列表或媒体播放列表)内的条目。该条目例如可以位于音频流第一样本的URI中。图9D示出了从第二媒体播放列表获取的内容953的例子,该内容953包括了音频样本953A和视频样本953B。在操作945,客户机设备可以对两个流951和953中的音频样本执行模式匹配,以从重叠955中选择转变点959,该转变点959在一个实施例中可以是在匹配音频分段(例如,分段957)之后的下一个自包含的视频帧(例如,i-帧961)。以i-帧961(及其关联音频样本)开始,节目的呈现使用从第二媒体播放列表获取的第二流。前述方法在一个实施例中可以用于从较慢到较快比特率的改变和从较快到较慢比特率的改变两者,但在另一实施例中,本方法仅用于从较慢到较快比特率的改变,而另一方法(例如,不尝试定位转变点,而是尝试尽可能快地存储和呈现来自较慢比特率流的内容)则可用于从较快到较慢比特率的改变。
图10是用于提供多个冗余位置的技术的一个实施例的流程图,所述多个冗余位置使用替换流将播放列表或媒体内容或两者提供给客户机设备。如果播放列表包括如上讨论的备选流,则备选流可以不仅仅作为带宽或设备备选操作,还可以作为故障回退(failurefallback)操作。例如,如果客户机无法重载流的播放列表文件(例如由于404错误或网络连接错误),则客户机可以尝试切换至备选流。参考图10,为了实现故障转移(failover)保护,第一服务器设备或第一内容分发服务被配置为在操作1002创建流或如结合图2C的描述讨论的多个备选带宽流。在操作1004,第一服务器设备或第一内容分发服务从在操作1002生成的(一个或多个)流中生成(一个或多个)播放列表文件。第二服务器设备或第二内容分发服务可以在操作1006创建并行流或流集合,并且还可以创建播放列表。这些(一个或多个)并行流可被认为是备用流。接下来,在操作1008将备用流的列表添加至(一个或多个)播放列表文件,使得每个带宽下的(一个或多个)备用流在主流之后列出。例如,如果主流来自服务器ALPHA,而备用流位于服务器BETA上,则播放列表文件可以如下:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000
http://ALPHA.mycompany.com/low/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000
http://BETA.mycompany.com/low/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000
http://ALPHA.mycompany.com/mid/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000
http://BETA.mycompany.com/mid/prog_index.m3u8
注意到备用流在播放列表中与主流混合,其中,每个带宽下的备用流在针对该带宽的主流之后列出。客户机不限于单个备用流集合。在上述示例中,ALPHA和BETA之后可以跟有例如GAMMA。类似地,无需提供完全的并行流集合。例如可以在备用服务器上提供单个低带宽流。
在操作1010,客户机使用与第一服务器设备或第一内容分发服务相关联的第一流从第一URL下载(一个或多个)播放列表文件。图11例示了根据一个实施例在其中客户机1102与一个或多个URL、服务器设备或内容分发服务进行双向通信的网络。(一个或多个)播放列表文件可以在操作1012从第一URL、服务器设备或内容分发服务传送至客户机1102。如果客户机无法从第一URL、服务器设备或内容分发服务下载(一个或多个)播放列表文件(例如,由于重载流索引文件时的错误),则客户机尝试切换至备选流。倘若故障(例如,索引载入故障)存在于一个流上(例如,操作1010),客户机就在操作1014选择网络连接支持的最高带宽的备选流。如果存在有相同带宽的多个备选,则客户机按照播放列表中列出的次序从中选择。例如,如果客户机1102无法从URL 1成功下载,则其可以从URL 2或另一URL进行下载,在这种情况下,(一个或多个)播放列表文件从替换URL传送至客户机。这一特征提供了将允许媒体到达客户机的冗余流,即便存在若干局部故障(诸如服务器崩溃或内容分发器节点停机)亦是如此。
故障转移保护提供了用于提供多个冗余位置的能力,客户机可以从所述多个冗余位置检索播放列表和媒体文件。于是,如果客户机无法从第一位置检索到流,则其可以尝试从第二、第三等的位置访问所述流。
在一个实施例中,为了指示出客户机可从其检索播放列表的附加位置,相同的变体播放列表标签将被提供以相同带宽,但被提供以冗余位置的新URI。客户机可以在最初尝试访问与期望带宽相关联的第一URL。如果该客户机无法从该第一URL下载播放列表,则其随后可以尝试访问对该带宽提出的下一URL,直到其耗尽了所有可能性为止。
如下的例子包括用于2560000带宽的1个冗余位置和用于7680000带宽的2个冗余位置。
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example1.com/mid-redundant2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example2.com/hi-redudant2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example3.com/hi-redudant3.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
注意到在该例中,文件名(例如,mid-redundant2.m3u8)和实际URL(例如,http:// example2.com<http://example2.com/>、http://example3.com<http://example3.com/>)两者都有所变化。然而,在一个实施例中,冗余位置可以仅是文件名的改变,或者仅是网站的改变。
在一个实施例中,播放列表可以由服务器设备压缩并以压缩形式发送至客户机设备。压缩的播放列表通常比未压缩的播放列表要求更少的比特来表示播放列表,并且由此压缩的播放列表在被传送或接收时使用诸如无线蜂窝电话网络之类的网络的更少可用带宽。在一个实施例中,播放列表可由web服务器根据符合或兼容诸如HTTP 1.1标准协议的传输协议的、由web服务器使用的内置压缩技术或设施来压缩;这种压缩技术或设施的一个例子是HTTP 1.1的deflate或gzip压缩设施。在其他实施例中可以使用作为基于标准的传输协议的部分的其他基于标准的压缩设施。压缩播放列表的使用在一个实施例中可以是服务器设备和客户机设备的可选特征。在一个实施例中,播放列表可以是文本内容(例如,文本文件)并且可由基于标准的web服务器使用deflate或gzip高效压缩,并在随后由客户机设备自动解压缩。关于gzip压缩设施的一个版本的描述可以在www.ietf.org/rfc/rfc1952.txt找到;而deflate压缩设施的一个版本可以在www.ietf.org/rfc/rfc1951.txt找到。许多web服务器以及客户机设备上的许多web浏览器能够自动支持deflate或gzip设施。
在一个实施例中,客户机设备可以周期性地请求更新的播放列表;例如,客户机设备可以每几秒(例如,每10秒、20秒、30秒或其他时间段)从服务器请求更新的播放列表。增长的播放列表(诸如,允许客户机在现场正进行的棒球比赛期间的任意时刻从该现场比赛的开头开始观看的现场比赛播放列表)会变得大到足以能够使用压缩来限制随着该增长的播放列表重复通过网络发送而消耗的网络带宽。
在一个实施例中,客户机设备可以可选地指定何时请求播放列表(诸如,更新的播放列表)、其能够支持什么样的压缩技术(诸如,deflate或gzip);对这些技术的支持意味着客户机设备能够对压缩或编码的内容进行解压缩或解码。客户机设备对播放列表(以及压缩技术的可选规范)的请求由web服务器接收,在一个实施例中,不要求该web服务器支持针对播放列表的压缩技术,但是要求其能够发送未压缩的播放列表。web服务器可以通过向客户机设备发送未压缩的播放列表或使用在客户机设备对播放列表的请求中指定的压缩技术之一压缩的播放列表来响应客户机设备的请求。客户机设备接收播放列表并如本文描述的那样使用该播放列表;如果播放列表是压缩的,则使用客户机设备上的解码器(诸如,客户机设备上的web浏览器内的解码器)进行解码。
图8是电子系统的一个实施例的框图。图8例示的电子系统旨在表示电子系统(有线或无线)的范围,例如包括桌上型计算机系统、膝上型计算机系统、蜂窝电话、包括蜂窝使能个人数字助理(PDA)的PDA、机顶盒、娱乐系统、或其他消费电子设备。替换的电子系统可以包括更多、更少和/或不同的部件。图8的电子系统可用于提供客户机设备和/或服务器设备。
电子系统800包括用于通信信息的总线805或其他通信设备,以及耦接至总线805并可以处理信息的处理器810。虽然电子系统800例示为具有单个处理器,但是电子系统800也可以包括多个处理器和/或协处理器。电子系统800可以进一步包括耦接至总线805并可存储可由处理器810执行的信息和指令的随机存取存储器(RAM)或其他动态存储设备820(称为主存储器)。主存储器820还可用于在处理器810执行指令期间存储临时变量或其他中间信息。
电子系统800还可以包括耦接至总线805并可存储用于处理器810的静态信息和指令的只读存储器(ROM)或其他静态存储设备830。数据存储设备840可以耦接至总线805以存储信息和指令。诸如闪存或磁盘或光盘以及相应驱动器的数据存储设备840可被耦接至电子系统800。
电子系统800还可以经由总线805耦接至诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备850以向用户显示信息。电子系统800还可以包括可以耦接至总线805以向处理器810传送信息和命令选择的字母数字输入设备860,其包括字母数字键和其他键。另一类型的用户输入设备是用于向处理器810传送方向信息和命令选择并控制光标在显示器850上的运动的光标控制870,诸如触摸板、鼠标、跟踪球或光标方向键。
电子系统800还可以包括一个或多个网络接口880,以提供对诸如局域网的网络的接入。(一个或多个)网络接口880例如可以包括具有天线885(可以表示一个或多个天线)的无线网络接口。电子系统800可以包括多个无线网络接口,诸如WiFi、Bluetooth和蜂窝电话接口的组合。(一个或多个)网络接口880例如还可以包括经由网络线缆887与远程设备通信的有线网络接口,其中所述网络线缆887例如可以是以太网线缆、同轴线缆、光纤线缆、串行线缆或并行线缆。
在一个实施例中,(一个或多个)网络接口880可以例如通过遵循IEEE 802.11b和/或IEEE 802.11g标准来提供对局域网的接入,和/或无线网络接口可以例如通过遵循Bluetooth标准来提供对私域网的接入。还可以支持其他的无线网络接口和/或协议。
作为经无线LAN标准的通信的附加或者替换,(一个或多个)网络接口880可以例如使用时分多址接入(TDMA)协议、全球移动通信系统(GSM)协议、码分多址接入(CDMA)协议和/或任何其他类型的无线通信协议来提供无线通信。
说明书中对“一个实施例”或“实施例”的参考指的是结合该实施例描述的具体特征、结构或特性包括在本发明至少一个实施例中。在说明书各位置中出现的短语“在一个实施例中”无需全部指代同一个实施例。
在前述的说明书中,业已参考了本发明的特定实施例对本发明进行了描述。然而,显见的是,可以在不背离本发明广义精神和范围的情况下做出各种修改和变化。因此,说明书和附图仅旨在说明而非限制。
附录
如下的附录是根据本发明具体实施例的协议的草拟规范。将会理解在此附录中某些关键词的使用(例如,必须(MUST)、不许(MUST NOT)、应(SHALL)、不应(SHALL NOT)等)适用于该具体实施例而不适用本公开中描述的其他实施例。
摘要
本文档描述用于传送无限多媒体数据流的协议。文档规定了文件的数据格式以及要由服务器(发送方)和客户机(接收方)对流采取的动作。文档描述了该协议的版本3。
内容表
1.介绍
2.概述
3.播放列表文件
3.1.介绍
3.2.新标签
3.2.1.EXT-X-TARGETDURATION
3.2.2.EXT-X-MEDIA-SEQUENCE
3.2.3.EXT-X-KEY
3.2.4.EXT-X-PROGRAM-DATE-TIME
3.2.5.EXT-X-ALLOW-CACHE
3.2.6.EXT-X-ENDLIST
3.2.7.EXT-X-STREAM-INF
3.2.8.EXT-X-DISCONTINUITY
3.2.9.EXT-X-VERSION
4.媒体文件
5.密钥文件
5.1.介绍
5.2.用于AES-128的IV
6.客户机/服务器动作
6.1.介绍
6.2.服务器处理
6.2.1.介绍
6.2.2.滑动窗播放列表
6.2.3.加密媒体文件
6.2.4.提供变体流
6.3.客户机处理
6.3.1.介绍
6.3.2.载入播放列表文件
6.3.3.播放播放列表文件
6.3.4.重载播放列表文件
6.3.5.确定下一个要载入的文件
6.3.6.解密经加密的媒体文件
7.协议版本兼容性
8.例子
8.1.介绍
8.2.简单播放列表文件
8.3.滑动窗播放列表,使用HTTPS
8.4.具有加密媒体文件的播放列表文件
8.5.变体播放列表文件
9.安全考虑
10.参考文献
10.1.规范性参考文献
10.2.资料参考文献
1.介绍
本文档描述用于传送无限多媒体数据流的协议。协议支持媒体数据的加密以及流的备选版本(例如,比特率)的提供。媒体数据可以在其被创建之后很快便被传送,这使其能被近实时地播放。数据通常经HTTP[RFC2616]运载。
描述诸如HTTP的相关标准的外部参考在章节11列出。
2.概述
多媒体呈现由对播放列表文件的URI[RFC3986]指定,播放列表文件是媒体URI和信息标签的有序列表。每个媒体URI指代作为单个连续流的一个分段的媒体文件。
为了播放流,客户机首先获取播放列表文件,随后获取并播放该播放列表中的每个媒体文件。其如本文档中描述的那样重载播放列表文件以发现附加的分段。
本文档中的关键字“必须”(MUST)、“不许”(MUST NOT)、“所需”(REQUIRED)、“应”(SHALL)、“不应”(SHALL NOT)、“应该”(SHOULD)、“不应该”(SHOULD NOT)、“推荐的”(RECOMMENDED)、“可以”(MAY)和“可选的”(OPTIONAL)将如同在RFC 2119[RFC2119]中描述的那样被解释。
3.播放列表文件
3.1.介绍
播放列表必须是扩展M3U播放列表文件[M3U]。
本文档通过定义附加标签来扩展M3U文件格式。
M3U播放列表是由各独立行组成的文本文件。行由单个LF字符或由跟随在LF字符后的CR字符终止。每一行是URI、空行、或以注解字符(例如,“#”)起始。空行被忽略。不许有空格符,除了其中明确指定了空格符的元素之外。
URI行标识媒体文件或变体播放列表文件(参见章节3.2.7)。
URI可以是相对的。相对的URI必须是对于包含该URI的播放列表文件的URI可解的。
以注解字符“#”起始的行是注解或标签。标签以#EXT开始。所有其他以“#”开始的行是注解并且应该被忽略。
播放列表文件的持续时间是其内媒体文件的持续时间之和。
其名称以.m3u8结尾和/或具有HTTP内容类型"application/vnd.apple.mpegurl"的M3U播放列表文件按UTF-8[RFC3629]编码。其名称以.m3u结尾和/或具有HTTP内容类型[RFC2616]“audio/mpegurl”的文件按US-ASCII[US_ASCII]编码。
播放列表文件必须具有以.m3u8结尾和/或具有HTTP内容类型"application/vnd.apple.mpegurl"的名称(如果经HTTP传送)或者具有以.m3u结尾和/或具有HTTP内容类型"audio/mpegurl"的名称(为了兼容性)。
扩展的M3U文件格式定义了两个标签:EXTM3U和EXTINF。扩展的M3U文件通过必须是“#EXTM3U”的第一行与基本M3U文件加以区别。
EXTINF是描述由其后跟随的URI标识的媒体文件的记录标记。每个媒体文件URI必须在前冠以EXTINF标签。其格式是:
#EXTINF:<持续时间>,<标题>
“持续时间”是以秒为单位指定媒体文件的持续时间的整数或浮点数。整数持续时间应该被舍入到最接近的整数。如果播放列表文件的协议版本小于3,则持续时间必须是整数。逗号之后的该行的剩余部分是媒体文件的标题,该标题是媒体分段的可选人类可读信息标题。
本文档定义了如下新标签:EXT-X-TARGETDURATION、EXT-X-MEDIA-SEQUENCE、EXT-X-KEY、EXT-X-PROGRAM-DATE-TIME、EXT-X-ALLOW-CACHE、EXT-X-STREAM-INF、EXT-X-ENDLIST、EXT-X-DISCONTINUITY和EXT-X-VERSION。
3.2.新标签
3.2.1.EXT-X-TARGETDURATION
EXT-X-TARGETDURATION标签指定最大媒体文件持续时间。播放列表文件中每个媒体文件的EXTINF持续时间必须小于或等于目标持续时间。该标签必须在播放列表文件中出现一次。其格式是:
#EXT-X-TARGETDURATION:<s>
其中s是以秒为单位指示目标持续时间的整数。
3.2.2.EXT-X-MEDIA-SEQUENCE
播放列表中的每个媒体文件URI具有唯一的整数序列号。URI的该序列号等于其在前URI的序列号加1。EXT-X-MEDIA-SEQUENCE标签指示播放列表文件中出现的第一个URI的序列号。其格式是:
#EXT-X-MEDIA-SEQUENCE:<号码>
播放列表不许包含多于一个的EXT-X-MEDIA-SEQUENCE标签。如果播放列表文件不包含EXT-X-MEDIA-SEQUENCE标签,则应认为播放列表中第一URI的序列号为0。
媒体文件的序列号无需出现在其URI内。
有关处理EXT-X-MEDIA-SEQUENCE标签的信息参见章节6.3.2和章节6.3.5。
3.2.3.EXT-X-KEY
媒体文件可以被加密。EXT-X-KEY标签提供解密跟随其后的媒体文件所需的信息。其格式是:
#EXT-X-KEY:METHOD=<方法>[,URI="<URI>"][,IV=<IV>]
方法属性指定加密方法。定义了两种加密方法:NONE和AES-128。
加密方法NONE意味着媒体文件不被加密。如果加密方法是NONE,则URI和IV属性不许存在。
加密方法AES-128意味着媒体文件使用具有128位密钥和PKCS7填料的先进加密标准[AES-128]加密[RFC5652]。如果加密方法是AES-128,则URI属性必须存在。IV属性可以存在;参见章节5.2。
URI属性(如果存在)指定如何获取密钥。IV属性(如果存在)指定要和密钥一起使用的初始化向量。IV属性在协议版本2中出现。
新的EXT-X-KEY标签取代任何在前的EXT-X-KEY。
如果播放列表文件不包含EXT-X-KEY标签,则媒体文件不被加密。
对于密钥文件格式请参见章节5,对于有关媒体文件加密的附加信息请参见章节5.2、章节6.2.3和章节6.3.6。
3.2.4.EXT-X-PROGRAM-DATE-TIME
EXT-X-PROGRAM-DATE-TIME标签将下一个媒体文件的开头与绝对日期和/或时间相关联。日期/时间表示是ISO/IEC 8601:2004[ISO_8601]并且应该指示时区。例如:
#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>
对于有关EXT-X-PROGRAM-DATE-TIME标签的更多信息,请参见章节6.2.1和章节6.3.3。
3.2.5.EXT-X-ALLOW-CACHE
EXT-X-ALLOW-CACHE标签指示客户机可以或不许高速缓存下载的媒体文件以供以后重放。其可以在播放列表文件内的任意位置出现;其不许出现多于一次。EXT-X-ALLOW-CACHE标签应用于播放列表中的所有分段。其格式是:
#EXT-X-ALLOW-CACHE:<YES|NO>
对于有关EXT-X-ALLOW-CACHE标签的更多信息,请参见章节6.3.3。
3.2.6.EXT-X-ENDLIST
EXT-X-ENDLIST标签指示不再有媒体文件要被添加至播放列表文件。其可以在播放列表文件内的任意位置出现;其不许出现多于一次。其格式是:
#EXT-X-ENDLIST
3.2.7.EXT-X-STREAM-INF
EXT-X-STREAM-INF标签指示播放列表文件中的下一个URI标识另一个播放列表文件。其格式是:
#EXT-X-STREAM-INF:[属性=值][,属性=值]*<URI>
属性不许在同一EXT-X-STREAM-INF标签内出现多于一次。定义如下属性:
BANDWIDTH=<n>
其中n是比特每秒的整数。其必须是每个媒体文件的总比特率的上限,被计算为包括在或将在播放列表中出现的容器开销。
PROGRAM-ID=<i>
其中i是唯一地标识播放列表文件范围内的具体呈现的整数。
播放列表文件可以包含具有同一PROGRAM-ID的多个EXT-X-STREAM-INF标签,用以标识同一呈现的不同编码。这些变体播放列表可以包含附加的EXT-X-STREAM-INF标签。
CODECS="[格式][,格式]*"
其中每个格式指定在播放列表文件中的媒体文件中存在的媒体样本类型。
有效格式标识符是由RFC 4281[RFC4281]定义的ISO文件格式名空间中的标识符。
RESOLUTION=<N>x<M>
其中N是流内视频的近似编码水平分辨率(表示为像素数),而M则是近似编码垂直分辨率。N和M是整数。
3.2.8.EXT-X-DISCONTINUITY
EXT-X-DISCONTINUITY标签指示其后跟随的媒体文件和其前面的媒体文件之间的编码不连续性。可以改变的特性集如下:
o文件格式
o轨道的数目和类型
o编码参数
o编码序列
o时间戳序列
其格式是:
#EXT-X-DISCONTINUITY
对于有关EXT-X-DISCONTINUITY标签的更多信息,请参见章节4、章节6.2.1和章节6.3.3。
3.2.9.EXT-X-VERSION
EXT-X-VERSION标签指示播放列表文件的兼容性版本。播放列表文件、其关联媒体以及其服务器必须符合描述由标签值指示的协议版本的本文档最近版本的全部条款。
其格式是:
#EXT-X-VERSION:<n>
其中n是指示协议版本的整数。
播放列表文件不许包含多于一个的EXT-X-VERSION标签。不包含EXT-X-VERSION标签的播放列表文件必须符合本协议的版本1。
4.媒体文件
播放列表文件内的每个媒体文件URI必须标识作为整个呈现的分段的媒体文件。每个媒体文件必须被格式化为MPEG-2输送流或MPEG-2音频元素流[ISO_13818]。
输送流文件必须包含单个MPEG-2节目。每个文件的开头应该有节目关联表和节目映射表。包含视频的文件应该具有至少一个密钥帧以及用于完全初始化视频解码器的足够信息。
播放列表中的媒体文件必须是具有在前序列号的媒体文件结尾处的编码流的继续,除非其是播放列表文件内曾出现的第一个媒体文件或是其前缀有EXT-X-DISCONTINUITY标签。
客户机应该准备好处理具体类型(例如,音频或视频)的多个轨道。不具有其他偏好的客户机应该选择具有其能够播放的最低数字PID的轨道。
客户机必须忽略其没有认识出的输送流内的私有流。
媒体文件内部的流内的以及跨多个媒体文件的相应流之间的样本编码参数应该保持一致。然而,客户机应该在遇到编码改变时处理这些编码改变,例如通过缩放视频内容以适应分辨率改变。
5.密钥文件
5.1.介绍
具有URI属性的EXT-X-KEY标签标识密钥文件。密钥文件包含必须被用于解密播放列表中的后续媒体文件的密码密钥。
AES-128加密方法是以16-八位组密钥。密钥文件的格式简单地是二进制格式的16个八位组包装阵列。
5.2.用于AES-128的IV
128位的AES要求在加密和解密时供应相同的16-八位组初始化向量(IV)。改变这一IV增加密码强度。
如果EXT-X-KEY标签具有IV属性,则实现方式必须在使用该密钥加密或解密时使用该属性值作为IV。该值必须被解释为128位的十六进制数,并且必须冠以0x或0X的前缀。
如果EXT-X-KEY标签不具有IV属性,则实现方式必须在加密或解密媒体文件时使用该媒体文件的序列号作为IV。该序列号的大数在先(big-endian)二进制表示应被放置在16-八位组缓冲器内并(在左)由零填充。
6.客户机/服务器动作
6.1.介绍
这一章节描述服务器如何生成播放列表和媒体文件,以及客户机应该如何下载和播放这些播放列表和媒体文件。
6.2.服务器处理
6.2.1.介绍
MPEG-2流的产生在本文档的范围之外,本文档简单假设一个包含该呈现的连续流的源。
服务器必须将流分割成持续时间大致相等的独立媒体文件。服务器应该尝试在支持各独立媒体文件的有效解码的点处(例如在分组和密钥帧边界上)分割流。
服务器必须创建将允许其客户机获取每个媒体文件的、针对该文件的URI。
服务器必须创建播放列表文件。播放列表文件必须符合章节3中描述的格式。针对服务器希望使其可用的每个媒体文件的URI必须在播放列表中以其要被播放的次序出现。整个媒体文件在其URI处于播放列表文件中的情况下必须对客户机可用。
播放列表文件必须包含EXT-X-TARGETDURATION标签。其值必须等于或大于在播放列表文件中出现或将要出现的任何媒体文件的EXTINF值。其值不许改变。典型的目标持续时间是10秒。
播放列表文件应该包含一个指示流的兼容性版本的EXT-X-VERSION标签。其值必须是服务器、播放列表文件和关联媒体文件都遵从的最低协议版本。
服务器必须创建将允许其客户机获取播放列表文件的针对该文件的URI。
如果播放列表文件通过HTTP分发,则服务器应该支持客户机请求以使用“gzip”内容编码。
对播放列表文件的改变从客户机的观点来看必须被原子地做出。
服务器不许改变EXT-X-ALLOW-CACHE标签的值。
播放列表中的每个媒体文件URI必须冠以指示该媒体文件的(经舍入的)持续时间的EXTINF标签的前缀。
服务器可以通过对媒体文件的URI冠以EXT-X-PROGRAM-DATE-TIME标签的前缀,而将该媒体文件与绝对日期和时间相关联。日期和时间的值提供了媒体的时间线到合适壁钟时间的信息映射,其可被用作查找、显示或其他目的的基础。如果服务器提供这一映射,则其应该在播放列表文件中的每个EXT-X-DISCONTINUITY标签之后放置一个EXT-X-PROGRAM-DATE-TIME标签。
如果播放列表包含呈现的最终媒体文件,则播放列表文件必须包含EXT-X-ENDLIST标签。
如果播放列表不包含EXT-X-ENDLIST标签,则服务器必须使包含至少一个新媒体文件URI的播放列表文件新版本为可用。必须相对于播放列表文件的在前版本被使得可用的时刻来使得该新版本可用:不早于该时刻之后目标持续时间的一半,并且不晚于该时刻之后目标持续时间的1.5倍。
如果服务器希望移除整个呈现,则它必须使得播放列表文件对客户机不可用。它应该确保在移除之时播放列表文件内的所有媒体文件至少在该播放列表文件的持续时间内保持对客户机可用。
6.2.2.滑动窗播放列表
服务器可以将媒体文件的可用性限制为那些最近被添加至播放列表的媒体文件。为此,播放列表文件必须总是准确包含有一个EXT-X-MEDIA-SEQUENCE标签。针对从播放列表文件中移除的每一个媒体文件URI,该标签值必须递增1。
必须按照媒体文件URI被添加的次序来从播放列表文件中移除这些URI。
如果播放列表文件的持续时间减去媒体文件的持续时间小于目标持续时间的三倍,则服务器不许从播放列表文件中移除媒体文件URI。
当服务器从播放列表文件中移除媒体文件URI时,该媒体文件应该在等于该媒体文件的持续时间加上其中已出现该媒体文件的最长播放列表文件的持续时间的时间段内保持对客户机可用。
如果服务器计划在将媒体文件经HTTP递送至客户机之后移除该媒体文件,则其应该确保HTTP响应包含反映计划生存时间的期满头部。
(不包含EXT-X-ENDLIST标签的播放列表文件的持续时间必须至少是目标持续时间的三倍)。
6.2.3.加密媒体文件
如果媒体文件要被加密,服务器必须定义将允许授权客户机获取含有解密密钥的密钥文件的URI。该密钥文件必须符合章节5中描述的格式。
服务器可以在密钥响应中设置HTTP期满头部,以指示该密钥可被高速缓存。
如果加密方法是AES-128,则应将AES-128CBC加密应用于各独立媒体文件。整个文件必须被加密。密码块链接不许跨各媒体文件应用。用于加密的IV必须是媒体文件的序列号或是EXT-X-KEY标签的IV属性的值,如章节5.2所描述的那样。
服务器必须使用本方法以及由播放列表文件中紧接位于媒体文件的URI之前的EXT-X-KEY标签指定的其他属性,来加密播放列表中的每个媒体文件。前面有EXT-X-KEY标签(其方法是NONE)的媒体文件,或是前面没有任何EXT-X-KEY标签的媒体文件,不许被加密。
如果播放列表文件包含针对用该密钥加密的媒体文件的URI,则服务器不许从该播放列表文件中移除EXT-X-KEY标签。
6.2.4.提供变体流
服务器可以供应多个播放列表文件,以提供同一呈现的不同编码。如果服务器如此动作,则其应该提供变体播放列表文件,该变体播放列表文件列出允许客户机在各编码间动态切换的每个变体流。
变体播放列表必须包含针对每个变体流的EXT-X-STREAM-INF标签。用于同一呈现的每个EXT-X-STREAM-INF标签必须具有相同的PROGRAM-ID属性值。用于每个呈现的PROGRAM-ID值在该变体播放列表内必须是唯一的。
如果EXT-X-STREAM-INF标签包含CODECS属性,则该属性值必须包括由[RFC4281]定义的、在播放列表文件中出现或将要出现的任何媒体文件中存在的每个格式。
服务器在产生变体流时必须符合如下限制:
每个变体流必须呈现包括流不连续性在内的相同内容。
每个变体播放列表文件必须具有相同的目标持续时间。
在一个变体播放列表文件中出现而在另一个变体播放列表文件中没有出现的内容必须在播放列表文件的开头或结尾处出现,并且不许长于目标持续时间。
变体流中的匹配内容必须具有匹配时间戳。这允许客户机同步各个流。
元素音频流文件必须通过预先考虑具有所有者标识符"com.apple.streaming.transportStreamTimestamp"的ID3 PRIV标签[ID3]来用信号通知文件内第一样本的时间戳。二进制数据必须是33位MPEG-2节目元素流时间戳(表达为大数在先的8-八位组数字)。
此外,所有的变体流应该包含相同经编码的音频比特流。这允许客户机在没有可听短时脉冲波(glitch)信号的情况下在各流之间切换。
6.3.客户机处理
6.3.1.介绍
客户机如何获取针对播放列表文件的URI在本文档的范围之外;假设客户机已经这么做了。
客户机必须从URI获取播放列表文件。如果如此获取的播放列表文件是变体播放列表,则客户机必须从该变体播放列表获取播放列表文件。
本文档不规定客户机对变体流的处理。
6.3.2.载入播放列表文件
每当从播放列表URI载入或重载播放列表文件时:
客户机必须确保播放列表文件以EXTM3U标签开始并且EXT-X-VERSION标签(如果存在的话)指定了该客户机所支持的协议版本;如果没有确保,则该客户机不许尝试使用该播放列表。
客户机应该忽略其没有认识出的任何标签和属性。
客户机必须如章节6.3.5描述的那样确定要载入的下一个媒体文件。
如果播放列表包含EXT-X-MEDIA-SEQUENCE标签,则客户机应该假设该播放列表中的每个媒体文件在播放列表文件被载入之时加上播放列表文件的持续时间的时刻将变得不可用。播放列表文件的持续时间是其内媒体文件的持续时间之和。
6.3.3.播放播放列表文件
客户机应该在回放开始时从播放列表中选择首先要播放的媒体文件。如果不存在EXT-X-ENDLIST标签并且客户机旨在规律地播放媒体(即,以标称回放速率按播放列表的次序进行播放),则客户机不应该选择其开始距播放列表文件结尾小于目标持续时间的三倍的文件。这样做会触发回放停止。
为了实现规律回放,媒体文件必须以其在播放列表文件中出现的次序播放。客户机可以按照其希望的任意方式呈现媒体,包括规律回放、随机访问和窍门模式(trickmode)。
客户机必须在播放在前有EXT-X-DISCONTINUITY标签的媒体文件之前准备好重置其(一个或多个)分析程序和(一个或多个)解码器。
客户机应该尝试在被要求不间断地回放媒体文件之前载入这些媒体文件,以补偿等待时间和吞吐量的临时变动。
如果播放列表文件包含EXT-X-ALLOW-CACHE标签并且其值为NO,则客户机在下载的媒体文件被播放之后不许高速缓存这些媒体文件。否则,客户机可以无限期地高速缓存下载的媒体文件以供随后的重放。
客户机可以使用EXT-X-PROGRAM-DATE-TIME标签的值来向用户显示节目发源时间。如果该值包括时区信息,则客户机应该对其加以考虑;但若并非如此,则客户机不许推断发源时区。
客户机不许依赖于EXT-X-PROGRAM-DATE-TIME标签的值的正确性或持续性。
6.3.4.重载播放列表文件
客户机必须周期性地重载播放列表文件,除非该播放列表文件包含EXT-X-ENDLIST标签。
然而,客户机尝试重载播放列表文件的频率不许多于本章节所规定的频率。
当客户机设备第一次载入播放列表文件,或是重载播放列表文件并发现该播放列表文件从上次载入起已经改变时,客户机必须在尝试再次重载该播放列表文件之前等待一时间段。该时间段被称为是初始最小重载延迟。这是从客户机开始载入播放列表文件的时刻起测量的。
初始最小重载延迟是播放列表中最后一个媒体文件的持续时间。媒体文件持续时间由EXTINF标签指定。
如果客户机重载播放列表文件并发现其尚未改变,则客户机必须在重试之前等待一时间段。最小延迟是目标持续时间的倍数。这一倍数对第一次尝试是0.5,对第二次尝试是1.5,而对后续尝试是3.0。
6.3.5.确定下一个要载入的文件
客户机必须在每一次载入或重载播放列表文件时检查该播放列表文件以确定下一个要输入的媒体文件。
第一个要载入的文件必须是客户机已经选择首先播放的文件,如在章节6.3.3中描述的那样。
如果第一个要播放的媒体文件已被载入并且播放列表文件不包含EXT-X-MEDIA-SEQUENCE标签,则客户机必须验证当前播放列表文件在最后载入的媒体文件最初被找到的偏移处包含该最后载入的媒体文件的URI,并在文件未被找到的情况下中止回放。下一个要载入的媒体文件必须是播放列表中跟随在该最后载入的URI之后的第一个媒体文件URI。
如果第一个要播放的文件已被载入并且播放列表文件包含EXT-X-MEDIA-SEQUENCE标签,则下一个要载入的媒体文件应是具有比最后载入的媒体文件的序列号要大的最小序列号的媒体文件。
6.3.6.解密经加密的媒体文件
如果播放列表文件包含指定密钥文件URI的EXT-X-KEY标签,则客户机必须获取该密钥文件并且使用该密钥文件内的密钥来解密跟随在EXT-X-KEY标签之后的所有媒体文件,直到遇到另一个EXT-X-KEY标签为止。
如果加密方法是AES-128,则应将AES-128CBC解密应用于各独立媒体文件。必须解密整个文件。不许跨各媒体文件应用密码块链接。用于解密的IV必须是媒体文件的序列号或是EXT-X-KEY标签的IV属性的值,如章节5.2所描述的那样。
如果加密方法是NONE,则客户机必须将跟随在EXT-X-KEY标签之后的所有媒体文件看做是明文(未被加密),直到遇到另一个EXT-X-KEY标签为止。
7.协议版本兼容性
客户机和服务器必须实现协议版本2或更高版本以使用:
oEXT-X-KEY标签的IV属性。
客户机和服务器必须实现协议版本3或更高版本以使用:
o浮点EXTINF持续时间值。
8.例子
8.1.介绍
这一章节包含若干示例播放列表文件。
8.2.简单播放列表文件
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,
http://media.example.com/entire.ts
#EXT-X-ENDLIST
8.3.滑动窗播放列表,使用HTTPS
#EXTM3U
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:2680
#EXTINF:8,
https://priv.example.com/fileSequence2680.ts
#EXTINF:8,
https://priv.example.com/fileSequence2681.ts
#EXTINF:8,
https://priv.example.com/fileSequence2682.ts
8.4.具有加密媒体文件的播放列表文件
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-
128,URI="https://priv.example.com/key.php?r=52"
#EXTINF:15,
http://media.example.com/fileSequence52-1.ts
#EXTINF:15,
http://media.example.com/fileSequence52-2.ts
#EXTINF:15,
http://media.example.com/fileSequence52-3.ts
#EXT-X-KEY:METHOD=AES-
128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,
http://media.example.com/fileSequence53-1.ts
8.5.变体播放列表文件
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
9.安全考虑
由于本协议一般地使用HTTP传送数据,因此应用大部分相同的安全考虑。参见RFC2616[RFC2616]的章节15。
媒体文件分析程序通常受到“模糊”(fuzzing)攻击。客户机应该在接收到来自服务器的分析程序文件时多加小心,由此拒绝不兼容的文件。
播放列表文件包含客户机将用来做出任意实体的网络请求的URI。客户机应该对响应进行范围检查以防止缓冲器溢出。还参见RFC 3986[RFC3986]的安全考虑章节。
客户机应该慢慢吞吞地载入由URI标识的资源,以避免促成拒绝服务攻击。
HTTP请求通常包括可含有私人用户数据的会话状态(“cookies”)。实现方式必须遵循RFC 2965[RFC2965]规定的cookie限制以及期满规则。还参见RFC 2965和RFC 2964[RFC2964]的安全考虑章节。
加密密钥由URI指定。这些密钥的递送应该由诸如TLS[RFC5246](从前为SSL)上的HTTP之类的机制结合安全领域或会话cookie来保证。
10.参考文献
10.1.规范性参考文献
[AES_128]U.S.Department of Commerce/National Institute of Standardsand Technology,"Advanced Encryption Standard(AES),FIPS PUB 197",November2001,
<http://csrc.nist.gov/publications/fips/fips1 97/fips-197.pdf
<http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>>.
[ISO_13818]
International Organization for Standardization,"ISO/IEC InternationalStandard 13818;Generic coding of moving pictures and associated audioinformation",October 2007,
<http://www.iso.org/iso/catalogue_detail?csnumber=44169>.
[ISO_8601]
International Organization for Standardization,"ISO/IEC InternationalStandard 8601:2004;Data elements and interchange formats--Informationinterchange--Representation of dates and times",December 2004,<http:// www.iso.org/iso/catalogue_detail?csnumber=40874>.
[RFC2046]Freed,N.and N.Borenstein,"Multipurpose Internet MailExtensions(MIME)Part Two:Media Types",RFC 2046,November 1996.
[RFC2119]Bradner,S.,"Key words for use in RFCs to IndicateRequirement Levels",BCP 14,RFC 2119,March 1997.
[RFC2616]Fielding,R.,Gettys,J.,Mogul,J.,Frystyk,H.,Masinter,L.,Leach,P.,and T.Berners-Lee,"Hypertext Transfer Protocol--HTTP/1.1",RFC 2616,June1999.
[RFC2964]Moore,K.and N.Freed,"Use of HTTP State Management",BCP 44,RFC 2964,October 2000.
[RFC2965]Kristol,D.and L.Montulli,"HTTP State Management Mechanism",RFC 2965,October 2000.
[RFC3629]Yergeau,F.,"UTF-8,a transformation format of ISO 10646",STD63,RFC 3629,November 2003.
[RFC3986]Berners-Lee,T.,Fielding,R.,and L.Masinter,"Uniform ResourceIdentifier(URI):Generic Syntax",STD 66,RFC 3986,January 2005.
[RFC4281]Gellens,R.,Singer,D.,and P.Frojdh,"The Codecs Parameter for"Bucket"Media Types",RFC 4281,November 2005.
[RFC5246]Dierks,T.and E.Rescorla,"The Transport Layer Security(TLS)Protocol Version 1.2",RFC 5246,August 2008.
[RFC5652]Housley,R.,"Cryptographic Message Syntax(CMS)",STD 70,RFC5652,September 2009.
[US_ASCII]
American National Standards Institute,"ANSI X3.4-1986,InformationSystems--Coded Character Sets 7-Bit American National Standard Code forInformation Interchange(7-Bit ASCII)",December 1986.
10.2.资料参考文献
[ID3]ID3.org<http://ID3.org/>,"The ID3audio file data taggingformat",
<http://www.id3.org/Developer_Information>.
[M3U]Nullsoft,Inc.,"The M3U Playlist format,originally invented forthe Winamp media
player",<http://wikipedia.org/wiki/M3U>.

Claims (21)

1.一种存储有可执行程序指令的非暂态机器可读存储介质,所述可执行程序指令在由数据处理系统执行时,使得所述数据处理系统执行包括如下的方法:
利用客户机设备,使用传输协议经网络请求节目的播放列表文件,其中所述请求指定至少一个压缩协议,其中所述压缩协议与所述传输协议的基于标准的HTTP实现相兼容;
利用所述客户机设备接收根据所述至少一个压缩协议压缩的播放列表文件,并利用所述客户机设备解压缩所述播放列表文件,其中所述播放列表文件具有指示一个或多个媒体文件中的内容的一个或多个统一资源标识符(URI)的组以及具有与所述一个或多个媒体文件的回放相关的参数的多个标签;
使用所述传输协议,请求节目的按照所请求的播放列表文件指示的次序的所述一个或多个媒体文件中的内容;
使用所述传输协议经所述网络接收所请求的内容;
由客户机设备生成表示节目的按照所述播放列表文件指示的次序的内容的音频和/或视频输出。
2.如权利要求1所述的介质,其中所述方法还包括:
利用客户机设备确定所述播放列表文件是否包括播放列表文件中的列表结束标签,所述列表结束标签指示没有更多内容将被添加到所述播放列表文件;
利用客户机设备请求节目的更新播放列表文件,所述请求指定所述至少一个压缩协议,其中请求更新播放列表文件是响应于确定播放列表文件中不包括列表结束标签而进行的;以及
利用客户机设备接收压缩格式的更新播放列表文件,并将更新播放列表文件解压缩,所述更新播放列表文件包括用于所述播放列表中的内容的所述URI的组和用于所述播放列表文件中没有的新内容的新URI,其中所述客户机设备在接收到所述更新播放列表文件之前使用所述播放列表文件。
3.如权利要求1所述的介质,其中所述压缩协议是deflate或gzip之一或基于标准的压缩。
4.如权利要求1所述的介质,其中所述播放列表文件包含具有等于或大于所述一个或多个媒体文件中每一个的持续时间的目标持续时间值的标签。
5.如权利要求3所述的介质,其中所述节目是从现场事件捕获的。
6.如权利要求1所述的介质,其中服务器对所述压缩协议的使用是可选的。
7.如权利要求3所述的介质,其中用于所述播放列表文件中的内容的所述URI的组的次序表示呈现的次序,并且其中所述播放列表文件包括所述内容的每个部分的持续时间。
8.一种机器实现的方法,包括:
利用客户机设备,使用传输协议经网络请求节目的播放列表文件,其中所述请求指定至少一个压缩协议,其中所述压缩协议与传输协议的基于标准的HTTP实现相兼容;
利用所述客户机设备接收根据所述至少一个压缩协议压缩的播放列表文件,并利用所述客户机设备解压缩所述播放列表文件,其中所述播放列表文件具有指示一个或多个媒体文件中的内容的一个或多个统一资源标识符(URI)的组以及具有与所述一个或多个媒体文件的回放相关的参数的多个标签;
使用所述传输协议,请求节目的按照所请求的播放列表文件指示的次序的所述一个或多个媒体文件中的内容;
使用所述传输协议经所述网络接收所请求的内容;
由客户机设备生成表示节目的按照所述播放列表文件指示的次序的内容的音频和/或视频输出。
9.如权利要求8所述的方法,所述方法还包括:
利用客户机设备确定所述播放列表文件是否包括播放列表文件中的列表结束标签,所述列表结束标签指示没有更多内容将被添加到所述播放列表文件;
利用客户机设备请求节目的更新播放列表文件,所述请求指定所述至少一个压缩协议,其中请求所述更新播放列表文件是响应于确定所述播放列表文件中不包括列表结束标签而进行的;以及
利用客户机设备接收压缩格式的更新播放列表文件,并将所述更新播放列表文件解压缩,所述更新播放列表文件包括用于播放列表文件中的内容的所述URI的组和用于播放列表文件中没有的新内容的新URI,其中所述客户机设备在接收到所述更新播放列表文件之前使用所述播放列表文件。
10.如权利要求8所述的方法,其中所述压缩协议是deflate或gzip之一或基于标准的压缩。
11.如权利要求8所述的方法,其中所述播放列表文件包含具有等于或大于所述一个或多个媒体文件中每一个的持续时间的目标持续时间值的标签。
12.如权利要求10所述的方法,其中所述节目是从现场事件捕获的。
13.如权利要求8所述的方法,其中服务器对所述压缩协议的使用是可选的。
14.如权利要求8所述的方法,其中用于所述播放列表文件中的内容的所述URI的组的次序表示呈现的次序,并且其中所述播放列表文件包括所述内容的每个部分的持续时间。
15.一种数据处理系统,包括:
用于利用客户机设备使用传输协议经网络请求节目的播放列表文件的装置,其中所述请求指定至少一个压缩协议,其中所述压缩协议与所述传输协议的基于标准的HTTP实现相兼容;
用于利用所述客户机设备接收根据所述至少一个压缩协议压缩的播放列表文件,并利用所述客户机设备解压缩所述播放列表文件的装置,其中所述播放列表文件具有指示一个或多个媒体文件中的内容的一个或多个统一资源标识符(URI)的组以及具有与所述一个或多个媒体文件的回放相关的参数的多个标签;
用于使用所述传输协议请求所述节目的按照所请求的播放列表文件所指示的次序的所述一个或多个媒体文件中的内容的装置;
用于使用所述传输协议经所述网络接收所请求的内容的装置;
用于由客户机设备生成表示节目的按照所述播放列表文件所指示的次序的内容的音频和/或视频输出。
16.如权利要求15所述的系统,还包括:
用于利用客户机设备确定所述播放列表文件是否包括播放列表文件中的列表结束标签的装置,所述列表结束标签指示没有更多内容将被添加到所述播放列表文件;
用于利用客户机设备请求节目的更新播放列表文件的装置,所述请求指定所述至少一个压缩协议,其中请求所述更新播放列表文件是响应于确定所述播放列表文件中不包括列表结束标签而进行的;以及
利用客户机设备接收压缩格式的更新播放列表文件,并将所述更新播放列表文件解压缩的装置,所述更新播放列表文件包括用于播放列表文件中的内容的所述URI的组和用于播放列表文件中没有的新内容的新URI,其中所述客户机设备在接收到所述更新播放列表文件之前使用所述播放列表文件。
17.如权利要求15所述的系统,其中所述压缩协议是deflate或gzip之一或基于标准的压缩。
18.如权利要求15所述的系统,其中所述播放列表文件包含具有等于或大于所述一个或多个媒体文件中每一个的持续时间的目标持续时间值的标签。
19.如权利要求17所述的系统,其中所述节目是从现场事件捕获的。
20.如权利要求15所述的系统,其中服务器对所述压缩协议的使用是可选的。
21.如权利要求17所述的系统,其中用于所述播放列表文件中的内容的所述URI的组的次序表示呈现的次序,并且其中所述播放列表文件包括所述内容的每个部分的持续时间。
CN201611125055.0A 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输 Active CN106550245B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/968,202 2010-12-14
US12/968,202 US8156089B2 (en) 2008-12-31 2010-12-14 Real-time or near real-time streaming with compressed playlists
CN201180064518.6A CN103314598B (zh) 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201180064518.6A Division CN103314598B (zh) 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输

Publications (2)

Publication Number Publication Date
CN106550245A true CN106550245A (zh) 2017-03-29
CN106550245B CN106550245B (zh) 2020-11-06

Family

ID=45406894

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201611125055.0A Active CN106550245B (zh) 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输
CN201180064518.6A Active CN103314598B (zh) 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201180064518.6A Active CN103314598B (zh) 2010-12-14 2011-12-12 具有压缩播放列表的实时或近实时流传输

Country Status (5)

Country Link
US (3) US8156089B2 (zh)
EP (1) EP2633665B1 (zh)
KR (1) KR101445994B1 (zh)
CN (2) CN106550245B (zh)
WO (1) WO2012082588A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108924596A (zh) * 2018-08-28 2018-11-30 苏州科达科技股份有限公司 媒体数据传输方法、装置及存储介质

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5591702B2 (ja) * 2007-09-20 2014-09-17 ヴィジブル ワールド インコーポレイテッド メディアパッケージングのためのシステム及び方法
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US20100287211A1 (en) * 2009-05-11 2010-11-11 Samsung Electronics Co., Ltd. Object linking
EP2264604A1 (en) * 2009-06-15 2010-12-22 Thomson Licensing Device for real-time streaming of two or more streams in parallel to a solid state memory device array
US8745388B2 (en) * 2010-03-22 2014-06-03 EchoStar Technologies, L.L.C. Systems and methods for securely streaming media content
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
US9043484B2 (en) * 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
TWI451279B (zh) 2010-04-07 2014-09-01 Apple Inc 即時或接近即時串流傳輸之內容存取控制
US8412842B2 (en) * 2010-08-25 2013-04-02 Telefonaktiebolaget L M Ericsson (Publ) Controlling streaming media responsive to proximity to user selected display elements
EP2614653A4 (en) * 2010-09-10 2015-04-15 Nokia Corp METHOD AND APPARATUS FOR ADAPTIVE CONTINUOUS DIFFUSION
US9001886B2 (en) 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
US8938619B2 (en) 2010-12-29 2015-01-20 Adobe Systems Incorporated System and method for decrypting content samples including distinct encryption chains
US8683013B2 (en) 2011-04-18 2014-03-25 Cisco Technology, Inc. System and method for data streaming in a computer network
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
US9515904B2 (en) * 2011-06-21 2016-12-06 The Nielsen Company (Us), Llc Monitoring streaming media content
US20130084053A1 (en) * 2011-10-04 2013-04-04 Utc Fire & Security Corporation System to merge multiple recorded video timelines
US11599915B1 (en) 2011-10-25 2023-03-07 Auddia Inc. Apparatus, system, and method for audio based browser cookies
US20130254159A1 (en) 2011-10-25 2013-09-26 Clip Interactive, Llc Apparatus, system, and method for digital audio services
US8983076B2 (en) * 2011-12-22 2015-03-17 Adobe Systems Incorporated Methods and apparatus for key delivery in HTTP live streaming
US8898717B1 (en) * 2012-01-11 2014-11-25 Cisco Technology, Inc. System and method for obfuscating start-up delay in a linear media service environment
US8887193B2 (en) * 2012-01-27 2014-11-11 Sony Corporation System, method, and infrastructure for real-time live streaming content
US9875480B2 (en) * 2012-01-27 2018-01-23 Sony Network Entertainment International Llc System, method, and infrastructure for real-time live streaming content
US9591098B2 (en) 2012-02-01 2017-03-07 Cisco Technology, Inc. System and method to reduce stream start-up delay for adaptive streaming
CN102591993A (zh) * 2012-02-16 2012-07-18 中国工商银行股份有限公司 一种用于热表数据更新的异步处理方法及装置
US20150113286A1 (en) * 2012-03-21 2015-04-23 Irdeto Canada Corporation Method and system for chain transformation
US8788659B1 (en) * 2012-03-29 2014-07-22 Google Inc. Playlist analytics
US20150172353A1 (en) * 2012-07-11 2015-06-18 Miska Hannuksela Method and apparatus for interacting with a media presentation description that describes a summary media presentation and an original media presentation
US9813740B2 (en) 2012-08-24 2017-11-07 Google Inc. Method and apparatus for streaming multimedia data with access point positioning information
US9391727B2 (en) 2012-10-25 2016-07-12 Clip Interactive, Llc Method and system for sub-audible signaling
US20140189141A1 (en) * 2012-12-28 2014-07-03 Humax Co., Ltd. Real-time content transcoding method, apparatus and system, and real-time content receiving method and apparatus
EP2947571B1 (en) 2013-01-17 2019-09-18 Sony Interactive Entertainment Inc. Information processing device and file management method
US20140258292A1 (en) 2013-03-05 2014-09-11 Clip Interactive, Inc. Apparatus, system, and method for integrating content and content services
US10171887B2 (en) * 2013-03-13 2019-01-01 Comcast Cable Communications, Llc Methods and systems for intelligent playback
US9558217B2 (en) * 2013-03-15 2017-01-31 Christopher V. Beckman Data storage devices based on supplementation
CN104113790B (zh) * 2013-04-16 2017-09-15 优视科技有限公司 一种基于安卓操作系统的视频播放方法及装置
US8943534B2 (en) 2013-05-20 2015-01-27 Disney Enterprises, Inc. Advanced streaming playback/dynamic ad insertion
WO2015025036A1 (en) * 2013-08-23 2015-02-26 Bitmovin Gmbh System and method for session mobility for adaptive bitrate streaming
US9923945B2 (en) 2013-10-10 2018-03-20 Cisco Technology, Inc. Virtual assets for on-demand content generation
KR102104409B1 (ko) * 2013-11-14 2020-05-29 한화테크윈 주식회사 영상저장시스템 및 오픈플랫폼기반 영상저장시스템에서 프로토콜 변환 방법
US9661106B2 (en) * 2013-12-04 2017-05-23 Facebook, Inc. Uploading and transcoding media files
FR3016263A1 (fr) * 2014-01-07 2015-07-10 Orange Procede de traitement d'erreur de restitution d'un contenu numerique
KR20160110442A (ko) 2014-01-29 2016-09-21 코닌클리즈케 케이피엔 엔.브이. 이벤트 스트리밍 프레젠테이션 확립
JP6433151B2 (ja) * 2014-05-20 2018-12-05 キヤノン株式会社 映像供給装置、映像取得装置およびそれらの制御方法ならびに映像供給システム
CN105141569B (zh) * 2014-05-30 2019-06-21 华为技术有限公司 媒体处理方法及设备
TW201547271A (zh) * 2014-06-04 2015-12-16 Wistron Corp 播放方法與應用其之發送裝置、播放裝置與通訊系統
CN104244028B (zh) * 2014-06-18 2017-11-24 华为技术有限公司 一种基于码流自适应技术的内容分发方法、装置及系统
CN104166882A (zh) * 2014-08-04 2014-11-26 武汉金融资产交易所有限公司 基于p2p技术的金融资产交易方法
CN105376612A (zh) * 2014-08-26 2016-03-02 华为技术有限公司 一种视频播放方法、媒体设备、播放设备以及多媒体系统
WO2016059060A1 (en) * 2014-10-14 2016-04-21 Koninklijke Kpn N.V. Managing concurrent streaming of media streams
US11778014B2 (en) * 2014-12-12 2023-10-03 Arris Enterprises Llc Throttling content download in adaptive HTTP live streaming
US20160285952A1 (en) * 2015-03-25 2016-09-29 Qualcomm Incorporated Conveying data between devices in wireless personal area network
KR102367134B1 (ko) 2015-06-25 2022-02-24 삼성전자주식회사 가속기를 제어하는 방법 및 이를 이용한 가속기
CN105160267A (zh) * 2015-07-20 2015-12-16 天脉聚源(北京)科技有限公司 检测文件安全性的方法和装置
US9973785B1 (en) * 2015-12-28 2018-05-15 Amazon Technologies, Inc. Automatic failover for live video streaming
US10432685B2 (en) 2016-05-31 2019-10-01 Brightcove, Inc. Limiting key request rates for streaming media
US10347300B2 (en) 2017-03-01 2019-07-09 International Business Machines Corporation Correlation of recorded video presentations and associated slides
CN107071567A (zh) * 2017-05-18 2017-08-18 深圳算云微豆投资中心(有限合伙) 一种多媒体数据传输过程的监控方法及系统
US10284888B2 (en) * 2017-06-03 2019-05-07 Apple Inc. Multiple live HLS streams
US10638192B2 (en) * 2017-06-19 2020-04-28 Wangsu Science & Technology Co., Ltd. Live streaming quick start method and system
US10984021B2 (en) * 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US10776330B2 (en) 2017-06-29 2020-09-15 Sap Se Optimized re-deployment of database artifacts
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US11166080B2 (en) 2017-12-21 2021-11-02 Facebook, Inc. Systems and methods for presenting content
IT201800002537A1 (it) * 2018-02-09 2019-08-09 St Microelectronics Srl Procedimento per la compressione di dati, sistema, apparecchiatura, veicolo e prodotto informatico corrispondenti
US11240280B2 (en) 2019-02-19 2022-02-01 Apple Inc. Low latency streaming media
US11265586B2 (en) * 2019-05-06 2022-03-01 Apple Inc. Skipping segments in playlists
US11197052B2 (en) 2019-07-12 2021-12-07 Apple Inc. Low latency streaming media
US11622164B2 (en) 2019-07-12 2023-04-04 Carrier Corporation System and method for streaming video/s
US11089379B2 (en) 2019-12-11 2021-08-10 Apple Inc. Preload hinting for low latency HTTP live streaming system
CN112437152B (zh) * 2020-11-20 2022-05-17 北京百度网讯科技有限公司 崩溃处理方法、装置、电子设备和存储介质
FR3110312B1 (fr) * 2021-01-13 2023-04-28 Jc Decaux Procédé et système d’affichage digital, dispositif d’affichage digital et serveur d’affichage digital
WO2022271313A1 (en) * 2021-06-23 2022-12-29 Microsoft Technology Licensing, Llc Meeting management engine for a meeting management system
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates
CN116233499B (zh) * 2022-11-30 2024-08-23 中电信数智科技有限公司 一种用于防止m3u8视频被并发批量下载的方法
US11695815B1 (en) * 2022-12-06 2023-07-04 CodeShop, B.V. Method and system for redundant media presentation generation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060083481A1 (en) * 2004-10-14 2006-04-20 Ulead Systems, Inc. Method for generating a playlist and the system for the same
CN101133617A (zh) * 2005-02-11 2008-02-27 维迪亚特企业公司 移动环境中通过播放列表进行多文件串流服务的方法及其系统
CN101494646A (zh) * 1997-06-25 2009-07-29 三星电子株式会社 家庭网络系统及其控制方法
WO2010078281A2 (en) * 2008-12-31 2010-07-08 Apple Inc. Real-time or near real-time streaming

Family Cites Families (241)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5065396A (en) 1990-01-02 1991-11-12 At&T Bell Laboratories Inverse multiplexer and demultiplexer techniques
US5719786A (en) 1993-02-03 1998-02-17 Novell, Inc. Digital media data stream network management system
US5361259A (en) 1993-02-19 1994-11-01 American Telephone And Telegraph Company Wide area network (WAN)-arrangement
EP0614317A3 (en) 1993-03-05 1995-01-25 Sony Corp Decoding video signals.
US5550982A (en) 1993-06-24 1996-08-27 Starlight Networks Video application server
US5610841A (en) 1993-09-30 1997-03-11 Matsushita Electric Industrial Co., Ltd. Video server
US5524110A (en) 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
US5493514A (en) 1993-11-24 1996-02-20 Intel Corporation Process, apparatus, and system for encoding and decoding video signals
US5579239A (en) 1994-02-16 1996-11-26 Freeman; Mitchael C. Remote video transmission system
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5583859A (en) 1994-08-30 1996-12-10 Bell Communications Research, Inc. Data labeling technique for high performance protocol processing
US5613032A (en) 1994-09-02 1997-03-18 Bell Communications Research, Inc. System and method for recording, playing back and searching multimedia events wherein video, audio and text can be searched and retrieved
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5821986A (en) 1994-11-03 1998-10-13 Picturetel Corporation Method and apparatus for visual communications in a scalable network environment
EP0720374A1 (en) 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Apparatus for parallel decoding of digital video signals
US6181867B1 (en) 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US5778374A (en) * 1995-08-03 1998-07-07 International Business Machines Corporation Compressed common file directory for mass storage systems
US5741951A (en) * 1995-08-08 1998-04-21 Huntsman Specialty Chemicals Corporation Conjoint manufacture of MTBE and diisobutylene
BR9610415A (pt) 1995-09-01 1999-09-14 Starguide Digital Networks Inc Sistema de distribuição e produção de arquivos de áudio
IL115263A (en) 1995-09-12 1999-04-11 Vocaltec Ltd System and method for distributing multi-media presentations in a computer network
JPH0981497A (ja) 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
US5933603A (en) 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US5751951A (en) 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
EP0773503B1 (en) 1995-11-10 2004-03-31 Kabushiki Kaisha Toshiba File transfer method, method for a file requesting client device, and file server device
US5627936A (en) 1995-12-21 1997-05-06 Intel Corporation Apparatus and method for temporal indexing of multiple audio, video and data streams
US5805823A (en) 1996-01-30 1998-09-08 Wayfarer Communications, Inc. System and method for optimal multiplexed message aggregation between client applications in client-server networks
JP3258236B2 (ja) 1996-05-28 2002-02-18 株式会社日立製作所 マルチメディア情報転送システム
EP0827336B1 (en) 1996-08-30 2003-10-15 Matsushita Electric Industrial Co., Ltd. Digital broadcasting system, digital broadcasting apparatus, and associated receiver therefor
US5928330A (en) 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US5867230A (en) 1996-09-06 1999-02-02 Motorola Inc. System, device, and method for streaming a multimedia file encoded at a variable bitrate
US5819160A (en) * 1996-09-18 1998-10-06 At&T Corp Programmable radio subscription system for receiving selectively defined information
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
CN1248504C (zh) 1997-01-29 2006-03-29 数字广告及销售有限公司 通过通信网络传送媒体文件的方法
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
US6151632A (en) 1997-03-14 2000-11-21 Microsoft Corporation Method and apparatus for distributed transmission of real-time multimedia information
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6032193A (en) 1997-03-20 2000-02-29 Niobrara Research And Development Corporation Computer system having virtual circuit address altered by local computer to switch to different physical data link to increase data transmission bandwidth
US5974503A (en) 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5892915A (en) 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US6014694A (en) 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US5999529A (en) 1997-09-16 1999-12-07 Nortel Networks Corporation Method and apparatus for interworking ATM adaptation layer formats
US5996015A (en) 1997-10-31 1999-11-30 International Business Machines Corporation Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US6385596B1 (en) 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6377995B2 (en) 1998-02-19 2002-04-23 At&T Corp. Indexing multimedia communications
IL123819A (en) 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
EP0984584A1 (en) 1998-09-04 2000-03-08 America Online, Inc. Internet multimedia broadcast system
US6847778B1 (en) 1999-03-30 2005-01-25 Tivo, Inc. Multimedia visual progress indication system
US6538665B2 (en) 1999-04-15 2003-03-25 Apple Computer, Inc. User interface for presenting media information
JP2001036423A (ja) 1999-05-20 2001-02-09 Yamaha Corp 番組再生システム及び番組再生方法
ID27748A (id) 1999-05-28 2001-04-26 Matsushita Electric Ind Co Ltd Kartu memori semikonduktor, peralatan playback, peralatan perekam, metoda playback, metoda perekam dan medium perekam yang dapat dibaca komputer
RU2272318C2 (ru) 1999-08-03 2006-03-20 Вижионартс Инк. Считываемый компьютером носитель записи, на котором записан файл изображения, устройство для изготовления носителя записи, носитель, на котором записана программа для создания файла изображения, устройство для передачи файла изображения, устройство для обработки файла изображения и носитель, на котором записана программа обработки файла изображения
JP3522635B2 (ja) 1999-08-03 2004-04-26 ヴィジョンアーツ株式会社 画像ファイルを記録したコンピュータ読み取り可能な記録媒体、この記録媒体の作成装置、画像ファイル作成プログラムを記録した媒体、画像ファイル送信装置、画像ファイル処理装置、画像ファイル処理プログラムを記録した媒体
US8341662B1 (en) 1999-09-30 2012-12-25 International Business Machine Corporation User-controlled selective overlay in a streaming media
US6625750B1 (en) 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
WO2001038993A1 (en) 1999-11-29 2001-05-31 Binary Broadcasting Corporation Secure digital music distribution
US20070005428A1 (en) 1999-12-08 2007-01-04 Jacobs Paul E Method for distributing advertisements to client devices having e-mail software installed including multiple advertisement operational modes
US20070038728A1 (en) 1999-12-08 2007-02-15 Jacobs Paul E A system for controlling the distribution of advertisements to informational client devices using a playlist
US20020029166A1 (en) 1999-12-08 2002-03-07 Qualcomm Incorporated E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
EP1113642A3 (en) 1999-12-16 2004-04-14 Actv, Inc. Enhanced video programming system and method using a local host for network communication
US6985848B2 (en) 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
US7725812B1 (en) 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
US7260564B1 (en) 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
EP1158799A1 (en) 2000-05-18 2001-11-28 Deutsche Thomson-Brandt Gmbh Method and receiver for providing subtitle data in several languages on demand
US7756743B1 (en) 2000-06-21 2010-07-13 Clubcom, Llc System and method for branding a facility
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US6925495B2 (en) * 2000-07-13 2005-08-02 Vendaria Media, Inc. Method and system for delivering and monitoring an on-demand playlist over a network using a template
US7624337B2 (en) 2000-07-24 2009-11-24 Vmark, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
US7471834B2 (en) 2000-07-24 2008-12-30 Vmark, Inc. Rapid production of reduced-size images from compressed video streams
US7218837B2 (en) 2000-09-25 2007-05-15 Victor Company Of Japan, Ltd. Program-signal recording and reproducing apparatus
US6834297B1 (en) * 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
US20020046315A1 (en) 2000-10-13 2002-04-18 Interactive Objects, Inc. System and method for mapping interface functionality to codec functionality in a portable audio device
US20020083182A1 (en) 2000-12-18 2002-06-27 Alvarado Juan C. Real-time streamed data download system and method
MY147018A (en) 2001-01-04 2012-10-15 Thomson Licensing Sa A method and apparatus for acquiring media services available from content aggregators
US20080059532A1 (en) 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US7640320B2 (en) 2001-01-18 2009-12-29 Yahoo! Inc. Method and system for managing digital content, including streaming media
US20020147634A1 (en) 2001-01-31 2002-10-10 Ronald Jacoby System for dynamic generation of online streaming media advertisements
US7308717B2 (en) 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
US20030061305A1 (en) 2001-03-30 2003-03-27 Chyron Corporation System and method for enhancing streaming media delivery and reporting
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6990497B2 (en) 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
KR100913844B1 (ko) 2001-09-10 2009-08-26 톰슨 라이센싱 디지털 오디오 플레이어에서 사용자 인터페이스 및네비게이션 작업을 지원하기 위한 m3u 파일 포맷의 확장
US7721103B2 (en) 2001-09-18 2010-05-18 Media Rights Technologies, Inc. System and method for providing global media content delivery
US7343487B2 (en) * 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
US7334016B2 (en) 2001-11-15 2008-02-19 Globalview Software Inc. Data transfer system for providing non-buffered, real-time streaming data users
US7039784B1 (en) 2001-12-20 2006-05-02 Info Value Computing Inc. Video distribution system using dynamic disk load balancing with variable sub-segmenting
EP1470497A1 (en) 2002-01-12 2004-10-27 Coretrust, Inc. Method and system for the information protection of digital content
US7159174B2 (en) 2002-01-16 2007-01-02 Microsoft Corporation Data preparation for media browsing
US7096234B2 (en) 2002-03-21 2006-08-22 Microsoft Corporation Methods and systems for providing playlists
US20030186645A1 (en) 2002-04-02 2003-10-02 Robert Mori Method for marking a portion of a media broadcast for later use
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7020710B2 (en) 2002-06-21 2006-03-28 Thomson Licensing Streaming media delivery on multicast networks for network and server bandwidth minimization and enhanced personalization
US7549060B2 (en) 2002-06-28 2009-06-16 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
US7272296B2 (en) 2002-07-24 2007-09-18 Thomson Licensing Navigating to a particular program or specific time increment in a personal video recorder
US7917557B2 (en) * 2002-09-05 2011-03-29 Koninklijke Philips Electronics N.V. Method and devices for creating a second playlist based on a first playlist
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7054888B2 (en) 2002-10-16 2006-05-30 Microsoft Corporation Optimizing media player memory during rendering
US7668842B2 (en) 2002-10-16 2010-02-23 Microsoft Corporation Playlist structure for large playlists
CN100463513C (zh) 2002-10-21 2009-02-18 松下电器产业株式会社 数据处理装置
US20040086120A1 (en) * 2002-11-06 2004-05-06 Akins Glendon L. Selecting and downloading content to a portable player
US6812994B2 (en) 2002-12-04 2004-11-02 Eastman Kodak Company Streamlined methods and systems for scheduling and handling digital cinema content in a multi-theatre environment
KR100520115B1 (ko) 2002-12-27 2005-10-10 삼성전자주식회사 플레이리스트 관리 장치 및 방법
CA2457602A1 (en) 2003-02-19 2004-08-19 Impatica Inc. Method of synchronizing streams of real time data
US7383229B2 (en) 2003-03-12 2008-06-03 Yahoo! Inc. Access control and metering system for streaming media
US7287083B1 (en) 2003-03-20 2007-10-23 Novell, Inc. Computing environment failover in a branch office environment
US7349663B1 (en) 2003-04-24 2008-03-25 Leave A Little Room Foundation Internet radio station and disc jockey system
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US20040250293A1 (en) 2003-06-09 2004-12-09 Sony Corporation System and method for providing alternate program services
US20040260835A1 (en) 2003-06-23 2004-12-23 Welk Douglas L. Automotive internet radio system
US20050005025A1 (en) 2003-07-04 2005-01-06 Michael Harville Method for managing a streaming media service
KR20050015937A (ko) 2003-08-05 2005-02-21 삼성전자주식회사 정보 저장 매체, 그 재생 장치 및 방법
US20130097302A9 (en) 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US7673062B2 (en) 2003-11-18 2010-03-02 Yahoo! Inc. Method and apparatus for assisting with playback of remotely stored media files
US8544050B2 (en) 2003-12-30 2013-09-24 Aol Inc. Rule-based playlist engine
US7949726B2 (en) * 2004-03-12 2011-05-24 Ocean And Coastal Environmental Sensing, Inc. System and method for delivering information on demand
JP2006526215A (ja) 2004-03-22 2006-11-16 ニトゲン・テクノロジーズ・インコーポレーテッド ストリーミング基盤のコンテンツ分散形ネットワークシステムとファイル分割、併合及び再生方法
JP2005323325A (ja) 2004-03-26 2005-11-17 Nec Corp 放送映像音声データ記録方法、装置、および記録媒体
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US7720983B2 (en) 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media
JP2005332274A (ja) 2004-05-20 2005-12-02 Toshiba Corp 動画像中のオブジェクトに関するメタデータストリームのデータ構造、検索方法及び再生方法
US20080288536A1 (en) 2004-07-23 2008-11-20 Commonwealth Scientific And Industrial Research Organisation Method and System for Integrating Browsing Histories with Media Playlists
US20110214059A1 (en) 2010-03-01 2011-09-01 Ashley Edwardo King Media Distribution in a Content Delivery Network
JP4332089B2 (ja) 2004-08-19 2009-09-16 ソニー株式会社 再生装置、再生方法および再生プログラム、ならびに、記録媒体
JP2007065928A (ja) 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
US7412149B2 (en) 2004-10-28 2008-08-12 Bitband Technologies, Ltd. Trick mode generation in video streaming
CA2590234A1 (en) 2004-12-13 2006-06-22 Muvee Technologies Pte Ltd A method of automatically editing media recordings
US7490775B2 (en) 2004-12-30 2009-02-17 Aol Llc, A Deleware Limited Liability Company Intelligent identification of multimedia content for synchronization
WO2006074093A2 (en) 2005-01-05 2006-07-13 Divx, Inc. Media transfer protocol
US7434154B2 (en) 2005-01-07 2008-10-07 Dell Products L.P. Systems and methods for synchronizing media rendering
US20070214182A1 (en) * 2005-01-15 2007-09-13 Outland Research, Llc Establishment-based media and messaging service
US7818350B2 (en) * 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US8352627B1 (en) 2005-03-23 2013-01-08 Apple Inc. Approach for downloading data over networks using automatic bandwidth detection
US8176565B2 (en) 2005-04-15 2012-05-08 Sony Corporation Information processing apparatus, information processing method, and computer program
EP1873780B1 (en) 2005-04-22 2018-10-03 Sony Corporation Recording device, recording method, reproducing device, reproducing method, program, and recording medium
EP1877981A4 (en) 2005-05-02 2009-12-16 Univ Virginia SYSTEMS, DEVICES AND METHODS FOR INTERPRETATION OF MOVEMENTS
US8321041B2 (en) 2005-05-02 2012-11-27 Clear Channel Management Services, Inc. Playlist-based content assembly
US7686215B2 (en) 2005-05-21 2010-03-30 Apple Inc. Techniques and systems for supporting podcasting
JP4731214B2 (ja) 2005-06-17 2011-07-20 ソニー エリクソン モバイル コミュニケーションズ, エービー 携帯端末装置、コンテンツ配信装置、コンテンツ配信システム、及び通信プログラム
US20080005348A1 (en) 2005-06-24 2008-01-03 David Kosiba System and method for enabling playlist navigation of digital multimedia content
US7680824B2 (en) * 2005-08-11 2010-03-16 Microsoft Corporation Single action media playlist generation
US20070055743A1 (en) 2005-09-02 2007-03-08 Pirtle Ross M Remote control media player
US20070174147A1 (en) 2005-12-30 2007-07-26 Realnetworks System and method for updating a playlist based upon ratings
JP2007115293A (ja) 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
JP2007158414A (ja) 2005-11-30 2007-06-21 Matsushita Electric Ind Co Ltd コンテンツ配信システム及びコンテンツ仲介サーバ
CN101102309A (zh) * 2005-12-02 2008-01-09 阿尔卡特公司 在播放列表上下文中比实时更快的流传输
TW200723081A (en) 2005-12-13 2007-06-16 Universal Scient Ind Co Ltd Circular multimedia playback progress indicator and method of indicating signals thereof
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
JPWO2007111312A1 (ja) 2006-03-28 2009-08-13 パイオニア株式会社 コンテンツ配信システム、サーバ装置、コンテンツ配信方法およびプログラム
US7730420B1 (en) 2006-05-03 2010-06-01 The Weather Channel, Inc. Systems and methods for creating a playlist
US20070282905A1 (en) 2006-06-06 2007-12-06 Sony Ericsson Mobile Communications Ab Communication terminals and methods for prioritizing the playback of distributed multimedia files
US20080008439A1 (en) 2006-06-06 2008-01-10 Guangqun Liu Method and System For Dynamic Management Of Multiple Media Data Streams
US20080133603A1 (en) 2006-08-28 2008-06-05 Lawrence Fischer System and method for media publishing
GB2454618B (en) 2006-09-01 2010-03-03 Rowe Internat Corp Automatic music management methods and systems
KR20080020868A (ko) 2006-09-01 2008-03-06 삼성전자주식회사 스트리밍 컨텐츠 기록과 재생에 관한 장치 및 방법
JP4694448B2 (ja) 2006-09-13 2011-06-08 アルパイン株式会社 オーディオ装置
US20080109888A1 (en) 2006-09-14 2008-05-08 Shah Ullah Methods and systems for securing content projected to a nearby device
US20080091717A1 (en) * 2006-09-27 2008-04-17 Zachary Adam Garbow Generation of Collaborative Playlist Based Upon Musical Preference Data from Multiple Digital Media Players
WO2008058259A2 (en) 2006-11-08 2008-05-15 Mywaves, Inc. An apparatus and method for dynamically providing web-based multimedia to a mobile phone
US8176058B2 (en) 2006-11-30 2012-05-08 Yahoo! Inc. Method and systems for managing playlists
US8219636B2 (en) 2006-12-18 2012-07-10 Verizon Patent And Licensing Inc. Networked media recording
WO2008081415A2 (en) 2006-12-28 2008-07-10 France Telecom Media file server
US8180735B2 (en) 2006-12-29 2012-05-15 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway at user premises
US20080256129A1 (en) * 2006-12-31 2008-10-16 Robert Salinas Method and System of Creating Media Playlists and Sending to Mobile Devices
US20080159715A1 (en) 2007-01-03 2008-07-03 Microsoft Corporation Contextual linking and out-of-band delivery of related online content
US20080209066A1 (en) 2007-01-24 2008-08-28 Spio Mary A Method and apparatus for providing continuous playback of media programs at a remote end user computer
US20100281042A1 (en) 2007-02-09 2010-11-04 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
US10382514B2 (en) 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
US20080250319A1 (en) 2007-04-05 2008-10-09 Research In Motion Limited System and method for determining media playback behaviour in a media application for a portable media device
US20080271076A1 (en) 2007-04-27 2008-10-30 General Instrument Corporation Method and Apparatus for Switching Between Edge Device Resources in an SDV System
AU2008272901B2 (en) 2007-07-03 2011-03-17 3M Innovative Properties Company System and method for assigning pieces of content to time-slots samples for measuring effects of the assigned content
US7769829B1 (en) 2007-07-17 2010-08-03 Adobe Systems Inc. Media feeds and playback of content
DE102007041143B4 (de) 2007-08-30 2010-04-08 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum Analysieren von gleichzeitig übertragenen, verschlüsselten Datenströmen in IP-Netzwerken
WO2009046435A1 (en) 2007-10-05 2009-04-09 Aharon Mizrahi System and method for enabling search of content
CN101448009B (zh) 2007-11-27 2013-02-20 鸿富锦精密工业(深圳)有限公司 音乐同步播放系统、方法及音乐播放器
US9734198B2 (en) * 2007-11-30 2017-08-15 Red Hat, Inc. Query processing
US8543622B2 (en) 2007-12-07 2013-09-24 Patrick Giblin Method and system for meta-tagging media content and distribution
EP2235642A4 (en) 2007-12-13 2016-08-03 Highwinds Holdings Inc CONTENT DELIVERY NETWORK
US20090157731A1 (en) 2007-12-14 2009-06-18 Zigler Jeffrey D Dynamic audio file and method of use
US8364296B2 (en) 2008-01-02 2013-01-29 International Business Machines Corporation Method and system for synchronizing playing of an ordered list of auditory content on multiple playback devices
WO2009097492A1 (en) 2008-01-30 2009-08-06 Azuki Systems, Inc. Media navigation system
EP2259251A4 (en) 2008-03-07 2011-07-27 Victor Company Of Japan SERVER DEVICE, TERMINAL, PLAYBACK DEVICE
US8239889B2 (en) 2008-03-10 2012-08-07 Hulu, LLC Method and apparatus for collecting viewer survey data and for providing compensation for same
WO2009120301A2 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US20100040349A1 (en) 2008-05-01 2010-02-18 Elliott Landy System and method for real-time synchronization of a video resource and different audio resources
US8275880B2 (en) 2008-05-06 2012-09-25 Microsoft Corporation Media content programming, delivery, and consumption
WO2009140208A2 (en) 2008-05-12 2009-11-19 Swarmcast, Inc. Live media delivery over a packet-based computer network
US8644675B2 (en) 2008-06-06 2014-02-04 Deluxe Digital Studios, Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
KR20100000335A (ko) 2008-06-24 2010-01-06 삼성전자주식회사 유저 인터페이스, 컨텐츠 내비게이션 방법 및 컨텐츠 재생장치와 저장 매체
US8452855B2 (en) 2008-06-27 2013-05-28 Yahoo! Inc. System and method for presentation of media related to a context
US8375137B2 (en) 2008-07-22 2013-02-12 Control4 Corporation System and method for streaming audio using a send queue
US10007668B2 (en) 2008-08-01 2018-06-26 Vantrix Corporation Method and system for triggering ingestion of remote content by a streaming server using uniform resource locator folder mapping
US8473628B2 (en) 2008-08-29 2013-06-25 Adobe Systems Incorporated Dynamically altering playlists
EP2175577A3 (en) 2008-10-09 2012-03-28 MMI Broadcasting Ltd. Apparatus and methods for broadcasting
US9788043B2 (en) 2008-11-07 2017-10-10 Digimarc Corporation Content interaction methods and systems employing portable devices
US8527877B2 (en) 2008-11-25 2013-09-03 At&T Intellectual Property I, L.P. Systems and methods to select media content
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8161137B2 (en) 2009-01-16 2012-04-17 At&T Intellectual Property I., L.P. Environment delivery network
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8429287B2 (en) 2009-04-29 2013-04-23 Rangecast Technologies, Llc Network audio distribution system and method
US10410222B2 (en) 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
EP2280521A1 (en) 2009-07-30 2011-02-02 Alcatel Lucent Method of switching media content for a mobile apparatus
CA2822185C (en) 2009-08-14 2014-04-22 Azuki Systems, Inc. Method and system for unified mobile content protection
US9537967B2 (en) 2009-08-17 2017-01-03 Akamai Technologies, Inc. Method and system for HTTP-based stream delivery
CN101662665B (zh) * 2009-08-31 2015-07-22 传线网络科技(上海)有限公司 实时点播系统及其点播方法
US8392600B2 (en) 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9237387B2 (en) 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
WO2011044287A1 (en) 2009-10-06 2011-04-14 Openwave Systems Inc. Managing network traffic by editing a manifest file and/or using intermediate flow control
EP3220281A1 (en) 2009-11-04 2017-09-20 Amotech Co., Ltd. System and method for media content streaming
KR101750049B1 (ko) 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
CA2780440C (en) 2009-11-16 2018-03-06 Twentieth Century Fox Film Corporation Non-destructive file based mastering for multiple languages and versions
WO2011087449A1 (en) 2010-01-18 2011-07-21 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for http media stream distribution
US8972541B2 (en) 2010-02-12 2015-03-03 Alcatel Lucent Method and apparatus providing access network aware presence to applications
US8745388B2 (en) 2010-03-22 2014-06-03 EchoStar Technologies, L.L.C. Systems and methods for securely streaming media content
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
US8954596B2 (en) 2010-04-02 2015-02-10 Netflix, Inc. Dynamic virtual chunking of streaming media content
US9043484B2 (en) 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
KR20130115986A (ko) 2010-05-27 2013-10-22 에스엠에스씨 홀딩스 에스에이알엘 미디어 스트림의 끊김 없는 전송
US8555163B2 (en) 2010-06-09 2013-10-08 Microsoft Corporation Smooth streaming client component
AU2010202741B1 (en) 2010-06-30 2010-12-23 Adeia Media Holdings Llc Dynamic chunking for media streaming
BR112013001383B1 (pt) 2010-07-20 2021-12-21 Interdigital Madison Patent Holdings Método para apresentar conteúdo durante operações de modos de truque
EP2614653A4 (en) 2010-09-10 2015-04-15 Nokia Corp METHOD AND APPARATUS FOR ADAPTIVE CONTINUOUS DIFFUSION
MY168733A (en) 2010-11-02 2018-11-29 Ericsson Telefon Ab L M Methods and devices for media description delivery
US8532464B2 (en) 2010-11-08 2013-09-10 Deluxe Digital Studios, Inc. Methods and systems for use in controlling playback of content in relation to recorded content
US20120124179A1 (en) 2010-11-12 2012-05-17 Realnetworks, Inc. Traffic management in adaptive streaming protocols
US9800941B2 (en) 2011-01-03 2017-10-24 Curt Evans Text-synchronized media utilization and manipulation for transcripts
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
EP2676455A2 (en) 2011-02-18 2013-12-25 Aereo, Inc. Method and system for program and stream control of video to target device
US8798777B2 (en) 2011-03-08 2014-08-05 Packetvideo Corporation System and method for using a list of audio media to create a list of audiovisual media
US8849950B2 (en) 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
US8510555B2 (en) 2011-04-27 2013-08-13 Morega Systems Inc Streaming video server with virtual file system and methods for use therewith
US20120284804A1 (en) 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (drm)
US9462024B2 (en) 2011-06-08 2016-10-04 Futurewei Technologies, Inc. System and method of media content streaming with a multiplexed representation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494646A (zh) * 1997-06-25 2009-07-29 三星电子株式会社 家庭网络系统及其控制方法
US20060083481A1 (en) * 2004-10-14 2006-04-20 Ulead Systems, Inc. Method for generating a playlist and the system for the same
CN101133617A (zh) * 2005-02-11 2008-02-27 维迪亚特企业公司 移动环境中通过播放列表进行多文件串流服务的方法及其系统
WO2010078281A2 (en) * 2008-12-31 2010-07-08 Apple Inc. Real-time or near real-time streaming

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108924596A (zh) * 2018-08-28 2018-11-30 苏州科达科技股份有限公司 媒体数据传输方法、装置及存储介质
CN108924596B (zh) * 2018-08-28 2020-11-13 苏州科达科技股份有限公司 媒体数据传输方法、装置及存储介质

Also Published As

Publication number Publication date
WO2012082588A2 (en) 2012-06-21
US20130031165A1 (en) 2013-01-31
KR101445994B1 (ko) 2014-11-04
US8156089B2 (en) 2012-04-10
KR20130105697A (ko) 2013-09-25
WO2012082588A3 (en) 2012-11-01
CN103314598A (zh) 2013-09-18
US20120191870A1 (en) 2012-07-26
EP2633665A2 (en) 2013-09-04
US8280863B2 (en) 2012-10-02
EP2633665B1 (en) 2018-10-24
CN106550245B (zh) 2020-11-06
US20110138020A1 (en) 2011-06-09
US8762351B2 (en) 2014-06-24
CN103314598B (zh) 2016-11-02

Similar Documents

Publication Publication Date Title
CN103314598B (zh) 具有压缩播放列表的实时或近实时流传输
CN102611701B (zh) 通过非流化协议流化多媒体数据的方法
CN103650526B (zh) 用于实时或近实时流传输的播放列表
CN103583051B (zh) 用于实时或近实时流传输的播放列表
US9558282B2 (en) Playlists for real-time or near real-time streaming
US8639832B2 (en) Variant streams for real-time or near real-time streaming to provide failover protection
KR101528991B1 (ko) 실시간 또는 준 실시간 스트리밍
AU2016202709B2 (en) Real-time or near real-time streaming

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant