CN102123298A - 用于流传送媒体的快速启动的方法和系统 - Google Patents

用于流传送媒体的快速启动的方法和系统 Download PDF

Info

Publication number
CN102123298A
CN102123298A CN2010105739219A CN201010573921A CN102123298A CN 102123298 A CN102123298 A CN 102123298A CN 2010105739219 A CN2010105739219 A CN 2010105739219A CN 201010573921 A CN201010573921 A CN 201010573921A CN 102123298 A CN102123298 A CN 102123298A
Authority
CN
China
Prior art keywords
media
client devices
stream
request
predicted
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
CN2010105739219A
Other languages
English (en)
Other versions
CN102123298B (zh
Inventor
A·E·克莱蒙茨
E·P·奥利维拉
S·巴特
T·L·怀恩
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102123298A publication Critical patent/CN102123298A/zh
Application granted granted Critical
Publication of CN102123298B publication Critical patent/CN102123298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/1066Session management
    • H04L65/1101Session protocols
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/80Responding to QoS
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • 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/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/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
    • H04N21/64322IP
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

一种用于流传送媒体的快速启动包括用于预测性启动的技术和用于在流传送期间切换传送信道的技术中的一种或两者。预测性启动允许媒体内容源预测哪一(些)媒体流是做出请求的客户机设备所期望的,并开始将那些所预测的媒体流流传送到所述客户机设备。传送信道切换技术允许媒体内容源使用一种传送信道(例如,使用传输控制协议(TCP)开始流传送媒体流,然后检查另一种传送信道(例如,使用用户数据报协议(UDP))是否起作用,并且如果起作用则切换到该另一种传送信道。

Description

用于流传送媒体的快速启动的方法和系统
本申请是申请日为2005年11年7日申请号为第200480012358.0号发明名称为“用于流传送媒体的快速启动的方法和系统”的中国专利申请的分案申请。
技术领域
本发明涉及流传送媒体和数据传输,尤其涉及用于流传送媒体的快速启动。
发明背景
诸如音频、视频和/或文本的流传送等内容流传送正变得越来越流行。术语“流传送”通常用于指示表示媒体的数据通过网络在按需的基础上提供给客户机计算机而非在回放之前预传送其整体。由此,客户机计算机在从网络服务器上接收到时就呈现流内容,而非等待传送整个“文件”。
流多媒体内容的广泛可用性使得先前不能通过因特网或其它计算机网络获得的各种信息内容变得可能。实况内容是这类内容的一个重要示例。使用流多媒体,可在事件发展时通过因特网广播值得注意的事件的音频、视频或音频/视觉覆盖。类似地,电视台和广播电台可通过因特网发送其实况内容。
然而,当前的流传送技术具有缺陷。一个这样的缺陷是在请求流媒体的回放的时刻和流媒体开始回放的时刻之间通常存在某种程度的长延迟。通常在发生媒体内容的回放的客户机设备和媒体内容的源之间要求各种通信。从客户机设备的用户的观点来看,这一延迟降低了客户机设备的用户友好度以及流传送过程的用户友好度。由此,减小用户请求流媒体的回放的时刻和流媒体开始回放的时刻之间的延迟将是有益的。
发明概述
本发明描述了用于流传送媒体的快速启动。用于流传送媒体的快速启动包括用于预测性启动的技术和用于在流传送期间切换传送信道的技术中的一种或两者。
依照某些方面,用于预测性启动的技术包括客户机设备向服务器设备发送预测性播放请求。响应于该预测性播放请求,服务器设备预测客户机设备所需的一个或多个媒体流,并将所预测的一个或多个媒体流流传送到客户机设备。客户机设备可选择与所预测的一个或多个媒体流不同的至少一个媒体流用于流传送到客户机设备。如果选择了至少一个这样的媒体流,则对所选择的至少一个媒体流的指示被发送到服务器设备,服务器设备将所选择的至少一个媒体流流传送到客户机设备。
依照某些方面,用于在流传送期间切换传送信道的技术包括客户机设备向服务器设备发送要将一个或多个媒体流流传送到客户机设备的请求。服务器设备接收该请求,并开始使用TCP(传输控制协议)向客户机设备流传送一个或多个媒体流。在使用TCP从服务器设备向客户机设备流传送一个或多个媒体流的同时,执行探测以确定数据是否可使用UDP(用户数据报协议)从服务器设备流传送到客户机设备。如果探测指示数据可使用UDP从服务器设备流传送到客户机设备,则一个或多个媒体流的流传送从使用TCP切换到使用UDP。然而,如果探测指示数据不能使用UDP从服务器设备流传送到客户机设备,则一个或多个媒体流的流传送继续使用TCP。
附图简述
贯穿整篇文档,相同的标号引用相同的组件和/或特征。
图1示出了支持此处所描述的用于流传送媒体的快速启动的示例网络环境。
图2示出了可使用此处所描述的用于流传送媒体的快速启动来流传送媒体内容的示例客户机和服务器设备。
图3是更详细地示出示例客户机和服务器设备以及预测性启动技术的框图。
图4是示出示例预测性启动过程的流程图。
图5是更详细地示出示例客户机和服务器设备以及传送信道切换过程的框图。
图6是示出示例传送信道切换过程的流程图。
图7是示出包括预测性启动和传送信道切换的示例快速启动过程的流程图。
图8示出了可用于实现此处所描述的技术的通用计算机环境。
较佳实施例的详细描述
本发明描述了用于流传送媒体的快速启动。该快速启动包括用于预测性启动的技术和用于在流传送期间切换传送信道的技术中的一种或两者。预测性启动允许媒体内容源预测做出请求的客户机期望哪一(些)媒体流,并开始将所预测的媒体流流传送到客户机设备。传送信道切换技术允许媒体内容源开始使用一种传送信道(例如,使用传输控制协议(TCP))流传送媒体流,然后检查另一种传送信道(例如,使用用户数据报协议(UDP))是否起作用,并且如果该信道起作用则切换到另一信道。
图1示出了支持此处所描述的用于流传送媒体的快速启动的示例网络环境100。在环境100中,多个(a)客户机计算设备102(1)、102(2)、……、102(a)通过网络106被耦合到多个(b)服务器计算设备104(1)、104(2)、……、104(b)。网络106用于表示采用各种常规网络协议(包括公共和/或专有协议)的各种常规网络拓扑结构和类型(包括有线和/或无线网络)中的任一种。网络106可包括例如因特网以及可能一个或多个局域网(LAN)的至少一部分。
计算设备102和104的每一个可以是各种常规计算设备中的任一种,包括台式PC、工作站、大型计算机、因特网设备、游戏控制台、手持式PC、蜂窝电话、个人数字助理(PDA)等等。设备102和104的一个或多个可以是同一类型的设备,或者可以是不同类型的设备。
服务器设备104可使得各种数据中的任一种可用于向客户机102流传送。术语“流传送”用于指示表示媒体的数据是通过网络提供给客户机设备的,且该内容的回放可在内容被全部传送之前开始(例如,在按需的基础上提供数据而非在回放之前预传送全部数据)。数据可以是公共可用的,或者可以是受限制的(例如,仅限由某些用户、仅当支付了适当的费用时可用等等)。数据可以是各种一种或多种类型的内容中的任一种,诸如音频、视频、文本、动画等等。另外,数据可以被预编码或者可以是“实况的”(例如,执行作为音乐会捕捉的音乐会的数字表示,并使其可用于在捕捉之后不久进行流传送)。
客户机设备102可从将流媒体内容储存为文件的服务器104处接收流媒体,或者可从接收来自某一其它来源的流媒体的服务器104处接收流媒体。例如,服务器104可从将流媒体内容储存为文件的另一服务器处接收流媒体,或可从某一其它来源(例如,对“实况”事件进行编码的编码器)接收流媒体。
如此处所使用的,流传送媒体指将一个或多个媒体流从一个设备流传送到另一个(例如,从服务器设备104流传送到客户机设备102)。媒体流可包括各种类型的内容中的任一种,诸如音频、视频、文本等中的一个或多个。
图2示出了可使用此处所描述的用于流传送媒体的快速启动来流传送媒体内容的示例客户机和服务器设备。在客户机设备102和服务器设备104处都遵循多个不同的协议,以将媒体内容从服务器设备104流传送到客户机设备102。这些不同的协议可负责流传送过程的不同方面。尽管未在图2中示出,一个或多个其它设备(例如,防火墙、路由器、网关、网桥等)可位于客户机设备102和服务器设备104之间。
在图2的示例中,使用应用程序级协议150、传输协议152和一个或多个传送信道协议154作为流传送过程的一部分。也可采用图2中未示出的其它协议(例如,可以在应用程序级协议150和传输协议152之间有其它协议)。应用程序级协议150是应用程序级的协议,用于控制具有实时属性的数据的传送。应用程序级协议150提供了可任选地可扩展的框架,以启用诸如流音频和视频内容等实时数据的受控的按需传送。应用程序级协议150是用于启动和指导从媒体服务器传送流多媒体的控制协议。应用程序级协议150的示例包括如1998年4月网络工作小组因特网标准草案(RFC)2326中所描述的实时流协议(RTSP),以及1996年5月网络工作小组因特网标准草案(RFC)1945或1997年1月网络工作小组因特网标准草案(RFC)2068中所描述的超文本传输协议(HTTP)。
应用程序级协议150使用传输协议152用于传送诸如流音频和视频等实时数据。传输协议152为媒体流定义了分组格式。传输协议152提供了适用于通过组播或单播网络服务发送诸如音频、视频或模拟数据等实时数据的应用程序的端对端网络传输功能。传输协议152的示例包括2003年7月网络工作小组因特网标准草案(RFC)3550中所描述的实时传输协议(RTP)和实时控制协议(RTCP)。RTP未着眼于资源保留,并且不保证实时服务的服务质量。数据传输通过控制协议(RTCP)来增加,以允许以可伸缩至大型组播网络的方式监视数据传送,并提供某一控制和标识功能。
传输协议152使用传送信道协议154用于传输连接。传送信道协议154包括用于将数据分组从服务器设备104传送到客户机设备102的一个或多个信道。每一信道通常用于发送单媒体流的数据分组,尽管在替换实施例中,可使用单个信道来发送多个媒体流的数据分组。传送信道协议154的示例包括传输控制协议(TCP)分组和用户数据报协议(UDP)分组。TCP确保数据分组的传送,而UDP不确保数据分组的传送。通常,使用TCP传送数据分组比使用UDP传送数据分组更可靠,但也更耗时。
图3是更详细地示出示例客户机和服务器设备以及预测性启动技术的框图。在某些实施例中,图2的协议150、152和154包括在图3的客户机和服务器设备中,但未示出。此外,尽管未在图3中示出,一个或多个其它设备(例如,防火墙、路由器、网关、网桥等)可位于客户机设备102和服务器设备104之间。
客户机设备102通过向服务器设备104发送预测性播放请求来启动预测性启动过程。预测性播放请求182可包括协助服务器设备104预测客户机设备102期望哪些媒体流的各种信息。该信息可包括,例如,关于客户机设备102的信息、关于客户机设备102的用户的信息、和/或关于服务器设备104和客户机设备102之间的连接的信息。服务器设备104接收该预测性播放请求,并预测客户机设备102期望哪一(些)媒体流。该预测通常至少部分地基于预测性播放请求中所包括的信息。
服务器设备104然后开始将它所预测的客户机设备102期望的媒体流流传送(184)到客户机设备102。由此,图3所示的示例中,从服务器设备104向客户机设备102的媒体内容的流传送开始响应于在服务器设备104处接收到的来自客户机设备102的第一个请求。作为流传送所预测的流184的一部分,服务器设备104包括对客户机设备102可用的各种媒体流的描述。这各种媒体流通常包括由服务器设备104预测的媒体流以及一个或多个其它流。
客户机设备102接收来自服务器104的流媒体,并处理该流媒体。该过程可包括,例如,在客户机设备102处缓冲该流媒体用于向用户演示。另外,客户机设备102检查从服务器设备104接收到的对客户机设备102可用的各种媒体流的描述,并确定当前流传送到客户机设备102的预测的流是否的确是客户机设备102所期望的流。如果它们是期望的流,则客户机设备102无需采取其它行动。然而,如果它们不是所期望的流,则客户机设备102向服务器设备104发送流选择186。流选择186标识了客户机设备102所期望的流。
服务器设备104接收流选择186,并将所选择的流188流传送到客户机设备102。流选择186可标识一个或多个流,并且可标识要替换所预测的流或要除所预测的流之外进行流传送的流。如果标识的流要替换所预测的流,则所预测的流的流传送被服务器设备104停止。然而,如果所标识的流是除预测的流之外的流,则该预测的流的流传送不被服务器设备104停止。
预测性播放请求182的示例实施例、用预测的数据流响应184、流选择186和用所选择的数据流响应188在以下段落中更详细地讨论。
预测性播放请求182包括资源定位符,诸如统一资源定位符(URL)。该资源定位符标识了客户机设备102期望的媒体内容。然而,对该媒体内容可以有各种选项。例如,媒体内容可具有以不同的比特率(对于具有不同连接速度的客户机设备)编码的多个视频流、用于不同语言的多个视频流、用于不同语言的多个音频流、以不同语言表达的多个字幕媒体流等等。然而,由于客户机设备102尚不知道这各种选项是什么,因此客户机设备102尚不能选择这些用于媒体内容的不同的各种选项中的特定几个。
预测性播放请求182也可包括一个或多个名称-值对,该名称-值对包括服务器设备104用于预测客户机设备102期望哪一(些)媒体流的信息。这些名称-值对包括指示所标识的信息类型的名称部分,以及指示所标识的特定信息的值部分。或者,信息可用除名称-值对以外的方式来标识,诸如以预定义顺序出现的一系列值(由此减轻了对名称部分的需求)。另外,在某些情况下,预测性播放请求182可以不用名称-值对或其它方法来包括任何这样的信息。
包括在播放请求182中的信息可以不同。在某些实施例中,播放请求182包括客户机设备102和服务器设备104之间的连接速度或链路带宽的标识,以及客户机设备102所需的语言的标识。在其它实施例中,可除/替代链路带宽和/或语言包括其它信息,诸如期望什么类型的媒体流(例如,仅音频、仅视频、视频和音频等)、客户机设备102处有什么编解码器可用(例如,音频编解码器、视频编解码器等等)、视频数据应当是什么语言(例如,使得视频上人的嘴唇与音频同步)、等等。
客户机设备102可以用不同的方式获得要包括在预测性播放请求182中的信息。通常,资源定位符是通过用户输入(例如,对特定媒体内容的用户选择)或通过程序输入(例如,运行在客户机设备102上的程序选择特定的媒体内容)来获得的。服务器设备104用于做出预测的信息可被预编程(例如,由开发者或设计者,或通过对偏好的用户设置)成发送预测性播放请求182的应用程序。例如,如果应用程序是媒体播放器应用程序,则媒体播放器应用程序的用户可能能够设置媒体播放器应用程序的偏好或选项来标识用户偏爱的语言。关于连接速度或链路带宽的信息可例如通过客户机设备102上的应用程序基于可用带宽的用户输入测试带宽、通过监视先前向客户机设备102流传送媒体的速率等来获得。服务器设备104用于做出预测的信息也可替换地被预编程到服务器设备104中(例如,在所有的客户机为已知或者期望是相同类型的情况下)。
预测性播放请求182可采用各种不同的形式。在某些实施例中,预测性播放请求182是HTTP Get(获取)命令。或者,可使用其它格式(例如,不同的句法、HTTP Post(张贴)命令、RTSP命令等等)。预测性播放请求包括将该请求标识为预测性播放请求的标识符。在某些实施例中,使用一个或多个头部来将请求标识为预测性播放请求,尽管将请求标识为预测性播放请求的信息可替换地包括在消息主体中。另外,在某些实现中,请求中一个或多个这样的头部的存在将该请求标识为预测性播放请求。可用于将请求标识为预测性播放请求的预测性启动头部的示例是“Pragma:PredStart=1”,其中值“1”用作指示请求预测性播放的参数。
当服务器设备104接收预测性播放请求182时,服务器设备104标识与请求182相关联的媒体流。请求182标识了资源,所述资源可以是一个或多个文件,其每一个包括可流传送到客户机设备102的一个或多个媒体流。与资源相关联的是这些媒体流的标识,以及通常描述这些媒体流是什么(例如,它们是以什么比特率编码的;它们是否为音频、视频、文本等;它们使用什么语言;等等)的信息。该标识可以是资源的一部分(例如,它可以在资源的头部文件中,诸如ASF(高级流格式或高级系统格式)文件中的ASF头部),或者可替换地单独维护。
服务器设备104使用包括在预测性播放请求182中的信息以及关于什么媒体流对于所请求的资源可用的信息,来预测客户机设备102期望哪一(些)媒体流。服务器设备104也可采用附加信息,诸如由服务器设备104的管理员或用户提供的默认值、先前流传送到客户机设备102(和/或该客户机设备102)的媒体流等等。预测客户机设备102期望哪一(些)媒体流的确切方式可基于对服务器设备可用的信息而改变。
作为示例,假定客户机设备102发送对要流传送到客户机设备102的影片的预测性播放请求。客户机设备102不知道对该影片有什么媒体流可用,诸如视频内容是以哪些不同的比特率来编码的、音频内容是以哪些语言可用、字幕以哪些语言可用等等。然而,假定客户机设备102知道其默认语言是英语,且它具有500千比特每秒(kbps)的连接速度。因此,客户机设备102向服务器设备104发送对影片的预测性播放请求,并在该预测性播放请求中包括对其默认语言为英语以及其默认连接速度是500kbps的指示。
服务器设备104接收该预测性播放请求,并访问与所请求的影片相关联的、描述所请求的影片的信息。假定该影片具有三个视频流,一个是以100kbps编码的,另一个是以300kbps编码的,还有一个是以500kbps编码的。此外,假定影片具有以100kbps编码的英语音频流,以及以100kbps编码的西班牙语音频流,并且该影片具有以10kbps编码的法语字幕流,以及以10kbps编码的日语字幕流。同样假定与该影片相关的信息指示视频流是互斥的(每次仅三个中的一个可被流传送到客户机设备102),音频流是互斥的(每次仅两个中的一个可被流传送到客户机设备102),且音频具有高于视频的优先级。
由于音频具有高于视频的优先级,因此服务器设备104将两个音频流中的一个流传送到客户机设备102。此外,由于预测性播放请求包括对客户机设备102的默认语言是英语的指示,因此服务器设备104预测客户机设备102期望英语音频流。
给定英语音频流是以100kbps编码的,且客户机设备102的默认连接速度是500kbps,因此服务器设备104预测客户机设备102期望以300kbps编码的视频流(因为音频流是以100kbps编码的,因此服务器设备104预测有足够的带宽来流传送500kbps的流)。
预测性播放请求不包括关于字幕流的任何信息,因此服务器104在别处进行查找以确定是否预测期望字幕流。由于还有剩下的带宽(仅使用了500kbps中的400kbps),因此服务器设备104可预测期望字幕流之一。如果在与影片相关联的信息中将字幕流之一标识为具有高于其它字幕流的优先级,则该字幕流被预测为客户机设备102所期望的那一个。或者,以某一其它方式(例如,随机地、以在与影片相关联的信息中引用的顺序等等)将字幕流之一预测为客户机设备102所期望的那一个。
或者,服务器设备104可保持客户机设备每隔多久期望各种媒体流的记录。如果该记录指示客户机设备不常期望字幕流(例如,小于50%的时间),则服务器设备104可预测客户机设备102不期望字幕流,且不将任何字幕流流传送到客户机设备102。
应当注意,服务器设备104预测的客户机设备102期望的媒体流仅仅是:预测。不保证这些媒体流是客户机设备102的确期望的媒体流。然而,通过做出预测,服务器设备104可立即开始将媒体流流传送到客户机设备102,而无需等待客户机设备102做出它期望哪些媒体流的选择。
服务器设备104然后将预测的媒体流流传送到客户机设备102。服务器设备104也传递包括对哪些媒体流对请求的资源可用以及哪些流被预测为客户机设备102所期望的指示的信息。该信息可与预测的媒体流一起包括在内,并由此被流传送到客户机设备102,或者可以用某一其它方式来传递,诸如以非流传送的方式(例如,通过基于HTTP的控制协议)。在某些实施例中,该信息包括在依照1998年4月网络工作小组因特网标准草案(RFC)2327的会话描述协议(SDP)的会话描述消息中。
客户机设备102接收所预测的媒体流,包括对于哪些媒体流对所请求的资源可用以及被预测为客户机设备102所期望的流的指示。客户机设备102然后分析对于哪些媒体流对所请求的资源可用的指示,并选择与所预测的媒体流不同的媒体流。对不同的媒体流的选择是可任选的-如果客户机设备102期望的是服务器设备104所预测的媒体流,则客户机设备102无需做出其它媒体流的选择。
所选择的媒体流可以是除所预测的媒体流之外的媒体流(例如,在前述示例中,没有一个字幕流被服务器设备104预测为客户机设备102所期望的,但是客户机设备102可选择字幕流)。所选择的媒体流或者可以是所预测的媒体流的替代(例如,客户机设备102可选择西班牙语音频流而非英语音频流)。
客户机设备102处的选择可以用不同的方式来执行。例如,应用程序(例如,媒体播放器程序)可被编程以做出该选择。作为示例,可向客户机设备的用户呈现各种可用的媒体流,可允许用户选择他或她期望哪一(些)媒体流。客户机设备102做出的任何选择然后被发送到服务器设备104。
在某些实施例中,诸如当使用HTTP用于流传送媒体时,使用流传送会话的标识符。该标识符允许不同的请求彼此相关联。例如,预测性播放请求可以通过客户机设备102和服务器设备104之间的一个连接发送,而标识所选择的媒体流的请求通过客户机设备102和服务器设备104之间的一个不同的连接发送。为使服务器设备104能够知道两个请求是彼此相关的,使用流传送会话的标识符。在某些实施例中,服务器设备104响应于预测性播放请求返回一标识符。然后,该标识符可由客户机设备102在向服务器设备104发送所选择的媒体流的请求时使用,以通知服务器设备104,标识所选择的媒体流的请求是与该预测性播放请求相关联的。
标识所选择的媒体流的请求可以采用各种不同的格式。在某些实施例中,该请求是Select(选择)请求,它可例如作为HTTP Post(张贴)命令或HTTPGet(获取)命令被发送到服务器设备104。或者,该请求可以用其它方式来传送,诸如使用RTSP命令。Select请求包括将该请求标识为Select请求的标识符、零个或多个头部、以及可任选的消息主体。在某些实施例中,标识所选择的媒体流的信息包括在Select请求的一个或多个头部中,尽管标识所选择的媒体流的信息可替换地包括在消息主体中。另外,在某些实现中,请求中一个或多个这样的头部的存在将请求标识为Select请求。表I示出了可包括在Select请求中的头部的示例。
表I
Figure BSA00000373791600111
描述所选择的媒体流的信息可以用不同的方式来描述所选择的媒体流。作为对所选择的媒体流的描述的一部分,可包括指示要将媒体流的多少数据流传送到客户机设备102(例如,所有帧、仅关键帧等)的“细化等级(thinning level)”。作为一个示例,该描述可以是客户机设备102所期望的媒体流的列表,而不涉及服务器设备104预测了哪些流。作为另一示例,该描述可以是除服务器104所预测的流之外的、客户机设备102所期望的媒体流的列表。作为又一示例,该描述包括一个或多个流对值,每一对标识了所预测的流以及要替换所预测的流的所选择的流。作为再一示例,该描述可以是所有媒体流的列表以及对于这些媒体流是否被选中用于流传送到客户机设备102的标识。作为还有一个示例,该描述可以是“否定”描述(例如,列出客户机设备102不期望的所有媒体流,并由此内在地标识了客户机设备102所期望的媒体流)。
服务器设备104接收Select请求,并开始将所选择的流流传送到客户机设备102。服务器设备104停止向客户机设备102流传送被所选择的流替换的任何预测的流,但是继续流传送不被所选择的流替换的任何预测的流。
预测性播放请求所标识的资源可以与单媒体或多媒体演示或者多个这样的演示相关联。例如,资源可标识是单个多媒体演示的影片,即使该影片具有多个视频、音频和/或字幕流。作为另一示例,资源可标识影片以及不同影片的商业广告和宣传片。在该示例中,影片可以是一个多媒体演示,商业广告可以是第二个多媒体演示,宣传片可以是第三个多媒体演示。
当资源与多个多媒体演示相关联时,服务器设备104可预测客户机设备102期望哪些演示,并预测那些演示内的哪些媒体流是客户机设备102所期望的。例如,假定与资源相关联的两个不同的商业广告,一个商业广告是以西班牙观众为目标的,而另一个是以中国观众为目标的。如果预测性播放请求指示默认的语言是西班牙语,则服务器设备104可预测以西班牙观众为目标的商业广告是客户机设备102所期望的,而非以中国观众为目标的商业广告。
应当注意,在某些情况下,服务器设备104可选择不做出预测。例如,当做出不正确的预测的可能性太大时会发生这一情况。在这些情况下,服务器设备104发送对所请求的资源而言哪些媒体流是可用的指示,但是不启动对任何预测的媒体流的流传送。相反,服务器设备104等待,直到客户机设备做出对可用媒体流的一个或多个的选择,并且当接收到播放所选择的媒体流的请求时启动对所选择的媒体流的流传送。
图4是示出示例预测性启动过程200的流程图。图4示出了由客户机设备102(例如,图1、2和3)以及服务器设备104(例如,图1、2和3)执行的动作。由客户机设备102执行的动作在图4的左侧示出,而由服务器设备104执行的动作在图4的右侧示出。
最初,客户机设备102生成预测性播放请求(动作202)。预测性播放请求标识了期望被流传送到客户机设备102的一个或多个媒体或多媒体演示,被表示为服务器设备104的资源。客户机设备102向服务器设备104发送预测性播放请求(动作204),服务器设备104接收该预测性播放请求(动作206)。
响应于预测性播放请求,服务器设备104预测客户机设备102所期望的一个或多个媒体流(动作208)。如上所述,该预测可基于不同的因素,诸如包括在预测性播放请求中的信息、服务器设备104的默认设置、与所请求的资源相关联的信息、对流媒体的先前的请求等等。所预测的媒体流然后被流传送到客户机设备102(动作210)。作为动作210中该流传送的一部分,对所预测的媒体流以及对所请求的资源可用的媒体流的指示也被发送到客户机设备102。或者,如上所述,对所预测的媒体流以及对所请求的资源可用的媒体流的指示可以用包括非流传送方式的其它方式被传递到客户机设备102。
客户机设备102接收所预测的媒体流(动作212),并分析所接收的对所预测的媒体流以及对所请求的资源可用的媒体流的指示。过程200然后基于客户机设备102是否期望将一个或多个与所预测的媒体流不同的媒体流流传送到其上来继续。如上所述,对于这一不同媒体流的选择可以用不同的方式来做出,诸如通过客户机设备102上的应用程序或客户机设备102的用户输入。如果不选择不同的媒体流(动作214),则客户机设备102的确期望服务器设备104所预测的的媒体流,并且继续对所接收的媒体流的处理(动作216)。该处理可包括,例如,在客户机设备102处缓冲所接收的媒体流和/或呈现(例如,回放)所接收的媒体流。
然而,如果选择了不同的媒体流,则客户机设备102向服务器设备104发送对那些所选择的媒体流的指示(动作218)。服务器设备104接收对所选择的媒体流的指示(动作220),并标识要发送到客户机102的媒体流(动作222)。如上所述,客户机设备102所选择的流可以是除所预测的媒体流之外的流,或者可以替代一个或多个所预测的媒体流。服务器设备104在动作222所标识的流包括被指示为客户机设备102所选择的流(在动作220接收),并且还可包括服务器设备104在动作208预测的一个或多个流。
服务器设备104然后对流传送到客户机102的所标识的媒体流进行流传送(动作224)。通常,所标识的媒体流是从当前回放位置开始流传送的(例如,当接收到选择请求时,标识当前流传送的媒体流的时间位置,然后确定所标识的媒体流的对应的时间位置,并且所标识的媒体流的流传送在该确定的位置处开始)。或者,可使用其它起始点,诸如所标识的媒体流的开始。客户机设备102从服务器设备104接收所标识的媒体流(动作226),并处理所接收的媒体流(动作216)。该处理可包括,例如在客户机设备102处缓冲媒体流和呈现(例如,回放)媒体流。
返回到图2,此处所讨论的快速启动还包括在流传送期间切换传送信道的过程。传输协议152可使用各种不同的传送信道。通常,每一媒体流是使用不同的传送信道从服务器设备104发送到客户机设备102的。用于不同媒体流的这些传送信道通常是相同的类型,尽管可替换地,它们可以是不同的类型。两种常用类型的传送信道是TCP信道和UDP信道。TCP信道以被称为TCP分组的分组来发送数据,而UDP信道以被称为UDP分组的分组来发送数据。通常,使用TCP传送数据分组比使用UDP传送数据分组更可靠,但更耗时。另外,可出现诸如防火墙位于在客户机设备102和服务器设备104之间的情况,在这一情况下,客户机设备102不能接收UDP分组,但客户机设备102能够接收TCP分组。
图5是更详细地示出示例客户机和服务器设备以及传送信道切换过程的框图。在某些实施例中,图2的协议150、152和154包括在图5的客户机和服务器设备中,但未示出。此外,尽管未在图5中示出,一个或多个其它设备(例如,防火墙、路由器、网关、网桥等)可位于客户机设备102和服务器设备104之间。此处所讨论的传送信道切换允许媒体内容源使用一种传送信道(例如,TCP)开始媒体流的传送,然后检查另一传送信道(例如,UDP)是否起作用,并且如果该传送信道起作用,则切换到该另一传送信道。
最初,客户机设备102向服务器设备104发送播放请求252,请求将一个或多个媒体流流传送到客户机设备102。播放请求252可以是如上所述的预测性播放请求,或者可以是请求将一个或多个媒体流流传送到客户机设备102的任何其它请求(或多个请求的组合)。例如,该播放请求252可以是具有Select请求的HTTP Post命令,它标识了所期望的媒体流。响应于播放请求,服务器设备104使用TCP将所请求的媒体流流传送(254)到客户机设备102。该响应包括以多个TCP分组形式的所请求的媒体流的数据。
在使用TCP从服务器设备104向客户机设备102流传送媒体的同时,客户机设备102向服务器设备104发送UDP探测分组256。在某些实施例中,这是通过服务器设备104在使用TCP流传送媒体的同时打开UDP端口并将打开的UDP端口的标识发送给客户机设备102来实现的254。客户机设备102接收该UDP端口标识,然后向服务器设备104的该端口发送UDP分组。或者,服务器设备104可具有用于UDP探测分组的公知的UDP端口,并且客户机设备102可向该公知的UDP端口发送UDP探测分组256,而无需服务器设备104首先向客户机设备102发送打开的UDP端口的标识。客户机设备102也可打开其可向服务器设备104标识的UDP端口,作为UDP探测分组256的一部分,作为它可接收UDP分组的UDP端口。
服务器设备104接收UDP探测分组256,并生成和向客户机设备102发送UDP探测响应分组258。UDP探测响应分组258是对客户机设备102的指示,它指示UDP探测分组256被服务器设备104接收。UDP探测响应分组258可任选地包括UDP探测分组256的标识符的某些种类,诸如包括在UDP探测分组256中的标识符。或者,仅在同一连接上存在响应本身可将响应分组257与探测分组256相关联。例如,如果单个请求和相关联的响应是通过连接发送的仅有两个消息,则响应258可被视为对探测分组256的响应。
应当注意,尽管在某些实施例中客户机设备102发送单个UDP探测分组256,然而在其它实施例中,客户机设备102发送多个UDP探测分组256,并且服务器设备104对每一这样的UDP探测分组256返回一个UDP探测响应分组258。多个UPD探测分组256可由客户机设备102同时发送,或者可在不同的时刻发送(例如,客户机设设备102可在发送另一UDP探测分组256之前等待对一个UDP探测分组256返回UDP探测响应分组258)。例如,在传输协议152包括RTP和RTCP协议的实施例中,RTP数据是使用一个传送信道或传送流来发送的,且RTCP数据是使用不同的传送信道或传送流来发送的。UDP探测分组256可以对这两种传送信道或传送流的每一种发送。作为另一示例,可由客户机设备102对多个媒体流的每一个(例如,对客户机设备102期望切换到使用UDP来进行流传送的每一媒体流,对当前使用TCP被流传送到客户机设备102的每一媒体流等等)发送不同的UDP探测分组256。这两个示例也可以被组合(例如,两个UDP探测分组256(一个用于RTP流,而另一个用于RTCP流)可由客户机设备102对多个媒体流的每一个发送)。
当客户机设备102接收UDP探测响应分组258时,客户机设备102知道UDP分组可从服务器设备104发送到客户机设备102。因此,客户机设备102向服务器设备104发送切换到使用UDP从服务器设备104向客户机设备102流传送媒体流的请求260。通常,客户机设备102向服务器设备104发送所有媒体流被切换到使用UDP来流传送的请求,尽管可替换地,客户机设备102可在请求中标识仅要被切换到使用UDP来流传送的特定的媒体流(剩余的媒体流仍使用TCP来流传送)。或者,多个请求可以从客户机设备102发送到服务器设备104,每一请求标识应当使用UDP流传送到客户机设备192的特定的一个或多个媒体流。
响应于该请求,服务器设备104开始使用UDP向客户机102流传送播放请求252中所请求的媒体流(262)。在某些实施例中,由于使用TCP的媒体流的流传送已经开始,因此服务器设备104不在媒体流的开始处使用UDP开始流传送。相反,服务器设备104停止使用TCP来流传送数据,并在停止使用TCP流传送的任一点处开始使用UDP流传送。或者,在分组之间可以有某一重叠(例如,在发生切换到UDP的点处,已经使用TCP发送的某些分组可以使用UDP重新发送)。
切换到使用UDP从服务器设备104向客户机设备102流传送媒体流的请求可以是各种不同格式中的任一种。在某些实施例中,该请求可以是Select请求,它可以作为HTTP Post命令被发送到服务器设备104。或者,请求可以用其它方式来传送,诸如使用RTSP命令。Select请求包括将请求标识为Select请求的标识符、零个或多个头部以及可任选的消息主体。在某些实施例中,请求服务器设备切换到使用UDP来流传送媒体流的信息包括在Select请求的一个或多个头部中,尽管请求服务器设备切换到使用UDP来流传送媒体流的信息可以可替换地被包括在消息主体中,或者可替换地,切换到使用UDP来流传送媒体流的请求可以是请求中固有的。在某些实施例中,Pragma:straam-switch-entry头部(参考表I讨论)和/或X-Transport头部(参考表II讨论)的存在用作将请求标识为Select请求的标识符。表II示出了可包括在Select请求中的头部的一个示例。请求包括超文本传输协议HTTP Get命令。
表II
Figure BSA00000373791600161
在某些实施例中,即使标识媒体流的实际内容的数据(例如,标识在客户机设备102处回放的视频或音频的数据)是使用UDP分组从服务器设备104发送到客户机设备102的,控制信息(例如,RTCP分组)也使用TCP分组从服务器设备104发送到客户机设备102。在其它实施例中,所有数据,包括控制信息(例如,RTCP分组)都是使用UDP分组从服务器104发送到客户机102的。
应当注意,如果UDP分组不能用于将数据从服务器设备104流传送到客户机设备102,则UDP探测分组256不会到达服务器设备104(因此,服务器设备104永远不会发送UDP探测响应分组258),或者UDP探测响应分组258不会到达客户机设备102。因此,如果客户机设备102未接收对UDP探测分组256的响应,则客户机设备102知道UDP分组不能用于从服务器设备104向客户机设备102流传送数据。可任选地,如果客户机设备102未接收对UDP探测分组256的响应,则客户机设备102可重新发送UDP探测分组一次或多次,以验证UDP分组不能用于从服务器设备104向客户机设备102流传送数据。
另外,应当注意,在发送多个UDP探测分组256的情况下(例如,对于多个媒体流或多个流),UDP探测响应分组256可以响应于某些探测分组256而不响应于其它分组来接收,指示UDP分组可对于某些流或流量(对其接收到UDP探测响应分组258的那些流)从服务器设备104流传送到客户机设备102,但对于其它流或流量(对于未接收UDP探测响应分组的那些流)则不能进行流传送。
应当注意,对UDP分组是否能用于从服务器设备104向客户机设备102流传送数据的探测在所请求的媒体流使用TCP被流传送到客户机设备102(254)时发生。由此,客户机设备102开始接收所请求的媒体流,而无需等待对数据是否能使用UDP分组流传送到客户机设备102的确定。
还应当注意,UDP探测分组256和UDP探测响应分组258可包括各种信息中的任一种。关于媒体流的信息无需使用UDP探测分组256和UDP探测响应分组258在客户机设备102和服务器设备104之间发送。UDP探测和UDP探测响应分组的重要性仅仅是分组是否到达其预期的目标,而非包括在分组中的关于流媒体的任何特定信息。
图6是示出示例传送信道切换过程300的流程图。图6示出了由客户机设备102(例如,图1、2和5)和服务器设备104(例如,图1、2和5)执行的动作。
最初,客户机设备102向服务器设备104发送对流传送媒体的请求(动作302)。服务器设备104接收该请求,并开始使用TCP向客户机设备102流传送所请求的媒体流(动作304)。服务器设备104继续使用TCP流传送媒体流,并且客户机设备102接收并处理该媒体流(动作306)。该处理可包括,例如,在客户机设备102处缓冲和/或呈现(例如,回放)媒体流。
在动作306使用TCP流传送所请求的媒体流的同时,探测客户机设备102和服务器设备104之间的链路以确定数据是否可使用UDP从服务器设备104传送到客户机设备102(动作308)。如上所述,该探测可涉及在客户机设备102和服务器设备104之间发送信息和分组。
过程300然后基于探测是否指示数据可使用UDP从服务器设备104流传送到客户机设备102来继续(动作310)。如果数据不能使用UDP从服务器设备104流传送到客户机设备102,则服务器设备104继续使用TCP流传送所请求的媒体流,并且客户机设备102接收并处理使用TCP所接收到的媒体流(动作306)。然而,如果数据可以使用UDP从服务器设备104流传送到客户机设备102,则服务器设备104切换到使用UDP而非TCP来流传送所请求的媒体流,并且客户机设备102接收并处理使用UDP所接收到的媒体流(动作312)。通常,服务器设备104响应于从客户机设备102所发送的、请求切换到UDP的请求(例如,Select请求),切换到使用UDP而非TCP来流传送所请求的媒体流。另外,应当注意,并非所有的流都需要被切换到使用UDP来流传送。相反,客户机设备102可请求仅特定的一个或多个媒体流被切换到使用UDP来流传送,并且一个或多个其它媒体流保持使用TCP来流传送。
此处所描述的快速启动可包括预测性启动技术和/或传送通道切换技术。以上图3和4讨论了预测性启动基础的示例实施例。以上图5和6讨论了传送信道切换技术的示例实施例。
图7是示出包括预测性启动和传送信道切换两者的示例快速启动过程350的流程图。图7示出了由客户机设备102(例如,图1、2和5)和服务器设备104(例如,图1、2和5)执行的动作。
最初,客户机设备102向服务器设备104发送预测性播放请求(动作352)。服务器设备104接收预测性播放请求,并预测客户机设备102所期望的媒体流(动作354)。服务器设备104然后开始使用TCP向客户机设备102流传送所预测的媒体流(动作356)。
然后探测客户机设备102和服务器设备104之间的链路以确定数据是否可使用UDP从服务器设备104流传送到客户机设备102(动作358)。如果探测指示数据可使用UDP从服务器设备104流传送到客户机设备102,则服务器设备104切换到使用UDP而非TCP流传送媒体流(动作360);否则,服务器设备104继续使用TCP流传送媒体流。通常,服务器设备104响应于从客户机设备102发送的、请求切换到UDP的请求(例如,Select请求),切换到使用UDP而非TCP流传送所请求的媒体流。另外,应当注意,并非所有的流都需要被切换到使用UDP来流传送。相反,客户机102可请求仅特定的一个或多个媒体流被切换到使用UDP来流传送,并且一个或多个其它媒体流保持使用TCP来流传送。
另外,在动作356使用TCP流传送预测的媒体流开始之后,客户机设备102确定它是否期望除所预测的媒体流之外的媒体流(动作362)。如果是,选择除所预测的媒体流之外的一个或多个媒体流(除所预测的媒体流之外和/或作为对预测的媒体流的替代),并且客户机设备102向服务器设备104发送对所选择的媒体流的指示(动作364)。服务器设备104从客户机设备102接收该指示,并将所选择的媒体流流传送到客户机设备102(动作366)。
应当注意,在动作360流传送的媒体流可包括在动作354预测的媒体流和/或在动作364所选择的媒体流。在动作360流传送的媒体流是否为在动作354预测的媒体流和/或在动作364所选择的媒体流取决于在动作364是否选择了任何媒体流,以及服务器104是在动作360的切换之前还是之后开始流传送在动作366选中的任何媒体流。
在某些实施例中,动作358和360的传送信道切换可与动作362、364和366的媒体流选择同时执行。在其它实施例中,动作358和360的传送信道切换可在动作362、364和366的媒体流选择之后或之前执行。
图8示出了可用于实现此处所描述的技术的通用计算机环境400。计算系统环境400仅为计算环境的一个示例,并非对计算机和网络体系结构的使用范围或功能提出任何局限。也不应将计算环境400解释为对示例性计算机环境400中示出的任一组件或其组合具有任何依赖或需求。
计算机环境400包括计算机402形式的通用计算设备。计算机402可以是,例如图1、2、3和5的客户机设备102或服务器设备104。计算机402也可以是作为多媒体演示的源的编码器设备。计算机402的组件可包括但不限于,一个或多个处理器或处理单元404、系统存储器406以及将包括处理器404的各类系统组件耦合至系统存储器506的系统总线408。
系统总线408表示若干种总线结构类型的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各类总线体系结构的处理器或局部总线。作为示例,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机402通常包括各种计算机可读介质。这类计算机可读介质可以是可由计算机402访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器406包括诸如随机存取存储器(RAM)410等易失性存储器,和/或诸如只读存储器(ROM)412等非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)414包括如在启动时帮助在计算机402内的元件之间传输信息的基本例程,通常储存在ROM 412中。RAM 410通常包含处理单元404立即可访问或者当前正在操作的数据和/或程序模块。
计算机402也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图8示出了对不可移动、非易失性磁介质(未示出)进行读写的硬盘驱动器416、对可移动、非易失性磁盘420(如,“软盘”)进行读写的磁盘驱动器418以及对可移动、非易失性光盘424,如CD-ROM、DVD-ROM或其它光介质进行读写的光盘驱动器422。硬盘驱动器416、磁盘驱动器418和光盘驱动器422的每一个通过一个或多个数据介质接口426连接到系统总线408。或者,硬盘驱动器416、磁盘驱动器418和光盘驱动器422可通过一个或多个接口(未示出)连接到系统总线408。
盘驱动器及其相关联的计算机可读介质为计算机402提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管示例示出了硬盘416、可移动磁盘420和可移动光盘424,然而可以理解,可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等,也可用于实现示例性计算系统和环境。
任意数量的程序模块可储存在硬盘416、磁盘420、光盘424、ROM 412和/或RAM 410中,作为示例,包括操作系统426、一个或多个应用程序428、其它程序模块430以及程序数据432。这些操作系统426、一个或多个应用程序428、其它程序模块430和程序数据432(或其某一组合)的每一个可实现支持分布式文件系统的常驻组件的所有或部分。
用户可以通过诸如键盘434和定位设备436(如,“鼠标”)等输入设备向计算机402输入命令和信息。其它输入设备438(未具体示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪和/或其类似物。这些和其它输入设备通常通过耦合至系统总线408的输入/输出接口440连接到处理单元404,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器442或其它类型的显示设备也通过接口,如视频适配器444连接到系统总线408。除监视器442之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机446等组件,它们可通过输入/输出接口440连接到计算机402。
计算机402可以在使用到一个或多个远程计算机,如远程计算设备448的逻辑连接的网络化环境中操作。作为示例,远程计算设备可以是个人计算机、服务器、路由器、网络计算机、对等设备或其它普通网络节点等等。远程计算设备448被示出为可包括此处相对于计算机402所描述的许多或所有元件和特征的便携式计算机。
计算机402和远程计算机448之间的逻辑连接被描述为局域网(LAN)450和通用广域网(WAN)452。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中实现时,计算机402通过网络接口或适配器454连接至局域网450。当在WAN网络环境中使用时,计算机402通常包括调制解调器456或用于通过广域网452建立通信的其它装置。调制解调器456可以对计算机402是内置或外置的,通过输入/输出接口440或其它适当的机制连接至系统总线408。可以理解,示出的网络连接是示例性的,也可以使用在计算机402和448之间建立通信链路的其它装置。
在诸如用计算环境400示出的网络化环境中,相对于计算机402描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,远程应用程序458驻留在远程计算机448的存储器设备中。为说明目的,应用程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,尽管可以认识到,这些程序和组件在不同的时刻驻留在计算设备402的不同存储组件中,并由计算机的数据处理器执行。
各种模块和技术可在诸如由一个或多个计算机或其它设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可如各实施例中所需的组合或分布。
这些模块和技术的实现可被储存在某一形式的计算机可读介质上,或通过其传输。计算机可读介质可以是可由计算机访问的任一可用介质。作为示例而非局限,计算机可读介质包括“计算机存储介质”和“通信介质”。
“计算机存储介质”包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机访问的任一其它介质。
“通信介质”通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
尽管以上描述使用了对结构特征和/或方法动作专用的语言,但是可以理解,所附权利要求书中所定义的本发明不限于所描述的具体特征或动作。相反,揭示了具体特征和动作作为实现本发明的示例性形式。

Claims (29)

1.一种方法,包括:
从客户机设备向服务器设备发送预测性播放请求;
响应于所述预测性播放请求,在所述服务器设备处预测所述客户机设备期望的一个或多个媒体流;
至少将所预测的一个或多个媒体流从所述服务器设备流传送到所述客户机设备;
在所述客户机设备处确定所预测的一个或多个媒体流是否是所述客户机设备实际所期望的媒体流;以及
如果不是,则选择与所预测的一个或多个媒体流不同的至少一个媒体流来流传送到所述客户机设备,向所述服务器设备发送对于所选择的至少一个媒体流的标识,并且将所选择的至少一个媒体流从所述服务器设备流传送到所述客户机设备。
2.如权利要求1所述的方法,其特征在于,与所预测的一个或多个媒体流不同的所述至少一个媒体流被选中来替代所预测的一个或多个流中的至少一个。
3.如权利1所述的方法,其特征在于,将所选择的至少一个媒体流从所述服务器设备流传送到所述客户机设备包括将除所预测的一个或多个媒体流之外的所选择的至少一个媒体流从所述服务器设备流传送到所述客户机设备。
4.一种系统,包括:
用于从请求者接收预测性播放请求的装置;
用于响应于所述预测性播放请求,预测要流传送到所述请求者的一个或多个媒体流的装置;以及
用于将所预测的一个或多个媒体流流传送到所述请求者的装置。
5.如权利要求4所述的系统,其特征在于,所述预测性播放请求包括具有“Pragma:PredStart=1”头部的请求。
6.如权利要求4所述的系统,其特征在于,所述系统还包括:
用于从所述请求者接收流传送与所预测的一个或多个媒体流之一不同的媒体流的请求的装置;
用于停止向所述请求者流传送所预测的一个或多个媒体流之一的装置;以及
用于开始向所述请求者流传送所述不同的媒体流的装置。
7.如权利要求6所述的系统,其特征在于,所述流传送与所预测的一个或多个媒体流之一不同的媒体流的请求包括具有“pragma:stream-switch-entry”头部的Select请求,所述头部具有指示所述不同媒体流的一个或多个参数。
8.如权利要求4所述的系统,其特征在于,所述系统还包括:
用于向所述请求者传递对于所预测的一个或多个流的标识以及对于可被流传送到所述请求者的一个或多个其它流的标识的装置。
9.如权利要求4所述的系统,其特征在于,所述请求者包括客户机设备。
10.如权利要求4所述的系统,其特征在于,所述用于预测要流传送到所述请求者的一个或多个媒体流的装置包括用于至少部分地基于包括在所述预测性播放请求中的信息来预测要流传送到所述请求者的一个或多个媒体流的装置。
11.如权利要求10所述的系统,其特征在于,包括在所述预测性播放请求中的信息包括对所述请求者和所述设备之间的连接速度的标识。
12.如权利要求10所述的系统,其特征在于,包括在所述预测性播放请求中的信息包括对所述请求者期望的语言的标识。
13.如权利要求4所述的系统,其特征在于,所述用于预测要流传送到所述请求者的一个或多个媒体流的装置包括用于至少部分地基于除包括在所述预测性播放请求中的信息之外的、对所述设备可用的信息来预测要流传送到所述请求者的一个或多个媒体流的装置。
14.一种系统,包括:
用于向媒体内容源发送预测性播放请求的装置;以及
用于响应于所述预测性播放请求,接收由所述媒体内容源预测为所述设备所期望的一个或多个媒体流的装置。
15.如权利要求14所述的系统,其特征在于,所述预测性播放请求包括具有“Pragma:PredStart=1”头部的请求。
16.如权利要求14所述的系统,其特征在于,所述用于接收由所述媒体内容源预测为所述设备所期望的一个或多个媒体流的装置接收由所述媒体内容源预测为所述设备所期望的一个或多个媒体流,而所述设备无需选择所述一个或多个媒体流中的任一个。
17.如权利要求14所述的系统,其特征在于,所述系统还包括:
用于选择与所述媒体内容源预测为所述设备所期望的一个或多个媒体流之一不同的媒体流的装置;
用于向所述媒体内容源发送对所述不同媒体流的指示的装置;以及
用于响应于所述指示,从所述媒体内容源接收替代所述媒体内容源预测为所述设备所期望的一个或多个媒体流之一的所述不同媒体流的装置。
18.如权利要求17所述的系统,其特征在于,对所述不同媒体流的指示包括具有“pragma:stream-switch-entry”头部的Select请求,所述头部具有指示所述不同媒体流的一个或多个参数。
19.如权利要求14所述的系统,其特征在于,所述系统还包括:
用于选择与所述媒体内容源预测为所述设备所期望的一个或多个媒体流不同的媒体流的装置;
用于向所述媒体内容源发送对所述不同媒体流的指示的装置;以及
用于响应于所述指示,从所述媒体内容源接收除所述媒体内容源预测为所述设备所期望的一个或多个媒体流之外的所述不同媒体流的装置。
20.如权利要求19所述的系统,其特征在于,对所述不同媒体流的指示包括具有“pragma:stream-switch-entry”头部的Select请求,所述头部具有指示所述不同媒体流的一个或多个参数。
21.如权利要求14所述的系统,其特征在于,所述系统还包括用于在所述预测性播放请求中包括要由所述媒体内容源用于预测所述一个或多个媒体流的信息的装置。
22.如权利要求21所述的系统,其特征在于,包括在所述预测性播放请求中的信息包括对所述设备和所述媒体内容源之间的连接速度的标识。
23.如权利要求21所述的系统,其特征在于,包括在所述预测性播放请求中的信息包括对所述设备期望的语言的标识。
24.一种方法,包括在客户机设备处:
向服务器设备发送预测性播放请求;
接收从服务器设备流传送的预测的一个或多个媒体流;
确定所述预测的一个或多个媒体流是否是所述客户机设备实际所期望的媒体流;以及
如果不是,则选择要流传送到所述客户机设备的与所预测的一个或多个媒体流不同的至少一个媒体流,向所述服务器设备发送对于所选择的至少一个媒体流的标识,从所述服务器设备接收所选择的至少一个媒体流。
25.如权利要求24所述的方法,其特征在于,与所预测的一个或多个媒体流不同的所述至少一个媒体流被选中来替代所预测的一个或多个流中的至少一个。
26.如权利要求24所述的方法,其特征在于,从所述服务器设备接收所选择的至少一个媒体流包括从所述服务器设备接收除所预测的一个或多个媒体流之外的所选择的至少一个媒体流。
27.一种方法,包括在服务器设备处:
从客户机设备接收预测性播放请求;
响应于所述预测性播放请求,预测所述客户机设备期望的一个或多个媒体流;
至少将所预测的一个或多个媒体流流传送到所述客户机设备;
接收客户机设备所选择的与所预测的一个或多个媒体流不同的至少一个媒体流的标识,并且将所选择的至少一个媒体流流传送到所述客户机设备。
28.如权利要求27所述的方法,其特征在于,与所预测的一个或多个媒体流不同的所述至少一个媒体流被选中来替代所预测的一个或多个流中的至少一个。
29.如权利27所述的方法,其特征在于,将所选择的至少一个媒体流流传送到所述客户机设备包括将除所预测的一个或多个媒体流之外的所选择的至少一个媒体流流传送到所述客户机设备。
CN2010105739219A 2004-05-03 2004-07-23 用于流传送媒体的快速启动的方法和系统 Active CN102123298B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/838,465 2004-05-03
US10/838,465 US7720983B2 (en) 2004-05-03 2004-05-03 Fast startup for streaming media

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2004800123580A Division CN1784674B (zh) 2004-05-03 2004-07-23 用于流传送媒体的快速启动的方法和系统

Publications (2)

Publication Number Publication Date
CN102123298A true CN102123298A (zh) 2011-07-13
CN102123298B CN102123298B (zh) 2012-12-26

Family

ID=35376537

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2004800123580A Active CN1784674B (zh) 2004-05-03 2004-07-23 用于流传送媒体的快速启动的方法和系统
CN2010105739219A Active CN102123298B (zh) 2004-05-03 2004-07-23 用于流传送媒体的快速启动的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2004800123580A Active CN1784674B (zh) 2004-05-03 2004-07-23 用于流传送媒体的快速启动的方法和系统

Country Status (13)

Country Link
US (1) US7720983B2 (zh)
EP (1) EP1745387B1 (zh)
JP (1) JP2007536796A (zh)
KR (1) KR20070007698A (zh)
CN (2) CN1784674B (zh)
AU (1) AU2004288602A1 (zh)
BR (1) BRPI0406598A (zh)
CA (1) CA2507804A1 (zh)
MX (1) MXPA05007086A (zh)
RU (1) RU2364924C2 (zh)
TW (1) TW200537293A (zh)
WO (1) WO2005111837A1 (zh)
ZA (1) ZA200504759B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111417009A (zh) * 2019-01-04 2020-07-14 苹果公司 预测媒体路由
CN114995732A (zh) * 2021-09-06 2022-09-02 荣耀终端有限公司 一种投屏方法、电子设备以及存储介质

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595372B2 (en) 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US7716358B2 (en) 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
JP3734774B2 (ja) * 2002-06-21 2006-01-11 株式会社リコー ネットワークファクシミリ装置、及び、ファクシミリ通信方法
US20080200168A1 (en) * 2003-08-05 2008-08-21 John Yue Jun Jiang Method and system for seamless data roaming across multiple operator bearers
US20130097302A9 (en) * 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US20060008256A1 (en) 2003-10-01 2006-01-12 Khedouri Robert K Audio visual player apparatus and system and method of content distribution using the same
US7720983B2 (en) * 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media
JP2006033763A (ja) * 2004-07-21 2006-02-02 Toshiba Corp 電子機器及び通信制御方法
WO2006096104A1 (en) * 2005-03-07 2006-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia channel switching
IES20050376A2 (en) 2005-06-03 2006-08-09 Asavie R & D Ltd Secure network communication system and method
US7644173B1 (en) * 2005-09-26 2010-01-05 Roxbeam Media Network Corporation System and method for facilitating expedited delivery of media content
US20070201502A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for controlling the delivery behavior of downloaded content
EP3010167B1 (en) 2006-03-27 2017-07-05 Nielsen Media Research, Inc. Methods and systems to meter media content presented on a wireless communication device
RU2494562C2 (ru) * 2006-06-19 2013-09-27 Телефонактиеболагет Лм Эрикссон (Пабл) Управление мультимедийными каналами
EP2031875A4 (en) * 2006-06-22 2010-08-11 Sony Corp PLAY ARRANGEMENT, PROCESS AND PROGRAM
CN102148857A (zh) * 2006-07-20 2011-08-10 桑迪士克股份有限公司 内容分布系统
JP5061619B2 (ja) * 2007-01-24 2012-10-31 日本電気株式会社 リソース確保方法、中継装置、配信システム、およびプログラム
US20080180572A1 (en) * 2007-01-29 2008-07-31 Microsoft Corporation Enabling access to closed captioning data present in a broadcast stream
US7788395B2 (en) * 2007-02-14 2010-08-31 Microsoft Corporation Adaptive media playback
US7991904B2 (en) 2007-07-10 2011-08-02 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US7987285B2 (en) 2007-07-10 2011-07-26 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
FR2919778A1 (fr) * 2007-07-30 2009-02-06 Canon Kk Procede de transmission de paquets de donnees dans un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
CN101399844B (zh) * 2007-09-26 2012-03-07 中兴通讯股份有限公司 一种移动流媒体业务中快速切换内容的方法
US20090138614A1 (en) * 2007-11-28 2009-05-28 Motorola, Inc. Method and apparatus for streaming media in a communication network
CN101188815B (zh) * 2007-12-07 2011-07-06 华为终端有限公司 媒体流数据的传送方法、系统、服务器及客户端
WO2009095081A1 (en) * 2008-01-31 2009-08-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for obtaining media over a communications network
EP2088751B1 (en) * 2008-02-08 2013-07-03 Accenture Global Services Limited Streaming media interruption and resumption system
US8503991B2 (en) 2008-04-03 2013-08-06 The Nielsen Company (Us), Llc Methods and apparatus to monitor mobile devices
JP5151763B2 (ja) * 2008-07-22 2013-02-27 日本電気株式会社 映像配信システム、映像配信装置、映像受信装置、映像配信方法、映像受信方法及びプログラム
US7844725B2 (en) * 2008-07-28 2010-11-30 Vantrix Corporation Data streaming through time-varying transport media
US8001260B2 (en) * 2008-07-28 2011-08-16 Vantrix Corporation Flow-rate adaptation for a connection of time-varying capacity
US20100064061A1 (en) * 2008-09-05 2010-03-11 Apple Inc. Providing substantially immediate action in response to input event
JP5659791B2 (ja) * 2008-10-09 2015-01-28 日本電気株式会社 コンテンツ配信システム、コンテンツ配信方法及びプログラム
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
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8099476B2 (en) 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
WO2010085232A1 (en) * 2009-01-26 2010-07-29 Thomson Licensing Method, apparatus and system for improving tuning in receivers
US8775665B2 (en) * 2009-02-09 2014-07-08 Citrix Systems, Inc. Method for controlling download rate of real-time streaming as needed by media player
JP4599447B2 (ja) * 2009-03-18 2010-12-15 株式会社東芝 電話システム、サーバおよび端末デバイス
US7975063B2 (en) * 2009-05-10 2011-07-05 Vantrix Corporation Informative data streaming server
CN102045768A (zh) * 2009-10-26 2011-05-04 宏碁股份有限公司 数据传输方法及其用户装置与数据传输系统
US8468288B2 (en) * 2009-12-10 2013-06-18 International Business Machines Corporation Method for efficient guest operating system (OS) migration over a network
WO2011102791A1 (en) 2010-02-19 2011-08-25 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for representation switching in http streaming
US8504694B2 (en) * 2010-03-08 2013-08-06 Microsoft Corporation Remote content classification and transmission using multiple transport channels
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
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
US8892691B2 (en) 2010-04-07 2014-11-18 Apple Inc. Real-time or near real-time streaming
US20110249667A1 (en) * 2010-04-13 2011-10-13 Rebelvox, Llc Apparatus and method for transmitting media using either network efficient protocol or a loss tolerant transmission protocol
US20110302318A1 (en) * 2010-06-04 2011-12-08 Ari Birger Anonymous re-streaming of media item of content
RU2609104C2 (ru) * 2010-11-05 2017-01-30 Конинклейке Филипс Электроникс Н.В. Предсказание на основе содержимого изображения и контроллер кэша изображений
US9043782B2 (en) 2010-12-28 2015-05-26 Microsoft Technology Licensing, Llc Predictive software streaming
US20120173748A1 (en) * 2011-01-03 2012-07-05 Nokia Corporation Hybrid transport-layer protocol media streaming
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
WO2012170920A1 (en) 2011-06-10 2012-12-13 Bytemobile, Inc. On-demand adaptive bitrate management for streaming media over packet networks
US9288251B2 (en) 2011-06-10 2016-03-15 Citrix Systems, Inc. Adaptive bitrate management on progressive download with indexed media files
US9015337B2 (en) 2011-07-13 2015-04-21 Hewlett-Packard Development Company, L.P. Systems, methods, and apparatus for stream client emulators
US9137551B2 (en) 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
EP2786537B1 (en) 2011-12-01 2019-11-20 InterDigital Madison Patent Holdings Device for obtaining content by choosing the transport protocol according to the available bandwidth
TWI519147B (zh) 2011-12-28 2016-01-21 財團法人工業技術研究院 提供與傳送複合濃縮串流之方法以及系統
US8924581B1 (en) * 2012-03-14 2014-12-30 Amazon Technologies, Inc. Managing data transfer using streaming protocols
US8972523B2 (en) * 2012-03-19 2015-03-03 Verizon Patent And Licensing Inc. Adaptive localized content storage and distribution
US9398344B2 (en) * 2012-06-08 2016-07-19 Lg Electronics Inc. Image display apparatus, mobile terminal and method for operating the same
KR101945812B1 (ko) * 2012-06-08 2019-02-08 엘지전자 주식회사 이동 단말기, 및 그 동작방법
KR101979270B1 (ko) * 2012-06-08 2019-08-28 엘지전자 주식회사 영상표시장치, 이동 단말기, 및 그 동작방법
US9628542B2 (en) * 2012-08-24 2017-04-18 Akamai Technologies, Inc. Hybrid HTTP and UDP content delivery
US9432426B2 (en) 2013-02-04 2016-08-30 Qualcomm Incorporated Determining available media data for network streaming
GB2513345B (en) * 2013-04-23 2017-07-26 Gurulogic Microsystems Oy Data communication system and method
US9413797B2 (en) 2013-04-23 2016-08-09 Gurulogic Microsystems Oy Data communication system and method
GB2513597B (en) * 2013-04-30 2021-04-07 Metaswitch Networks Ltd SIP signalling
KR102264477B1 (ko) 2013-07-12 2021-06-15 캐논 가부시끼가이샤 푸시 메시지 제어를 이용하는 적응적 데이터 스트리밍 방법
BR112016002763A2 (pt) 2013-08-06 2017-08-01 Ricoh Co Ltd aparelho para processamento de informação e método para fornecer resultado de determinação
CN104427357A (zh) * 2013-09-04 2015-03-18 中兴通讯股份有限公司 语言种类设置方法和装置
CN103905878A (zh) * 2014-03-13 2014-07-02 北京奇艺世纪科技有限公司 一种视频数据和音频数据同步播放的方法、装置和设备
US9648073B2 (en) * 2014-04-10 2017-05-09 Qualcomm Incorporated Streaming control for real-time transport protocol
CN103986762B (zh) * 2014-05-15 2018-03-27 京信通信系统(中国)有限公司 一种进行进程状态检测的方法及装置
CN104283716B (zh) * 2014-10-22 2018-01-26 网易(杭州)网络有限公司 数据传输方法、设备及系统
CN104486243B (zh) * 2014-11-27 2017-11-03 网易(杭州)网络有限公司 数据传输方法、设备及系统
US20170041363A1 (en) * 2015-08-03 2017-02-09 Unroll, Inc. System and Method for Assembling and Playing a Composite Audiovisual Program Using Single-Action Content Selection Gestures and Content Stream Generation
GB2541736B (en) * 2015-08-28 2019-12-04 Imagination Tech Ltd Bandwidth management
CN105282231B (zh) * 2015-09-11 2018-09-21 深信服网络科技(深圳)有限公司 基于应用类型的数据引流方法、装置及系统
CN107438051A (zh) * 2016-05-25 2017-12-05 中兴通讯股份有限公司 流媒体快速启动方法、装置和系统
CN109818773B (zh) * 2017-11-22 2021-03-12 大唐移动通信设备有限公司 一种网管与被管理设备的通信方法及设备
FR3090252B1 (fr) * 2018-12-17 2021-08-20 Orange Procédé de basculement d’une communication de TCP sur UDP
EP3888328B1 (en) 2019-03-06 2023-05-31 Samsung Electronics Co., Ltd. Method and system for mpquic over qsocks in wireless network
US11947637B2 (en) 2020-05-28 2024-04-02 Comcast Cable Communications, Llc Authorization of access rights licenses

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018771A (en) * 1992-11-25 2000-01-25 Digital Equipment Corporation Dynamic assignment of multicast network addresses
US5675741A (en) * 1994-10-25 1997-10-07 Cabletron Systems, Inc. Method and apparatus for determining a communications path between two nodes in an Internet Protocol (IP) network
JPH09261617A (ja) 1996-01-19 1997-10-03 Matsushita Electric Ind Co Ltd オンデマンド通信システム
JP3653569B2 (ja) 1997-01-30 2005-05-25 マイクロソフト コーポレーション ビデオをオン・デマンドでレンダリングするvcrに似た機能
US5999979A (en) * 1997-01-30 1999-12-07 Microsoft Corporation Method and apparatus for determining a most advantageous protocol for use in a computer network
US6128653A (en) * 1997-03-17 2000-10-03 Microsoft Corporation Method and apparatus for communication media commands and media data using the HTTP protocol
US6078594A (en) * 1997-09-26 2000-06-20 International Business Machines Corporation Protocol and procedure for automated channel change in an MPEG-2 compliant datastream
US6594699B1 (en) * 1997-10-10 2003-07-15 Kasenna, Inc. System for capability based multimedia streaming over a network
US6505252B1 (en) 1997-12-24 2003-01-07 Seiko Epson Corporation Data transfer utilizing preview data
US6477707B1 (en) 1998-03-24 2002-11-05 Fantastic Corporation Method and system for broadcast transmission of media objects
US6847614B2 (en) * 1998-04-20 2005-01-25 Broadcom Corporation Apparatus and method for unilateral topology discovery in network management
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6662223B1 (en) * 1999-07-01 2003-12-09 Cisco Technology, Inc. Protocol to coordinate network end points to measure network latency
US7606164B2 (en) 1999-12-14 2009-10-20 Texas Instruments Incorporated Process of increasing source rate on acceptable side of threshold
US7010492B1 (en) 1999-09-30 2006-03-07 International Business Machines Corporation Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media
US20060244839A1 (en) * 1999-11-10 2006-11-02 Logitech Europe S.A. Method and system for providing multi-media data from various sources to various client applications
FR2805062B1 (fr) 2000-02-10 2005-04-08 Bull Cp8 Procede de transmission de flux de donnees a haut debit sur un reseau de type internet entre un serveur et un terminal a carte a puce, notamment d'un flux de donnees multimedia
US7073191B2 (en) * 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
EP1273151B1 (en) * 2000-04-08 2004-09-29 Sun Microsystems, Inc. Resynchronizing media during streaming
JP2001298479A (ja) * 2000-04-12 2001-10-26 Nec Corp インターネット電話装置
US6601094B1 (en) * 2000-04-27 2003-07-29 Hewlett-Packard Development Company, L.P. Method and system for recommending an available network protocol
US6772216B1 (en) * 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
US7299489B1 (en) * 2000-05-25 2007-11-20 Lucent Technologies Inc. Method and apparatus for host probing
US7184433B1 (en) * 2000-05-26 2007-02-27 Bigband Networks, Inc. System and method for providing media content to end-users
AU2001286447A1 (en) * 2000-08-11 2002-02-25 The Regents Of The University Of California Receiver-initiated multiple access for ad-hoc networks (rima)
US7047309B2 (en) * 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
US7103668B1 (en) * 2000-08-29 2006-09-05 Inetcam, Inc. Method and apparatus for distributing multimedia to remote clients
WO2002032051A2 (en) * 2000-10-12 2002-04-18 Signafor, Inc. Advanced switching mechanism for providing high-speed communications with high quality of service
US7089293B2 (en) * 2000-11-02 2006-08-08 Sun Microsystems, Inc. Switching system method for discovering and accessing SCSI devices in response to query
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US6778869B2 (en) * 2000-12-11 2004-08-17 Sony Corporation System and method for request, delivery and use of multimedia files for audiovisual entertainment in the home environment
KR100866445B1 (ko) * 2000-12-27 2008-10-31 소니 가부시끼 가이샤 데이터 기록 장치와 방법, 및 데이터 재생 장치와 방법
US20020136298A1 (en) * 2001-01-18 2002-09-26 Chandrashekhara Anantharamu System and method for adaptive streaming of predictive coded video data
US6891830B2 (en) * 2001-01-26 2005-05-10 Placeware, Inc. Method and apparatus for automatically determining an appropriate transmission method in a network
US20020144276A1 (en) * 2001-03-30 2002-10-03 Jim Radford Method for streamed data delivery over a communications network
US7454527B2 (en) * 2001-05-02 2008-11-18 Microsoft Corporation Architecture and related methods for streaming media content through heterogeneous networks
WO2003009102A2 (en) * 2001-07-19 2003-01-30 Wind River Systems, Inc. Browser having dynamically self-adjusting rendering functionality
US20030041165A1 (en) * 2001-08-24 2003-02-27 Spencer Percy L. System and method for group video teleconferencing using a bandwidth optimizer
US20030061304A1 (en) * 2001-09-10 2003-03-27 Tenereillo Peter A. Method and apparatus for discovering client proximity using in-line translations
JP3648470B2 (ja) * 2001-09-18 2005-05-18 株式会社東芝 移動端末、ルータ装置、ノード装置、移動エージェント、パケット転送方法及び移動エージェント処理方法
US7225260B2 (en) * 2001-09-28 2007-05-29 Symbol Technologies, Inc. Software method for maintaining connectivity between applications during communications by mobile computer terminals operable in wireless networks
DE50108473D1 (de) * 2001-10-08 2006-01-26 Siemens Ag Kanalzuweisung von Kontrolldaten und Nutzdaten in drahtlosen Kommunikationssystemen
JP4126928B2 (ja) * 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
US6850503B2 (en) * 2002-08-06 2005-02-01 Motorola, Inc. Method and apparatus for effecting a handoff between two IP connections for time critical communications
CN1169332C (zh) * 2002-09-29 2004-09-29 清华大学 一种基于客户端反馈的传输协议选择方法
US8051176B2 (en) * 2002-11-07 2011-11-01 Hewlett-Packard Development Company, L.P. Method and system for predicting connections in a computer network
US7277915B2 (en) * 2002-11-11 2007-10-02 Openwave Systems Inc. Application-based protocol and proxy selection by a mobile device in a multi-protocol network environment
US7424528B2 (en) * 2002-11-27 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for measuring the capacity of a streaming media server
EP1453269A1 (en) * 2003-02-25 2004-09-01 Matsushita Electric Industrial Co., Ltd. A method of reporting quality metrics for packet switched streaming
US20040247295A1 (en) * 2003-06-04 2004-12-09 Samsung Electronics Co., Ltd Audio/video stream processing system and method for data copy protection
WO2005002116A2 (en) * 2003-06-13 2005-01-06 Docomo Communications Laboratories Usa, Inc. Proxy active scan for wireless networks
US7392316B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Client to server streaming of multimedia content using HTTP
US20050002337A1 (en) * 2003-07-01 2005-01-06 Nokia Corporation Reducing effects caused by transmission channel errors during a streaming session
US20050165849A1 (en) * 2003-08-05 2005-07-28 G-4, Inc. Extended intelligent video streaming system
US8339963B2 (en) * 2003-08-27 2012-12-25 Rockstar Consortium Us Lp Technique for end-to-end admission control of real-time packet flows
US8589373B2 (en) * 2003-09-14 2013-11-19 Yaron Mayer System and method for improved searching on the internet or similar networks and especially improved MetaNews and/or improved automatically generated newspapers
US7574514B2 (en) * 2003-09-30 2009-08-11 Sharp Laboratories Of America, Inc. Systems and methods for identifying original streams of media content
US20050076099A1 (en) * 2003-10-03 2005-04-07 Nortel Networks Limited Method and apparatus for live streaming media replication in a communication network
US8081205B2 (en) * 2003-10-08 2011-12-20 Cisco Technology, Inc. Dynamically switched and static multiple video streams for a multimedia conference
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
US7010299B2 (en) * 2003-11-20 2006-03-07 Motorola, Inc. Method and apparatus for mobility in WLAN systems
US7609640B2 (en) * 2003-12-19 2009-10-27 Nokia Corporation Methods and applications for avoiding slow-start restart in transmission control protocol network communications
US8566469B2 (en) * 2003-12-24 2013-10-22 Intel Corporation Method and system for predicting and streaming content utilizing multiple stream capacity
US7293066B1 (en) * 2004-01-21 2007-11-06 Cisco Technology, Inc. Methods and apparatus supporting access to stored data
US7571232B2 (en) * 2004-03-22 2009-08-04 Microsoft Corporation Method and apparatus for managing channel information
US7720983B2 (en) * 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111417009A (zh) * 2019-01-04 2020-07-14 苹果公司 预测媒体路由
US11234051B2 (en) 2019-01-04 2022-01-25 Apple Inc. Predictive media routing
US11729470B2 (en) 2019-01-04 2023-08-15 Apple Inc. Predictive media routing based on interrupt criteria
CN114995732A (zh) * 2021-09-06 2022-09-02 荣耀终端有限公司 一种投屏方法、电子设备以及存储介质

Also Published As

Publication number Publication date
BRPI0406598A (pt) 2006-05-09
RU2005120654A (ru) 2006-04-27
ZA200504759B (en) 2006-08-30
JP2007536796A (ja) 2007-12-13
US20050262251A1 (en) 2005-11-24
CN1784674B (zh) 2011-01-26
CA2507804A1 (en) 2005-11-03
US7720983B2 (en) 2010-05-18
CN1784674A (zh) 2006-06-07
TW200537293A (en) 2005-11-16
WO2005111837A1 (en) 2005-11-24
KR20070007698A (ko) 2007-01-16
EP1745387A1 (en) 2007-01-24
MXPA05007086A (es) 2006-01-23
RU2364924C2 (ru) 2009-08-20
EP1745387B1 (en) 2018-05-16
CN102123298B (zh) 2012-12-26
AU2004288602A1 (en) 2005-11-17
EP1745387A4 (en) 2011-04-06

Similar Documents

Publication Publication Date Title
CN1784674B (zh) 用于流传送媒体的快速启动的方法和系统
US8332530B2 (en) User interface including concurrent display of video program, histogram, and transcript
US8806341B2 (en) Method and apparatus for navigating a media program via a histogram of popular segments
CN100565504C (zh) 用于在实时控制协议(rtcp)消息中嵌入会话描述消息的方法和系统
US7290057B2 (en) Media streaming of web content data
US8903916B2 (en) Method, system, and computer-readable medium to render repeatable data objects streamed over a network
US20140075045A1 (en) Adaptive Bit Rate Switching
US20030191805A1 (en) Methods, apparatus, and systems for on-line seminars
US20130173819A1 (en) System and method for providing and transmitting condensed streaming content
CN101120331A (zh) 会话描述消息扩展
CN105656910B (zh) 媒体传输服务器、媒体传输系统、用户终端和媒体传输方法
KR101873969B1 (ko) 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재
JP5833114B2 (ja) Httpライブストリーミングと両立できるようにストリーミングメディアプログラムおよび目標とされた広告を供給する方法および装置
US20140075343A1 (en) Method and apparatus for sharing viewing information
US11102536B2 (en) Transmission apparatus, reception apparatus, and data processing method
KR100596723B1 (ko) 멀티미디어 스트리밍 서비스와 응용 프로그램 스트리밍서비스의 통합형 실행장치 및 실행방법
KR20010067612A (ko) 가상현실 기반의 인터넷 원격 강의 시스템 및 방법
Patrikakis et al. Streaming content wars: Download and play strikes back
RU2658672C2 (ru) Устройство предоставления контента, программа, оконечное устройство и система предоставления контента
Jakab et al. Development of experimental videostreaming portal solution
Lambrinos A distributed approach to multicast multimedia conference recording and playback

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.