CN106797488A - 在媒体流之间切换 - Google Patents

在媒体流之间切换 Download PDF

Info

Publication number
CN106797488A
CN106797488A CN201580045968.9A CN201580045968A CN106797488A CN 106797488 A CN106797488 A CN 106797488A CN 201580045968 A CN201580045968 A CN 201580045968A CN 106797488 A CN106797488 A CN 106797488A
Authority
CN
China
Prior art keywords
variant
media
bandwidth
uri
video 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
CN201580045968.9A
Other languages
English (en)
Other versions
CN106797488B (zh
Inventor
小W·B·梅
D·L·比德曼
J·Y·苏
R·N·潘托斯
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 CN106797488A publication Critical patent/CN106797488A/zh
Application granted granted Critical
Publication of CN106797488B publication Critical patent/CN106797488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • 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/23439Processing 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 for generating different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/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/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/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种用于处理在一个或多个播放列表中指定的媒体的方法(201‑207),该方法包括:接收表示媒体的多个变体的数据,并且在服务器设备处为媒体的每个变体确定峰值带宽和平均带宽,然后创建主播放列表,其包括通用资源标识符(URI)并且为每个变体指定峰值带宽和平均带宽。然后,客户端设备处的方法(221‑231)可使用峰值带宽和平均带宽来确定是否从主播放列表中的一个变体切换到另一个变体。客户端设备可通过选择并接收包括第一变体的一个或多个片段的URI的第一媒体播放列表来执行该方法。客户端设备还可确定在第一变体的片段的下载期间的观察的比特率,并且在显示媒体之前将第一变体的媒体存储在缓冲器中。然后,客户端设备可在变体之间进行切换之前确定缓冲器中的数据量是否超过与第二变体的待下载的数据的估计量相关的估计值。

Description

在媒体流之间切换
背景技术
诸如电视节目或电影或无线电内容的媒体的流式传输通常指由客户端设备作为内容的片段的流接收的媒体从服务器设备的传输。通常,内容不存储在客户端设备处,并且在从服务器设备接收流中的片段之后很快被呈现。流媒体的现有技术中的示例包括使用HTTP协议通过使用一个或多个播放列表来递送流内容的流技术。美国专利8,099,473和公布的美国专利申请2012/0311094提供了对通过使用HTTP兼容协议来使用播放列表流式传输媒体(诸如视频、音频或视频和音频两者)的描述。
发明内容
在本描述中存在涉及用于提供流媒体的方法和系统的多个方面。在一个方面,一种用于处理在一个或多个播放列表中指定的媒体的方法包括:接收表示媒体的多个变体的数据并且在服务器设备处为媒体的每个变体确定峰值带宽和平均带宽,其中每个变体示出相同的媒体(例如,相同的电影或电视节目或其他内容)但是使用不同的编码,并且然后创建包括用于每个变体的通用资源标识符(URI)的主播放列表。每个URI可由客户端设备用于检索变体中的一个变体的媒体播放列表,并且在一个实施方案中,主播放列表包括指定用于每个变体的峰值带宽和平均带宽的数据。然后,客户端设备可请求主播放列表,该主播放列表然后由服务器设备传输到客户端设备。将主播放列表传输到客户端设备的服务器设备可为创建主播放列表的相同的服务器设备,或者在另一实施方案中,传输主播放列表的服务器设备可与创建主播放列表的服务器设备(“播放列表创建服务器”)分开并且与其不同。
然后,客户端设备可使用峰值带宽和平均带宽来确定是否在主播放列表中从一个变体切换到另一个变体。在一个实施方案中,客户端设备可通过选择并接收包括用于第一变体的一个或多个片段的URI的第一媒体播放列表来执行该方法。客户端设备还可确定在下载第一变体的片段期间的观察的比特率,并且在显示媒体之前将第一变体的媒体存储在缓冲器中。然后,客户端设备可在变体之间进行切换之前确定缓冲器中的数据量是否超过与第二变体的待下载的数据的估计量相关的估计值。在一个实施方案中,可从第二变体的峰值带宽和第二变体的一个或多个片段的目标持续时间的组合导出估计值。客户端设备还可将从主播放列表获得的用于第二变体的平均带宽与观察的比特率进行比较;基于该比较和缓冲器中的数据的状态,客户端设备可响应于确定缓冲器中的数据量超过估计值并且响应于确定观察的比特率超过平均带宽而切换到第二变体。在一个实施方案中,第二变体可提供更高质量的编码,诸如视频媒体的更高分辨率编码。
以上概述不包括本公开的所有实施方案的详尽列表。描述了其他方法,并且描述了系统和机器可读非暂态存储介质。可从上面概述的各个方面和实施方案以及以下具体实施方式中公开的那些的所有合适组合来实践所有系统和方法。
附图说明
本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。
图1示出了具有两个变体的主播放列表的示例,每个变体具有峰值带宽的值和平均带宽的值。
图2A是示出根据本发明的一个实施方案的用于使用平均带宽来确定是否切换到另一个变体的方法的示例的流程图。
图2B是示出用于使用平均比特率来确定是否在变体之间切换的方法的流程图。
图3示出了用于现有流的缓冲器可如何用于确定何时以及是否切换到另一个变体的示例。
图4示出了可包括一个或多个内容创建服务器和一个或多个分布(例如,传送)服务器的分布式架构的示例。
图5示出了可实现本文所述的一种或多种方法的数据处理系统的示例。
具体实施方式
将参考以下讨论的细节来描述各种实施方案和方面,并且附图将对所述多个实施方案进行说明。以下描述和附图是示例性的,并且不应被理解为限制性的。描述了众多的具体细节以提供对各个实施方案的全面理解。然而,在某些示例中,众所周知或常规的细节并未被描述以便提供对实施方案的简明论述。
在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在少一个实施方案中。在本说明书中的不同位置出现的短语“在一个实施方案中”不一定都是指同一个实施方案。在随后的附图中所描绘的过程由包括硬件(例如,电路系统、专用逻辑等等)、软件或两者的组合的处理逻辑来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的至少某些操作可以不同的顺序执行。此外,某些操作也可并行执行而非按顺序执行。
美国专利8,099,473和美国专利申请公布U.S.2012/0311094提供了用于通过使用播放列表结合通过HTTP协议或兼容HTTP协议或其他适用的协议的传输来提供流媒体的方法的背景描述;美国专利8,099,473和美国专利申请公布U.S.2012/0311094在此通过引用整体并入本文。这些文献描述了各种数据处理系统,诸如美国专利8,099,473的图4、图5和图8中所示的系统,其可与本文所述的一个或多个实施方案一起使用。此外,该专利描述了用于在相同的媒体节目的变体之间切换的各种方法,诸如电视节目或电影;参见例如参考该美国专利的图9A至9D的变体之间切换的讨论。
在本公开的一个方面中,用于在变体之间切换的实施方案采用主播放列表中指示的平均带宽值,而不是在决定是否切换到另一变体时使用峰值带宽值的现有方法。该峰值带宽值可被定义为包括多个片段的流内的任何片段中的最大比特率。图1、图2A、图2B和图3示出了在确定是否切换到另一变体时可使用平均带宽值的一个或多个实施方案。图1示出了包括相同的媒体呈现的至少两个变体的主播放列表101的示例。具体地,媒体变体1和媒体变体2被标记为变体102和变体104,并且那些变体中的每个变体具有相关联的峰值带宽值和平均带宽值。具体地,变体102包括相关联的峰值带宽和平均带宽105,而变体104包括相关联的峰值带宽和平均带宽107。峰值带宽105可为由服务器或某些其他系统确定的值,服务器或某些其他系统确定或估计在呈现内容时该内容的任何单个片段的最大比特率;平均带宽是呈现的内容的比特率,其是随时间的平均量。通常,在内容的整个时间上计算或确定平均带宽。例如,如果内容是一小时电视节目,则在一小时时间段内确定平均带宽。在一个实施方案中,可通过将传输内容的总量(例如,在内容被正常呈现的整个时间段内的比特、字节、千字节等)除以该时间段来计算平均带宽。平均带宽可表示为每秒的比特数,并且可通过对任何计算值进行四舍五入来近似。峰值带宽和平均带宽值基于在正常(“1x”)回放速度下呈现(例如,显示)内容时流中的数据,并且这些值独立于服务器(将内容传输到客户端)和接收客户端之间的下载连接的速度。应当理解,平均带宽或比特率通常小于峰值带宽或比特率。例如,许多视频具有不随时间变化的场景,并且那些场景倾向于具有较低的比特率,因此具有此类场景的视频的平均比特率或带宽将低于其中物体、图像等正在屏幕上快速移动或颜色正在快速改变等的动作场景期间可发生的视频的峰值带宽。下面提供包括主播放列表中的每个变体的峰值带宽和平均带宽值的样本主播放列表的示例。
#EXTM3U
############################
#Alt Audio Language Groups
############################
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-hi",LANGUAGE="eng",
NAME="English",AUTOSELECT=YES,DEFAULT=YES,
URI="adventureland_audio_english_128kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-hi",LANGUAGE="fre",
NAME="French",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_french_128kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-hi",LANGUAGE="por",
NAME="Portuguese",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_portuguese_128kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-hi",LANGUAGE="tha",
NAME="Thai",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_thai_128kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-lo",LANGUAGE="eng",
NAME="English",AUTOSELECT=YES,DEFAULT=YES,
URI="adventureland_audio_english_64kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-lo",LANGUAGE="fre",
NAME="French",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_french_64kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-lo",LANGUAGE="por",
NAME="Portuguese",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_portuguese_64kbs_AAC/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac-lo",LANGUAGE="tha",
NAME="Thai",AUTOSELECT=YES,DEFAULT=NO,
URI="adventureland_audio_thai_64kbs_AAC/prog_index.m3u8"
##############################
#Closed caption video Feeds
##############################
#EXT-X-STREAM-INF:BANDWIDTH=4622958,AVERAGE-
BANDWIDTH=4000000,CODECS="mp4a.40.2,avc1.4d401e",AUDIO="aac-hi"
adventureland_video_CC_4_2.9Mbs/prog_index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=123578,AVERAGE-
BANDWIDTH=100000,CODECS="mp4a.40.2,avc1.42e00a",AUDIO="aac-lo"
adventureland_video_CC_1_60kbs/prog_index.m3u8
#################
#FF/FR i-frames
#################
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=53527,AVERAGE-
BANDWIDTH=45000,CODECS="avc1.42e00a",URI="adventureland_video_CC_1_60kbs/iframe.m3u8"
图2A示出了由提供主播放列表的服务器系统执行的方法的示例,该主播放列表包括主播放列表中的每个对应变体的峰值带宽值和平均带宽值两者。在操作201中,一个或多个服务器系统创建或接收特定媒体呈现(诸如电视节目、电影、仅音频节目等)的多个变体,并且一个或多个服务器系统为变体中的每个变体确定峰值带宽值和平均带宽值或者比特率值。然后,在操作203中,一个或多个服务器系统可创建包括每个变体的URI的主播放列表,其中每个URI将被客户端设备用于检索对应变体的特定媒体播放列表。在一个实施方案中,主播放列表包括用于每个变体的指定用于对应变体的峰值带宽值和平均带宽值的数据。在操作205中,一个或多个服务器设备可存储主播放列表和也可在该时间点创建的每个变体的媒体播放列表。在操作207中,一个或多个服务器设备可基于来自一个或多个客户端设备的请求来传输主播放列表和一个或多个媒体播放列表。在一个实施方案中,可采用分布式架构,其中内容创建者创建变体并创建主播放列表以及可能地创建媒体播放列表,并且其他服务器系统分发或传送播放列表。下面描述的图4提供了分布式架构的示例。在另一实施方案中,相同的服务器系统可执行所有功能包括内容诸如创建变体和创建主播放列表以及媒体播放列表,并且还基于来自客户端设备的请求而执行主播放列表和媒体播放列表的传输。
图2B示出了可由客户端设备执行的实施方案,其利用主播放列表中的平均带宽,诸如如结合图2A所描述而创建的主播放列表。在操作221中,客户端设备接收主播放列表,其包括内容的变体(诸如内容的所有变体)的平均带宽值和峰值带宽值。通常,客户端设备可在媒体呈现正被呈现时存储主播放列表,使得在任何一个时间点处客户端设备可根据网络拥塞或用户偏好使用主播放列表中的数据来决定何时在变体之间切换等。通过在呈现期间存储主播放列表,客户端设备可获得主播放列表中的所有可能变体的峰值带宽值和平均带宽值。因此,客户端设备可在从主播放列表获得的变体的呈现期间的任何时间点从主播放列表检索所存储的峰值带宽值和平均带宽值,以便有助于图2B中所示的方法。在操作223中,客户端设备可从主播放列表选择媒体播放列表(例如,第一媒体播放列表)并且然后使用第一媒体播放列表中的URI开始下载视频或音频或视频和音频两者的片段。在操作227中,客户端设备可确定其是否可向上切换比特率。通常,当观察到的下载比特率(针对接收和显示的当前变体)超过(下一个)更高比特率变体的平均比特率时,客户端设备可向上切换(至更高比特率变体,诸如下一个更高比特率变体)。操作227可包括观察的下载比特率与新流的平均比特率(例如,来自诸如第二媒体播放列表的下一个更高比特率变体)的比较。如果在操作227中,客户端设备确定观察的比特率(针对正在显示的当前变体)大于(下一个)更高比特率变体的平均比特率,则客户端设备进行到操作229(以检查一个或多个缓冲区);另一方面,如果客户端设备确定观察的比特率不大于平均比特率,则客户端设备返回到操作225(并且因此客户端设备使用当前媒体播放列表继续下载视频片段而不是切换到新的媒体播放列表)。
操作229示出了可如何执行缓冲水平的检查的示例。具体地,在操作229中,可检查当前存储已经使用来自第一媒体播放列表的URI检索的媒体的缓冲器来确定是否有足够的数据存储在缓冲器中以允许足够的时间下载新流(诸如来自主播放列表的另一个变体)并且将其准备好用于呈现而不会导致呈现的中断。如果缓冲器中没有足够的数据,则将没有足够的时间来检索新的媒体播放列表(例如“第二”媒体播放列表)并从该媒体播放列表下载片段。在一个实施方案中,以下公式可用作缓冲器的检查以确定缓冲器是否包含足够量的数据以允许切换发生。
(Observed Download bitrate)x(No.seconds in buffer)>
(No.of Segments)x(Target duration)x(Peak Bandwidth)
在该公式的示例中,客户端设备将观察的下载比特率与存储正被呈现的当前变体的缓冲器中的秒数的乘积与三个值的乘积进行比较:(1)片段的预先确定的数量,诸如新流中的1个或者2个片段;(2)新流中的片段的目标持续时间;以及(3)用于新流的峰值带宽值。观察的下载比特率是在下载由正被呈现的当前变体(来自第一媒体播放列表)中的URI指定的内容时的实际测量的比特率。新流中的片段的目标持续时间可从用于新流的媒体播放列表获得,并且新流的峰值带宽值由变体播放列表提供。如果观察到的下载比特率和缓冲器中的秒数的乘积超过三个值的乘积,则缓冲器具有足够的数据以允许从由第一媒体播放列表指定的第一变体切换到新的(例如,第二)变体。应当理解,其他实施方案可使用另选的公式或机制来确定存储当前呈现的媒体变体的缓冲器是否具有足够的数据来允许变体之间的无缝切换。
如果操作229确定缓冲水平足够(因为基于计算,缓冲器具有足够的数据),则处理前进到操作231(并且然后操作223),其涉及切换到不同的播放列表诸如主播放列表中的下一个更高比特率变体并且该切换涉及在操作223中选择不同的播放列表并且处理如图2B的流程图所示继续。换句话说,客户端设备将使用不同的播放列表来检索在不同播放列表中指定的片段,并且还可以重复操作227,229和231;以这种方式,客户端设备可适应网络连接速度的变化。如果另一方面客户端设备在操作229中确定缓冲水平不足,则处理返回到操作225,以使用当前选择的媒体播放列表来继续下载视频片段(并且不切换到新的媒体播放列表)。使用不同媒体播放列表在变体之间切换的过程可使用本领域中已知的技术,诸如结合公开的美国专利申请2012/0311094中的图9A-9D所描述的方法。
图3示出了对缓冲器中的数据量的检查(在操作229中)的示例。特别地,触发点305由新流的峰值带宽值以及新流中的片段的目标持续时间和新流的至少一个或多个片段确定。上面所示的公式使用新流的峰值带宽值和新流中的片段的目标持续时间以及新流的至少一个或两个片段以便确定由触发点305表示的要下载的比特数,并且这与用于现有流的缓冲器的大小(如图3中的缓冲器301所示)相比较。缓冲器301被示为在当前播放头或回放位置303开始。
本文所述的方法和系统可在分布式架构中实现,其中多个服务器系统或设备向可在地理上分散在整个世界上的多个客户端设备提供服务器服务。图4示出了包括至少两个内容创建服务器401和403的分布式架构400的示例。在一个实施方案中,内容创建服务器401可创建用于一个节目或演示的内容,而其他内容创建服务器诸如内容创建服务器403可创建用于其他节目的内容并且使用与内容创建服务器401不同(或者一些相同)的传输服务器。这些内容创建服务器可创建主播放列表和媒体播放列表,以及创建由媒体播放列表引用的媒体(内容)片段。内容创建服务器可位于创建内容的位置附近(例如,诸如棒球比赛的体育项目),并且每个内容创建服务器可将“内容”(诸如主播放列表和媒体播放列表以及实际内容)传输到一个或多个传输服务器,诸如传输服务器405和407。在一个实施方案中,内容创建服务器可执行图2A所示的操作(例如操作201,203和205)的一部分,而传输服务器执行图2A中的操作的其余部分。传输服务器可在地理上分散,使得每个客户端设备可由地理上靠近客户端设备的传输服务器提供服务。在图4所示的示例中,内容创建服务器401创建内容和播放列表,诸如一个或多个主播放列表和多个媒体播放列表,并且将内容(例如,媒体播放列表引用的媒体片段)和播放列表传输到一个或多个传输服务器405,传输服务器405继而基于来自那些客户端设备的请求(诸如HTTP请求)将播放列表和内容传输到一个或多个客户端设备,诸如客户端设备409和411。类似地,内容创建服务器403可创建内容和播放列表并将内容和播放列表传输到一个或多个传输服务器407,传输服务器407继而基于来自那些客户端设备的请求将播放列表和内容传输到一个或多个客户端设备(例如客户端设备412)。在一个实施方案中,分布式架构400中的每个部件之间的通信可为通过本领域已知的TCP/IP协议上的HTTP,但是也可在一个或多个传输介质上使用其他协议,包括有线连接、无线连接或有线连接和无线连接的组合。
图5是可在本文所述的一个或多个实施方案中用作服务器设备或客户端设备的电子系统的一个实施方案的框图。图5中所示的电子系统旨在表示一系列电子系统(有线的或无线的),包括例如台式计算机系统、膝上型计算机系统、蜂窝电话、包括支持蜂窝的PDA的个人数字助理(PDA)、机顶盒、娱乐系统或其他消费电子设备。另选的电子系统可包括更多、更少和/或不同的部件。图5的电子系统能够被用来提供图4中所示的客户端设备和或服务器设备中的任一者。
电子系统800包括总线805或用于传递信息的其他通信设备以及耦接到总线805的可处理信息的处理器810。尽管电子系统800被示为具有单个处理器,但是电子系统800可包括多个处理器和/或协处理器,它们一起或单独提供处理系统。电子系统800还可包括耦接到总线805的动态随机存储器(DRAM)或其他动态存储设备820(称为主存储器),并且可存储可由处理器810执行的信息和指令。在由处理器810执行指令期间,主存储器820还能够用来存储临时变量或其他中间信息。
电子系统800还可包括耦接到总线805的只读存储器(ROM)和/或其他静态存储设备830,其可存储静态(例如,非易失性)信息和用于处理器810的指令。数据存储设备840可为非易失性存储器设备,并且可耦接到总线805以存储信息和指令。诸如闪存或磁盘或光盘的数据存储设备840和相应的驱动器可通过总线805耦接到电子系统800,或者可为通过网络接口耦接到系统800的远程存储设备。应当理解,存储器820、ROM830和存储设备840中的任何一个或多个可被认为是可存储可执行计算机程序指令的机器可读非暂态存储介质,该可执行计算机程序指令可由处理器(多个)810执行以执行本文所述的实施方案或方法中的任一者。例如,存储器820可为存储此类计算机程序指令的易失性DRAM存储器,因此该存储器820是此类机器可读非暂态存储介质的形式。
电子系统800还可经由总线805耦接到诸如阴极射线管(CRT)或液晶显示器(LCD)或其他显示设备的显示设备850以向用户显示信息。电子系统800还可包括字母数字输入设备860,字母数字输入设备860包括字母数字和其他键,其可耦接到总线805以向处理器810传送信息和命令选择。另一类型的用户输入设备是光标控件870,诸如触摸板、鼠标、轨迹球或光标方向键,以将方向信息和命令选择传送到处理器810并控制显示器850上的光标移动。
电子系统800还可包括一个或多个网络接口(多个)880以提供对网络诸如局域网的访问。一个或多个网络接口880可包括例如具有天线885的无线网络接口,其可表示一个或多个天线。电子系统800可包括多个无线网络接口,诸如WiFi、蓝牙和蜂窝电话接口的组合。一个或多个网络接口880还可包括例如有线网络接口,以经由网络电缆887与远程设备通信,网络电缆887可为例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
在一个实施方案中,一个或多个网络接口880可例如通过符合IEEE802.11b和/或IEEE 802.11g标准来提供对局域网的访问,和/或无线网络接口可例如通过符合蓝牙标准来提供对个域网的访问。也可支持其他无线网络接口和/或协议。
除了经由无线LAN标准的通信之外或代替经由无线LAN标准的通信,一个或多个网络接口880可使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议、其他蜂窝电话协议和/或任何其他类型的无线通信协议。
在前述说明书中,已经描述了具体示例性实施方案。显而易见的是,可在不脱离以下权利要求所示的更广泛的实质和范围的情况下对实施方案作出各种修改。因此,说明书和附图应被认为是出于例证目的而非限制目的。

Claims (17)

1.一种用于处理一个或多个播放列表中指定的媒体的方法,所述方法包括:
接收表示视频媒体的多个变体的数据并且确定用于所述视频媒体的每个变体的峰值带宽和平均带宽,每个变体示出相同的视频媒体但是使用不同的编码;
创建包括用于每个变体的通用资源标识符(URI)的主播放列表,每个URI用于检索所述变体中的一个变体的媒体播放列表,并且所述主播放列表包括指定用于所述变体中的每个变体的所述视频媒体的所述峰值带宽和所述平均带宽的数据;
存储所述主播放列表;以及
基于来自一个或多个客户端设备的请求来传输所述主播放列表。
2.根据权利要求1所述的方法,还包括:
响应于来自一个或多个客户端设备的请求,传输所述主播放列表中的所述URI中的一个URI中引用的媒体播放列表。
3.根据权利要求1所述的方法,其中所述峰值带宽由小于所述视频媒体的整个呈现时间的时间段上的视频媒体的流中的数据量定义,并且所述平均带宽由所述整个呈现时间上传输的数据的速率的平均值定义,并且其中针对所述视频媒体的每个变体,所述峰值带宽大于所述平均带宽。
4.一种存储可执行程序指令的非暂态机器可读存储介质,所述可执行程序指令在由数据处理系统执行时使得所述系统执行用于处理一个或多个播放列表中指定的媒体的方法,所述方法包括:
接收表示视频媒体的多个变体的数据并且确定用于所述视频媒体的每个变体的峰值带宽和平均带宽,每个变体示出相同的视频媒体但是使用不同的编码;
创建包括用于每个变体的通用资源标识符(URI)的主播放列表,每个URI用于检索所述变体中的一个变体的媒体播放列表,并且所述主播放列表包括指定用于所述变体中的每个变体的所述视频媒体的所述峰值带宽和所述平均带宽的数据;
存储所述主播放列表;以及
基于来自一个或多个客户端设备的请求来传输所述主播放列表。
5.根据权利要求4所述的介质,其中所述方法还包括:
响应于来自一个或多个客户端设备的请求,传输所述主播放列表中的所述URI中的一个URI中引用的媒体播放列表。
6.根据权利要求4所述的介质,其中所述峰值带宽由小于所述视频媒体的整个呈现时间的时间段上的视频媒体的流中的数据量定义,并且所述平均带宽由所述整个呈现时间上传输的数据的速率的平均值定义,并且其中针对所述视频媒体的每个变体,所述峰值带宽大于所述平均带宽。
7.一种用于处理媒体的方法,包括:
接收包括用于视频媒体的多个变体中的每个变体的通用资源标识符(URI)的主播放列表,每个变体示出相同的视频媒体但是使用不同的编码,每个URI用于检索所述变体中的一个变体的媒体播放列表,并且所述主播放列表指定用于每个变体的峰值带宽和平均带宽;
选择并接收第一媒体播放列表,所述第一媒体播放列表包括用于所述多个变体中的第一变体的片段的URI;
确定所述第一变体的所述片段的下载期间的观察的比特率;
在显示所述媒体之前,将所述第一变体的媒体存储在缓冲器中;
确定所述缓冲器中所存储的媒体的数据量是否超过估计值;
将所述多个变体中的第二变体的平均带宽与所观察的比特率进行比较;以及
响应于确定所述缓冲器中的数据量超过所述估计值并且响应于确定所观察的比特率超过所述平均带宽,切换到所述第二变体。
8.根据权利要求7所述的方法,其中所述第二变体提供所述视频媒体的更高质量的编码,并且其中所述估计值与所述第二变体的待下载的数据的估计量相关,并且从所述第二变体的所述峰值带宽和所述第二变体的一个或多个片段的目标持续时间的组合数学地导出。
9.根据权利要求8所述的方法,还包括:
当网络带宽显著下降时,切换回到所述第一变体。
10.根据权利要求7所述的方法,其中所述峰值带宽由小于所述视频媒体的整个呈现时间的时间段上的视频媒体的流中的数据量定义,并且所述平均带宽由所述整个呈现时间上传输的数据的速率的平均值定义,并且其中针对所述视频媒体的每个变体,所述峰值带宽大于所述平均带宽。
11.一种存储可执行程序指令的非暂态机器可读存储介质,所述可执行程序指令在由数据处理系统执行时使得所述系统执行用于处理媒体的方法,所述方法包括:
接收包括用于视频媒体的多个变体中的每个变体的通用资源标识符(URI)的主播放列表,每个变体示出相同的视频媒体但是使用不同的编码,每个URI用于检索所述变体中的一个变体的媒体播放列表,并且所述主播放列表指定用于每个变体的峰值带宽和平均带宽;
选择并接收第一媒体播放列表,所述第一媒体播放列表包括用于所述多个变体中的第一变体的片段的URI;
确定所述第一变体的所述片段的下载期间的观察的比特率;
在显示所述媒体之前,将所述第一变体的媒体存储在缓冲器中;
确定所述缓冲器中所存储的媒体的数据量是否超过估计值;
将所述第二变体的平均带宽与所观察的比特率进行比较;以及
响应于确定所述缓冲器中的数据量超过所述估计值并且响应于确定所观察的比特率超过所述平均带宽,切换到所述第二变体。
12.根据权利要求11所述的介质,其中所述第二变体提供所述视频媒体的更高质量的编码,并且其中所述估计值与第二变体的待下载的数据的估计量相关,并且从所述第二变体的所述峰值带宽和所述第二变体的一个或多个片段的目标持续时间的组合数学地导出。
13.根据权利要求11所述的介质,还包括:
当网络带宽显著下降时,切换回到所述第一变体。
14.根据权利要求11所述的介质,其中所述峰值带宽由小于所述视频媒体的整个呈现时间的时间段上的视频媒体的流中的数据量定义,并且所述平均带宽由所述整个呈现时间上传输的数据的速率的平均值定义,并且其中针对所述视频媒体的每个变体,所述峰值带宽大于所述平均带宽。
15.一种存储可执行程序指令的非暂态机器可读存储介质,所述可执行程序指令在由数据处理系统执行时使得所述数据处理系统执行一种方法,所述方法包括:
存储包括用于每个变体的通用资源标识符(URI)的主播放列表,每个URI用于检索所述变体中的一个变体的媒体播放列表,并且所述主播放列表包括指定用于所述变体中的每个变体的视频媒体的所述峰值带宽和所述平均带宽的数据;
响应于来自客户端设备的请求,将所述主播放列表传输到所述客户端设备。
16.根据权利要求15所述的介质,所述方法还包括:
响应于来自所述客户端设备的HTTP请求,传输所述主播放列表中的所述URI中的一个URI中引用的媒体播放列表;
响应于来自所述客户端设备的HTTP请求,传输所述媒体播放列表中引用的一个或多个媒体片段。
17.根据权利要求16所述的介质,其中所述峰值带宽由小于所述视频媒体的整个呈现时间的时间段上的视频媒体的流中的数据量定义,并且所述平均带宽由所述整个呈现时间上传输的数据的速率的平均值定义,并且其中针对所述视频媒体的每个变体,所述峰值带宽大于所述平均带宽。
CN201580045968.9A 2014-09-29 2015-08-31 在媒体流之间切换 Active CN106797488B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/500,669 2014-09-29
US14/500,669 US10135748B2 (en) 2014-09-29 2014-09-29 Switching between media streams
PCT/US2015/047768 WO2016053540A1 (en) 2014-09-29 2015-08-31 Switching between media streams

Publications (2)

Publication Number Publication Date
CN106797488A true CN106797488A (zh) 2017-05-31
CN106797488B CN106797488B (zh) 2020-06-05

Family

ID=54140672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580045968.9A Active CN106797488B (zh) 2014-09-29 2015-08-31 在媒体流之间切换

Country Status (3)

Country Link
US (1) US10135748B2 (zh)
CN (1) CN106797488B (zh)
WO (1) WO2016053540A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979169A (zh) * 2022-05-27 2022-08-30 山东派盟网络科技有限公司 一种网络资源推送方法、装置、存储介质及电子设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11057450B2 (en) 2016-06-07 2021-07-06 Rgb Spectrum Systems, methods, and devices for seamless switching between multiple source streams
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations
US10742699B1 (en) * 2017-09-29 2020-08-11 Twitch Interactive, Inc. Requesting transmission of future encoded segments
US11089346B2 (en) 2018-07-24 2021-08-10 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728305B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728588B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728630B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
CN110177291B (zh) * 2019-06-28 2021-07-02 广州酷狗计算机科技有限公司 信息显示方法、装置、终端、服务器及存储介质
CN110446064A (zh) * 2019-07-31 2019-11-12 广州华多网络科技有限公司 直播互动方法、服务器、直播互动系统以及存储介质
US11368505B2 (en) * 2020-09-15 2022-06-21 Disney Enterprises, Inc. Dynamic variant list modification to achieve bitrate reduction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100189183A1 (en) * 2009-01-29 2010-07-29 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US20110099594A1 (en) * 2009-10-28 2011-04-28 Qualcomm Incorporated Streaming encoded video data
US20110246622A1 (en) * 2010-04-01 2011-10-06 Roger Pantos Real-Time or Near Real-Time Streaming
US20130058393A1 (en) * 2011-08-30 2013-03-07 Divx, Llc Systems and Methods for Encoding and Streaming Video Encoded Using a Plurality of Maximum Bitrate Levels

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169458A1 (en) 2008-12-31 2010-07-01 David Biderman Real-Time or Near Real-Time Streaming
GB201105502D0 (en) * 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8589583B2 (en) 2010-09-08 2013-11-19 Hulu, Inc. Method and apparatus for adaptive bit rate switching
GB2483125B (en) 2011-02-25 2012-09-26 British Sky Broadcasting Ltd Media system
US9271021B2 (en) 2011-03-31 2016-02-23 Verizon Patent And Licensing Inc. Delivery of streaming media content
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
WO2013043918A1 (en) * 2011-09-21 2013-03-28 General Instrument Corporation Adaptive streaming to multicast and constrained-fidelity constant bit rate encoding
US8910229B2 (en) 2012-07-05 2014-12-09 Motorola Mobility Llc Methods and devices for efficient adaptive bitrate streaming
US9332292B2 (en) 2012-08-15 2016-05-03 Verizon Patent And Licensing Inc. Media playlists with selective media expiration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100189183A1 (en) * 2009-01-29 2010-07-29 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US20110099594A1 (en) * 2009-10-28 2011-04-28 Qualcomm Incorporated Streaming encoded video data
US20110246622A1 (en) * 2010-04-01 2011-10-06 Roger Pantos Real-Time or Near Real-Time Streaming
US20130058393A1 (en) * 2011-08-30 2013-03-07 Divx, Llc Systems and Methods for Encoding and Streaming Video Encoded Using a Plurality of Maximum Bitrate Levels

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KONSTANTIN MILLER等: "Adaptation Algorithm for Adaptive Streaming over HTTP", 《PROCEEDINGS OF 2012 IEEE 19TH INTERNATIONAL PACKET VIDEO WORKSHOP》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979169A (zh) * 2022-05-27 2022-08-30 山东派盟网络科技有限公司 一种网络资源推送方法、装置、存储介质及电子设备
CN114979169B (zh) * 2022-05-27 2024-03-29 山东派盟网络科技有限公司 一种网络资源推送方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US10135748B2 (en) 2018-11-20
WO2016053540A1 (en) 2016-04-07
CN106797488B (zh) 2020-06-05
US20160094468A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
CN106797488A (zh) 在媒体流之间切换
EP3120569B1 (en) Manifest re-assembler for a streaming video channel
US11392285B2 (en) Method and a system for performing scrubbing in a video stream
US20170171274A1 (en) Method and electronic device for synchronously playing multiple-cameras video
US8886765B2 (en) System and method for predicitive trick play using adaptive video streaming
CN104077296A (zh) 处理信息的方法和服务器
CN108810567B (zh) 一种音频与视频视角匹配的方法、客户端和服务器
JP2019511848A (ja) メディアアセットを効率的にダウンロードするための方法およびシステム
US20170171579A1 (en) Method and Device for Transcoding Live Video
US10237195B1 (en) IP video playback
US20160118084A1 (en) Apparatus and method for calculating and virtually displaying football statistics
US20160373551A1 (en) Selective Download of Alternate Media Files
US9253281B2 (en) Cells and/or vantage points in streaming media
US20170134457A1 (en) Broadcast-linked service based on cloud streaming, broadcast-linked service client apparatus, trigger content providing server
EP3785425B1 (en) Crowdsourced prediction of cdn performance for zero buffer delivery of content
CN110337043B (zh) 电视的视频播放方法、装置及存储介质
JP6063952B2 (ja) マルチメディア資産を表示する方法、関連するシステム、メディアクライアント、および関連するメディアサーバ
US20150095964A1 (en) Bumper video carousel for digital video delivery
US11350160B1 (en) Management of a client device buffer
EP4099701A2 (en) Distributed adaptive bitrate (abr) asset delivery
US20240098333A1 (en) Video Playback based on an HTML iframe and a Headless Browser
US9047914B1 (en) Content navigation
CN105100910A (zh) 终端设备服务内容的浏览方法及终端设备

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