WO2013162506A1 - Integral controller based pacing for http pseudo-streaming - Google Patents

Integral controller based pacing for http pseudo-streaming Download PDF

Info

Publication number
WO2013162506A1
WO2013162506A1 PCT/US2012/034690 US2012034690W WO2013162506A1 WO 2013162506 A1 WO2013162506 A1 WO 2013162506A1 US 2012034690 W US2012034690 W US 2012034690W WO 2013162506 A1 WO2013162506 A1 WO 2013162506A1
Authority
WO
WIPO (PCT)
Prior art keywords
epoch
target
bytes
send
network
Prior art date
Application number
PCT/US2012/034690
Other languages
French (fr)
Inventor
Jae Chung
Srinivasan Venkatraman
Paul Sherer
Original Assignee
Affirmed Networks, 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 Affirmed Networks, Inc. filed Critical Affirmed Networks, Inc.
Priority to CN201280074204.9A priority Critical patent/CN104380275B/en
Priority to KR1020147031764A priority patent/KR101931407B1/en
Priority to IN2382KON2014 priority patent/IN2014KN02382A/en
Priority to PCT/US2012/034690 priority patent/WO2013162506A1/en
Priority to JP2015508926A priority patent/JP6425649B2/en
Priority to EP12875417.3A priority patent/EP2842046A4/en
Publication of WO2013162506A1 publication Critical patent/WO2013162506A1/en
Priority to HK15107871.2A priority patent/HK1207434A1/en

Links

Classifications

    • 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/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/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
    • 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/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/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the invention generally relates to communication networks, and more specifically to integral controller based pacing for Hypertext Transfer Protocol (HTTP) pseudo- streaming.
  • HTTP Hypertext Transfer Protocol
  • HTTP pseudo- streaming combines the advantages of straight HTTP downloads (e.g., it passes any firewall, viewers on bad connections can simply wait for the download) with the ability to seek to non-downloaded parts.
  • HTTP pseudo-streaming uses Transmission Control Protocol (TCP), designed originally for bulk data transfers, as transport protocol.
  • TCP does not explicitly indicate the timing information of the media in the payload.
  • TCP is used to merely transfer a media clip (such as, e.g., .flv or .mp4 files).
  • the media time information is implicitly sent within the media clip format, and the player simply plays back the clip as portions of it are downloaded.
  • HTTP pseudo-streaming uses HTTP to control the streaming media download over TCP.
  • the streaming clients often provide the desired media seek position information as an URL option in the HTTP request, which is handed over to the pseudo-streaming server by the HTTP.
  • the pseudo-streaming server uses the information to prepare a media clip that plays from the desired seek position and transmit via HTTP.
  • HTTP pseudo-streaming relying the streaming media transmission solely on TCP, is incapable of maintaining a desirable target streaming bitrate, but often delivers the media to the client at the available link speed that is often much higher than the target bitrate. This could result in waste of the bandwidth when the viewer lost interest in the media and stop the transmission.
  • a transmission pacing mechanism to control the media transmission rate to a desirable bitrate is highly desirable for HTTP pseudo-streaming.
  • rate control is essential for media streaming over packet networks.
  • the challenge in delivering bandwidth-intensive content like multimedia over capacity- limited, shared links is to quickly respond to changes in network conditions by adjusting the bitrate and the media encoding scheme to optimize the viewing and listening experience of the user.
  • a network buffer may overflow, resulting in packet loss causing garbled video or audio playback, or a media player buffer may underflow resulting in playback stall.
  • the present invention provides methods and apparatus, including computer program products, for integral controller based pacing for HTTP pseudo-streaming.
  • the invention features a method including, in a network including user equipment linked to an integral controller based pacing for Hypertext Transfer Protocol (HTTP) streaming manager and a content server, receiving a request portions of a multimedia clip residing in the content server from a media player residing in the user equipment and delivering the requested portions of the multimedia clip to the media player while maintaining a target bitrate in a presence of control noises in the network.
  • Delivering the requested portions of the multimedia clip can include estimating a target transmission rate, determining a target elasticity buffer, and estimating a number of bytes to send in a current transmission epoch.
  • FIG. 1 is a block diagram.
  • FIG. 2 is a block diagram.
  • FIG. 3 is a flow diagram.
  • a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • an application running on a server and the server can be a component.
  • One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
  • these components can execute from various computer readable media having various data structures stored thereon.
  • the components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
  • terms like "user equipment,” “mobile station,” “mobile,” “subscriber station,” “communication device,” “access terminal,” “terminal,” “handset,” and similar terminology refer to a wireless device (e.g., cellular phone, smart phone, computer, personal digital assistant (PDA), set-top box, Internet Protocol Television (IPTV), electronic gaming device, printer, etc.) utilized by a subscriber or user of a wireless communication service to receive or convey data, control, voice, video, sound, gaming, or substantially any data-stream or signaling- stream.
  • PDA personal digital assistant
  • IPTV Internet Protocol Television
  • access point refers to a wireless network component or appliance that serves and receives data, control, voice, video, sound, gaming, or substantially any data-stream or signaling- stream from a set of subscriber stations.
  • Data and signaling streams can be packetized or frame-based flows.
  • an exemplary system 100 includes, among other things, a terminal 102, a gateway 104, one or more networks 106, 110, an integral controller based pacing manager 108, and one or more content servers 112-114.
  • Terminal 102 is a hardware component including software applications that enable terminal 102 to communicate and receive packets corresponding to streaming media.
  • Terminal 102 provides a display and one or more software applications, such as a media player, for displaying streaming media to a user of terminal 102.
  • terminal 102 has the capability of requesting and receiving data packets, such as data packets of streaming media, from the Internet.
  • terminal 102 can send request data to content servers 112-114 for a particular file or object data of a web page by its universal resource locator (URL), and the content server of the web page can query the object data in a database and send the corresponding response data to terminal 102.
  • response data may be routed through integral controller based pacing manager 108.
  • terminal 102 can be a wired terminal
  • embodiments of the invention may include using a mobile terminal because mobile terminals are more likely to be in networks that would benefit more from the integral controller based pacing manager 108.
  • the network connection in a mobile network tends to be less stable as compared to wired network connection due to, for example, the changing position of the mobile terminal where data rate transmissions between the mobile terminal and the network can fluctuate, in some cases quite dramatically.
  • Gateway 104 is a device that converts formatted data provided in one type of network to a particular format required for another type of network.
  • Gateway 106 may be a server, a router, a firewall server, a host, or a proxy server.
  • Gateway 104 has the ability to transform the signals received from terminal 102 into a signal that network 106 can understand and vice versa.
  • Gateway 104 may be capable of processing audio, video, and T.120 transmissions alone or in any combination, and is capable of full duplex media translations.
  • Networks 106 and 110 can include any combination of wide area networks (WANs), local area networks (LANs), or wireless networks suitable for packet-type communications (e.g., GSM, CDMA, LTE, WiMAX, and so forth), such as Internet communications. Further, networks 106 and 110 can include buffers for storing packets prior to transmitting them to their intended destination.
  • WANs wide area networks
  • LANs local area networks
  • wireless networks suitable for packet-type communications e.g., GSM, CDMA, LTE, WiMAX, and so forth
  • GSM Global System for Mobile communications
  • CDMA Code Division Multiple Access
  • LTE Long Term Evolution
  • WiMAX Worldwide Interoperability for Mobile communications
  • Integral controller based pacing manager 108 is a server that provides
  • Integral controller based pacing manager 108 maintains a target bitrate in average in presence of control noises such as transient network congestion or ⁇ scheduling epoch at the content servers 112-114.
  • the integral controller based pacing manager 108 is implemented in AN-3000 Proxy Cache manufactured by Affirmed Networks, Inc., of Acton, Massachusetts.
  • Content servers 112-114 are servers that receive the request data from terminal 102, process the request data accordingly, and return the response data back to terminal 102 through, in some embodiments, integral controller based pacing manager 108.
  • content servers 112-114 can be a web server, an enterprise server, or any other type of server.
  • Content servers 112-114 can be a computer or a computer program responsible for accepting requests (e.g., HTTP, RTSP, or other protocols that can initiate a media session) from terminal 102 and serving terminal 102 with streaming media.
  • terminal 102 may include, among other things, a media player 202 and a buffer 204.
  • Integral controller based pacing manager 108 can include, among other things, a processor 210 and a memory 212.
  • Memory 212 can include an operating system 214, such as Linux®, Unix® or Windows®, and a integral controller based pacing for HTTP pseudo-streaming process 300.
  • Media player 202 is computer software for playing multimedia files (such as streaming media) including video and/or audio media files.
  • Examples of media player 202 can include Microsoft® Windows Media Player, Apple® Quicktime® Player, RealOne® Player, and Adobe® Flash Plugin for web-embedded video.
  • media player 202 decompresses the streaming video or audio using a codec and plays it back on a display of terminal 102.
  • Media player 202 can be used as a standalone application or embedded in a web page to create a video application interacting with HTML content.
  • media player 202 can provide feedback on media reception to the integral controller based pacing manager 108 in the form of media receiver reports.
  • Media receiver reports can include RTCP packets for an RTP streaming session, or TCP ACKs for a pseudo-streaming session.
  • Buffer 204 (also known as terminal buffer 204) is a software program and/or a hardware device that temporarily stores multimedia packets before providing the multimedia packets to media player 202.
  • buffer 204 receives the multimedia packets from integral controller based pacing manager 108 via network 106.
  • buffer 204 receives ckets from a device other than integral controller based pacing manager 108.
  • terminal buffer 204 and media player 202 are shown as separate components, in other implementations the terminal buffer 204 can be a part of media player 202. Further, while only a single buffer, implementations may include multiple buffers, for example, one or more buffers for audio media packets and one or more buffers for video media packets.
  • HTTP Pseudo- streaming refers to a transmission technic wherein an audio/video content that can be played before the entire content is transmitted as a single HTTP object. It is desirable to pace the media transmission at a certain bitrate close to the encoded bitrate of the media after initial media buffering period especially for wireless networks, since airlink resource is expensive and it is likely that the media presentations may be cancelled by the user as he/she loses interest in the content before the end of the presentation.
  • the integral controller based pacing for HTTP pseudo-streaming process 300 is a packet transmission pacing technique that can be used by a media server or proxy to maintain a target bitrate in average in presence of control noises such as transient network congestion or inconsistent packet scheduling epoch at the server.
  • process 300 includes estimating (310) a target transmission rate.
  • Target transmission rate estimation requires information about a size and time duration of the multimedia content, which can be obtained by parsing the media container. In case the size or time duration is not available (as for live contents), the media encoding bitrate informed in the container header can be used as the target transmission rate.
  • the target transmission rate may be calibrated by applying a factor greater than 1 to make the transmission of the media slightly faster than the presentation speed to avoid halt in the media presentation due to unstable network conditions.
  • Process 300 determines (312) a target elasticity buffer.
  • the amount of content as measured in display time that has been acknowledged by a client minus a wall clock time required to deliver it can be considered the display elasticity buffer.
  • there are always two targets i.e., a transmission rate target and a receiver elasticity target.
  • the transmission rate target is typically be higher than once the elasticity target is initially met.
  • the target elasticity buffer may be set based on a variety of parameters, such receiving device type and subscriber type. Further, a transmission channel can be
  • the target elasticity buffer for the particular receiver may be increased. Comparing regular samples of
  • transmission throughput trends can be developed and used to adjust the target elasticity buffering. For example, if the apparent receiver elasticity is decreasing then the transmission rate may be slightly increased. If increasing the transmission rate does not improve elasticity (or at least slow the decline) then there may be no reason for further transmission rate increases.
  • process 300 estimates (314) the number of bytes to send in the current transmission epoch using an integral controller as follows.
  • Process 300 initializes (316) the number of bytes to send in the current epoch (bytes_to_send_epoch) to a value obtained by the target bitrate times the estimated epoch length and start transmission. In each epoch,
  • the average transmission bitrate is (average_bitrate) computed as the total number of transmitted bytes divided by the elapse time after the transmission of the first byte.
  • BYTES_EPOCH_MAX can be set to initial bytes_to_send_epoch times a factor greater than 1
  • BYTES_EPOCH_MIN can be set to initial bytes_to_send_epoch times a factor less than 1.
  • Process 300 includes one or more of the following advantages. Process 300 is useful when there is no network level throttling like TCP. One strength of process 300 is that it is resilient to any small control noise from the server or network to achieve the average target bitrate.
  • Process 300 is useful for media servers/proxy facing a wireless network where transient airlink congestion is common.
  • implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • a programmable processor which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • the systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components.
  • the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN”), a wide area network (“WAN”), and the Internet.
  • LAN local area network
  • WAN wide area network
  • the Internet the global information network
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client- server relationship to each other.

Abstract

Methods and apparatus, including computer program products, for integral controller based pacing for HTTP pseudo-streaming. A method includes receiving a request portions of a multimedia clip residing in the content server from a media player residing in the user equipment and delivering the requested portions of the multimedia clip to the media player while maintaining a target bitrate in a presence of control noises in the network. Delivering the requested portions of the multimedia clip can include estimating a target transmission rate, determining a target elasticity buffer, and estimating a number of bytes to send in a current transmission epoch.

Description

INTEGRAL CONTROLLER BASED PACING
FOR HTTP PSEUDO-STREAMING
BACKGROUND OF THE INVENTION
[001] The invention generally relates to communication networks, and more specifically to integral controller based pacing for Hypertext Transfer Protocol (HTTP) pseudo- streaming.
[002] The biggest advantage of streaming over download is the ability to seek in the timeline to positions that have not been downloaded yet to the player. This is most desirable for full-length movies because the visitor can seek to the last scene of a 2-hour movie if she wants to. HTTP pseudo- streaming combines the advantages of straight HTTP downloads (e.g., it passes any firewall, viewers on bad connections can simply wait for the download) with the ability to seek to non-downloaded parts.
[003]
[004]
[005] HTTP pseudo-streaming uses Transmission Control Protocol (TCP), designed originally for bulk data transfers, as transport protocol. As such, TCP does not explicitly indicate the timing information of the media in the payload. TCP is used to merely transfer a media clip (such as, e.g., .flv or .mp4 files). The media time information is implicitly sent within the media clip format, and the player simply plays back the clip as portions of it are downloaded.
[006] HTTP pseudo-streaming uses HTTP to control the streaming media download over TCP. The streaming clients often provide the desired media seek position information as an URL option in the HTTP request, which is handed over to the pseudo-streaming server by the HTTP. The pseudo-streaming server uses the information to prepare a media clip that plays from the desired seek position and transmit via HTTP.
[007] HTTP pseudo-streaming, relying the streaming media transmission solely on TCP, is incapable of maintaining a desirable target streaming bitrate, but often delivers the media to the client at the available link speed that is often much higher than the target bitrate. This could result in waste of the bandwidth when the viewer lost interest in the media and stop the transmission. Thus, a transmission pacing mechanism to control the media transmission rate to a desirable bitrate is highly desirable for HTTP pseudo-streaming.
[008] In general, rate control is essential for media streaming over packet networks. The challenge in delivering bandwidth-intensive content like multimedia over capacity- limited, shared links is to quickly respond to changes in network conditions by adjusting the bitrate and the media encoding scheme to optimize the viewing and listening experience of the user. In particular, when transferring a media stream over a connection that cannot provide the necessary throughput, several undesirable effects arise. For example, a network buffer may overflow, resulting in packet loss causing garbled video or audio playback, or a media player buffer may underflow resulting in playback stall.
[009]
SUMMARY OF THE INVENTION
[0010] The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is intended to neither identify key or critical elements of the invention nor delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
[0011] The present invention provides methods and apparatus, including computer program products, for integral controller based pacing for HTTP pseudo-streaming.
[0012] In general, in one aspect, the invention features a method including, in a network including user equipment linked to an integral controller based pacing for Hypertext Transfer Protocol (HTTP) streaming manager and a content server, receiving a request portions of a multimedia clip residing in the content server from a media player residing in the user equipment and delivering the requested portions of the multimedia clip to the media player while maintaining a target bitrate in a presence of control noises in the network. Delivering the requested portions of the multimedia clip can include estimating a target transmission rate, determining a target elasticity buffer, and estimating a number of bytes to send in a current transmission epoch. [0013] Other features and advantages of the invention are apparent from the following description, and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The invention will be more fully understood by reference to the detailed description, in conjunction with the following figures, wherein:
[0015] FIG. 1 is a block diagram.
[0016] FIG. 2 is a block diagram.
[0017] FIG. 3 is a flow diagram.
DETAILED DESCRIPTION
[0018] The subject innovation is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the present invention may be practiced without these specific details. In other instances, well- known structures and devices are shown in block diagram form in order to facilitate describing the present invention.
[0019] As used in this application, the terms "component," "system," "platform," and the like can refer to a computer-related entity or an entity related to an operational machine with one or more specific functionalities. The entities disclosed herein can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. Also, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
[0020] In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless specified otherwise, or clear from context, "X employs A or B" is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then "X employs A or B" is satisfied under any of the foregoing instances. Moreover, articles "a" and "an" as used in the subject specification and annexed drawings should generally be construed to mean "one or more" unless specified otherwise or clear from context to be directed to a singular form.
[0021] Moreover, terms like "user equipment," "mobile station," "mobile," "subscriber station," "communication device," "access terminal," "terminal," "handset," and similar terminology, refer to a wireless device (e.g., cellular phone, smart phone, computer, personal digital assistant (PDA), set-top box, Internet Protocol Television (IPTV), electronic gaming device, printer, etc.) utilized by a subscriber or user of a wireless communication service to receive or convey data, control, voice, video, sound, gaming, or substantially any data-stream or signaling- stream. The foregoing terms are utilized interchangeably in the subject specification and related drawings. Likewise, the terms "access point," "base station," "Node B," "evolved Node B," "home Node B (HNB)," and the like, are utilized interchangeably in the subject application, and refer to a wireless network component or appliance that serves and receives data, control, voice, video, sound, gaming, or substantially any data-stream or signaling- stream from a set of subscriber stations. Data and signaling streams can be packetized or frame-based flows.
[0022] Furthermore, the terms "user," "subscriber," "customer," and the like are employed interchangeably throughout the subject specification, unless context warrants particular distinction(s) among the terms.
[0023] As shown in FIG. 1, an exemplary system 100 includes, among other things, a terminal 102, a gateway 104, one or more networks 106, 110, an integral controller based pacing manager 108, and one or more content servers 112-114.
[0024] Terminal 102 is a hardware component including software applications that enable terminal 102 to communicate and receive packets corresponding to streaming media. Terminal 102 provides a display and one or more software applications, such as a media player, for displaying streaming media to a user of terminal 102. Further, terminal 102 has the capability of requesting and receiving data packets, such as data packets of streaming media, from the Internet. For example, terminal 102 can send request data to content servers 112-114 for a particular file or object data of a web page by its universal resource locator (URL), and the content server of the web page can query the object data in a database and send the corresponding response data to terminal 102. In some embodiments, response data may be routed through integral controller based pacing manager 108.
[0025] While terminal 102 can be a wired terminal, embodiments of the invention may include using a mobile terminal because mobile terminals are more likely to be in networks that would benefit more from the integral controller based pacing manager 108. The network connection in a mobile network tends to be less stable as compared to wired network connection due to, for example, the changing position of the mobile terminal where data rate transmissions between the mobile terminal and the network can fluctuate, in some cases quite dramatically.
[0026] Gateway 104 is a device that converts formatted data provided in one type of network to a particular format required for another type of network. Gateway 106, for example, may be a server, a router, a firewall server, a host, or a proxy server. Gateway 104 has the ability to transform the signals received from terminal 102 into a signal that network 106 can understand and vice versa. Gateway 104 may be capable of processing audio, video, and T.120 transmissions alone or in any combination, and is capable of full duplex media translations.
[0027] Networks 106 and 110 can include any combination of wide area networks (WANs), local area networks (LANs), or wireless networks suitable for packet-type communications (e.g., GSM, CDMA, LTE, WiMAX, and so forth), such as Internet communications. Further, networks 106 and 110 can include buffers for storing packets prior to transmitting them to their intended destination.
[0028] Integral controller based pacing manager 108 is a server that provides
communications between gateway 104 and content servers 112-114. Integral controller based pacing manager 108 maintains a target bitrate in average in presence of control noises such as transient network congestion or ϊί scheduling epoch at the content servers 112-114. In one particular embodiment, the integral controller based pacing manager 108 is implemented in AN-3000 Proxy Cache manufactured by Affirmed Networks, Inc., of Acton, Massachusetts.
[0029] Content servers 112-114 are servers that receive the request data from terminal 102, process the request data accordingly, and return the response data back to terminal 102 through, in some embodiments, integral controller based pacing manager 108. For example, content servers 112-114 can be a web server, an enterprise server, or any other type of server. Content servers 112-114 can be a computer or a computer program responsible for accepting requests (e.g., HTTP, RTSP, or other protocols that can initiate a media session) from terminal 102 and serving terminal 102 with streaming media.
[0030] As shown in FIG. 2, terminal 102 may include, among other things, a media player 202 and a buffer 204. Integral controller based pacing manager 108 can include, among other things, a processor 210 and a memory 212. Memory 212 can include an operating system 214, such as Linux®, Unix® or Windows®, and a integral controller based pacing for HTTP pseudo-streaming process 300.
[0031] Media player 202 is computer software for playing multimedia files (such as streaming media) including video and/or audio media files. Examples of media player 202 can include Microsoft® Windows Media Player, Apple® Quicktime® Player, RealOne® Player, and Adobe® Flash Plugin for web-embedded video. In some embodiments, media player 202 decompresses the streaming video or audio using a codec and plays it back on a display of terminal 102. Media player 202 can be used as a standalone application or embedded in a web page to create a video application interacting with HTML content.
Further, media player 202 can provide feedback on media reception to the integral controller based pacing manager 108 in the form of media receiver reports. Media receiver reports can include RTCP packets for an RTP streaming session, or TCP ACKs for a pseudo-streaming session.
[0032] Buffer 204 (also known as terminal buffer 204) is a software program and/or a hardware device that temporarily stores multimedia packets before providing the multimedia packets to media player 202. In some embodiments, buffer 204 receives the multimedia packets from integral controller based pacing manager 108 via network 106. In some embodiments, buffer 204 receives ckets from a device other than integral controller based pacing manager 108. Once buffer 204 receives multimedia packets (or portions of a media clip if pseudo-streaming), it can provide the stored multimedia packets to media player 202. While terminal buffer 204 and media player 202 are shown as separate components, in other implementations the terminal buffer 204 can be a part of media player 202. Further, while only a single buffer, implementations may include multiple buffers, for example, one or more buffers for audio media packets and one or more buffers for video media packets.
[0033] HTTP Pseudo- streaming refers to a transmission technic wherein an audio/video content that can be played before the entire content is transmitted as a single HTTP object. It is desirable to pace the media transmission at a certain bitrate close to the encoded bitrate of the media after initial media buffering period especially for wireless networks, since airlink resource is expensive and it is likely that the media presentations may be cancelled by the user as he/she loses interest in the content before the end of the presentation.
[0034] The integral controller based pacing for HTTP pseudo-streaming process 300 is a packet transmission pacing technique that can be used by a media server or proxy to maintain a target bitrate in average in presence of control noises such as transient network congestion or inconsistent packet scheduling epoch at the server.
[0035] As shown in FIG. 3, process 300 includes estimating (310) a target transmission rate. Target transmission rate estimation requires information about a size and time duration of the multimedia content, which can be obtained by parsing the media container. In case the size or time duration is not available (as for live contents), the media encoding bitrate informed in the container header can be used as the target transmission rate. The target transmission rate may be calibrated by applying a factor greater than 1 to make the transmission of the media slightly faster than the presentation speed to avoid halt in the media presentation due to unstable network conditions.
[0036] Process 300 determines (312) a target elasticity buffer. The amount of content as measured in display time that has been acknowledged by a client minus a wall clock time required to deliver it can be considered the display elasticity buffer. In this case, there are always two targets, i.e., a transmission rate target and a receiver elasticity target. During an initial buffer fill, the transmission rate target is typically be higher than once the elasticity target is initially met. [0037] The target elasticity buffer may be set based on a variety of parameters, such receiving device type and subscriber type. Further, a transmission channel can be
characterized to its stability of delivery. If the channel is less stable then the target elasticity buffer for the particular receiver may be increased. Comparing regular samples of
transmission throughput trends can be developed and used to adjust the target elasticity buffering. For example, if the apparent receiver elasticity is decreasing then the transmission rate may be slightly increased. If increasing the transmission rate does not improve elasticity (or at least slow the decline) then there may be no reason for further transmission rate increases.
[0038] Once the target transmission bitrate (target_bitrate) is determined, process 300 estimates (314) the number of bytes to send in the current transmission epoch using an integral controller as follows.
[0039] Process 300 initializes (316) the number of bytes to send in the current epoch (bytes_to_send_epoch) to a value obtained by the target bitrate times the estimated epoch length and start transmission. In each epoch,
[0040] (a) The average transmission bitrate is (average_bitrate) computed as the total number of transmitted bytes divided by the elapse time after the transmission of the first byte.
[0041] (b) Update for integral control the number of bytes to send in the current epoch as follows:
[0042] bytes_to_send_epoch += INTEGRAL_CONST (target_bitrate _
average_bitrate)
[0043] if (bytes_to_send_epoch > BYTES_EPOCH_MAX)
[0044] bytes_to_send_epoch = BYTES_EPOCH_MAX
[0045] if (bytes_to_send_epoch < BYTES_EPOCH_MIN)
[0046] bytes_to_send_epoch = BYTES_EPOCH_MIN
[0047] BYTES_EPOCH_MAX can be set to initial bytes_to_send_epoch times a factor greater than 1, and BYTES_EPOCH_MIN can be set to initial bytes_to_send_epoch times a factor less than 1.
[0048] (c) Transmit the update poch amount of content. [0049] Process 300 includes one or more of the following advantages. Process 300 is useful when there is no network level throttling like TCP. One strength of process 300 is that it is resilient to any small control noise from the server or network to achieve the average target bitrate.
[0050] Process 300 is useful for media servers/proxy facing a wireless network where transient airlink congestion is common.
[0051] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs
(application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0052] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" "computer-readable medium" refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.
[0053] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0054] The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0055] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client- server relationship to each other.
[0056] The foregoing description does not represent an exhaustive list of all possible implementations consistent with this disclosure or of all possible variations of the implementations described. A number of implementations have been described.
Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the systems, devices, methods and techniques described here. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed. Accordingly, other implementations are within the scope of the following claims.
[0057] What is claimed is:

Claims

1. A method comprising:
in a network comprising user equipment linked to an integral controller based pacing for Hypertext Transfer Protocol (HTTP) streaming manager and a content server, receiving a request portions of a multimedia clip residing in the content server from a media player residing in the user equipment; and
delivering the requested portions of the multimedia clip to the media player while maintaining a target bitrate in a presence of control noises in the network.
2. The method of claim 1 wherein the media player is designed to play the delivered portions of the multimedia clip.
3. The method of claim 1 wherein the network is selected from the group consisting of a wide area network (WAN), a local area network (LAN), a Global System for Mobile
Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long Term Evolution (LTE) network and a Worldwide Interoperability for Microwave Access (WiMax) network.
4. The method of claim 1 wherein the user equipment is selected from the group consisting of a smart phone, a cellular phone, a computer, a personal digital assistant (PDA), a set-top box, an Internet Protocol Television (IPTV), an electronic gaming device, a tablet and a Wi-Fi hotspot.
5. The method of claim 1 wherein delivering the requested portions of the multimedia clip comprises:
estimating a target transmission rate;
determining a target elasticity buffer; and
estimating a number of bytes to send in a current transmission epoch.
6. The method claim 5 wherein estimating the target transmission rate comprises parsing a media container to obtain information about a size and time duration of the portions of a multimedia clip.
7. The method of claim 5 wherein estimating the target transmission rate comprises a media encoding bitrate informed in a container header.
8. The method of claim 5 wherein determining the target elasticity buffer comprises an amount of multimedia clip content measured in display time that has been acknowledged by the user equipment minus a wall clock time required to deliver it.
9. The method of claim 5 wherein estimating the number of bytes to send in the current transmission epoch comprises initializing a number of bytes to send in the current epoch to a value obtained by the target bitrate times the estimated epoch length and start transmission.
10. The method of claim 9 further comprising:
in each epoch, computing an average transmission bitrate as a total number of transmitted bytes divided by the elapse time after a transmission of a first byte;
updating for integral control the number of bytes to send in the current epoch; and transmitting the updated bytes to send epoch amount of multimedia content.
11. An integral controller based pacing server comprising:
a processor;
a memory, the memory including an operating system and an integral controller based pacing for Hypertext Transfer Protocol (HTTP) streaming process, the process comprising: delivering requested portions of a multimedia clip to a media player while maintaining a target bitrate in a presence of control noises in a network.
12. The server of claim 11 wherein delivering the requested portions of the multimedia clip comprises:
estimating a target transmission rate;
determining a target elasticity buffer; and
estimating a number of bytes to send in a current transmission epoch.
13. The server claim 12 wherein estimating the target transmission rate comprises parsing a media container to obtain information about a size and time duration of the portions of a multimedia clip.
14. The server of claim 12 wherein estimating the target transmission rate comprises a media encoding bitrate informed in a container header.
15. The server of claim 12 wherein determining the target elasticity buffer comprises an amount of multimedia clip content measured in display time that has been acknowledged by the user equipment minus a wall clock time required to deliver it.
16. The server of claim 12 wherein estimating the number of bytes to send in the current transmission epoch comprises initializing a number of bytes to send in the current epoch to a value obtained by the target bitrate times the estimated epoch length and start transmission.
17. The server of claim 16 wherein the process further comprises:
in each epoch, computing an average transmission bitrate as a total number of transmitted bytes divided by the elapse time after a transmission of a first byte;
updating for integral control the number of bytes to send in the current epoch; and transmitting the updated bytes to send epoch amount of multimedia content.
PCT/US2012/034690 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming WO2013162506A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201280074204.9A CN104380275B (en) 2012-04-23 2012-04-23 Step is determined based on integral controller for HTTP puppet streams
KR1020147031764A KR101931407B1 (en) 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming
IN2382KON2014 IN2014KN02382A (en) 2012-04-23 2012-04-23
PCT/US2012/034690 WO2013162506A1 (en) 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming
JP2015508926A JP6425649B2 (en) 2012-04-23 2012-04-23 Integrated controller based pacing for HTTP pseudostreaming
EP12875417.3A EP2842046A4 (en) 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming
HK15107871.2A HK1207434A1 (en) 2012-04-23 2015-08-14 Integral controller based pacing for http pseudo-streaming http

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/034690 WO2013162506A1 (en) 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming

Publications (1)

Publication Number Publication Date
WO2013162506A1 true WO2013162506A1 (en) 2013-10-31

Family

ID=49483620

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/034690 WO2013162506A1 (en) 2012-04-23 2012-04-23 Integral controller based pacing for http pseudo-streaming

Country Status (7)

Country Link
EP (1) EP2842046A4 (en)
JP (1) JP6425649B2 (en)
KR (1) KR101931407B1 (en)
CN (1) CN104380275B (en)
HK (1) HK1207434A1 (en)
IN (1) IN2014KN02382A (en)
WO (1) WO2013162506A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019074654A3 (en) * 2017-10-13 2019-06-20 Exxonmobil Upstream Research Company Method and system for performing hydrocarbon operations with mixed communication networks
US10397286B2 (en) 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US10526888B2 (en) 2016-08-30 2020-01-07 Exxonmobil Upstream Research Company Downhole multiphase flow sensing methods
US10837276B2 (en) 2017-10-13 2020-11-17 Exxonmobil Upstream Research Company Method and system for performing wireless ultrasonic communications along a drilling string
US10844708B2 (en) 2017-12-20 2020-11-24 Exxonmobil Upstream Research Company Energy efficient method of retrieving wireless networked sensor data
US10972526B2 (en) 2017-06-09 2021-04-06 At&T Intellectual Property I, L.P. Estimating network data encoding rate
US11156081B2 (en) 2017-12-29 2021-10-26 Exxonmobil Upstream Research Company Methods and systems for operating and maintaining a downhole wireless network
US11180986B2 (en) 2014-09-12 2021-11-23 Exxonmobil Upstream Research Company Discrete wellbore devices, hydrocarbon wells including a downhole communication network and the discrete wellbore devices and systems and methods including the same
US11293280B2 (en) 2018-12-19 2022-04-05 Exxonmobil Upstream Research Company Method and system for monitoring post-stimulation operations through acoustic wireless sensor network
US11313215B2 (en) 2017-12-29 2022-04-26 Exxonmobil Upstream Research Company Methods and systems for monitoring and optimizing reservoir stimulation operations
US11952886B2 (en) 2019-12-04 2024-04-09 ExxonMobil Technology and Engineering Company Method and system for monitoring sand production through acoustic wireless sensor network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050058148A1 (en) 2003-09-15 2005-03-17 Broadcom Corporation Elasticity buffer for streaming data
US20090254657A1 (en) 2007-07-10 2009-10-08 Melnyk Miguel A Adaptive Bitrate Management for Streaming Media Over Packet Networks
US20110167170A1 (en) * 2009-01-30 2011-07-07 Movik Networks Adaptive Chunked and Content-aware Pacing of Multi-Media Delivery over HTTP Transport and Network Controlled Bit Rate Selection
US20110296046A1 (en) * 2010-05-28 2011-12-01 Ortiva Wireless, Inc. Adaptive progressive download
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI113124B (en) * 1999-04-29 2004-02-27 Nokia Corp Communication
JP3432769B2 (en) * 1999-05-24 2003-08-04 松下電器産業株式会社 Bandwidth control device
US7539756B2 (en) * 2002-01-31 2009-05-26 Darby & Mohaine, L.L.C. Method and system of data packet transmission timing for controlling bandwidth
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
SG111978A1 (en) * 2002-11-20 2005-06-29 Victor Company Of Japan An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
EP2278461A1 (en) * 2003-10-31 2011-01-26 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
WO2005081465A1 (en) * 2004-02-20 2005-09-01 Telefonaktiebolaget Lm Ericsson (Publ) Method, apparatus and computer program product for controlling data packet transmissions
JP2006303724A (en) * 2005-04-18 2006-11-02 Sumitomo Electric Ind Ltd Shaping apparatus and shaping method for variable length frame
CN100438504C (en) * 2006-05-15 2008-11-26 武汉虹旭信息技术有限责任公司 Stream media transmitting rate controlling method
US8812673B2 (en) * 2007-02-14 2014-08-19 Alcatel Lucent Content rate control for streaming media servers
JP5234719B2 (en) * 2007-03-30 2013-07-10 三菱電機株式会社 Video server device
US8190750B2 (en) * 2007-08-24 2012-05-29 Alcatel Lucent Content rate selection for media servers with proxy-feedback-controlled frame transmission
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
CN101646075B (en) * 2008-08-06 2011-07-13 中兴通讯股份有限公司 Device and method for adjusting code rate of multimedia code stream
US8477844B2 (en) * 2008-09-09 2013-07-02 Onmobile Global Limited Method and apparatus for transmitting video
US8553540B2 (en) * 2010-03-05 2013-10-08 Microsoft Corporation Congestion control for delay sensitive applications
US20110299589A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Rate control in video communication via virtual transmission buffer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050058148A1 (en) 2003-09-15 2005-03-17 Broadcom Corporation Elasticity buffer for streaming data
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US20090254657A1 (en) 2007-07-10 2009-10-08 Melnyk Miguel A Adaptive Bitrate Management for Streaming Media Over Packet Networks
US20110167170A1 (en) * 2009-01-30 2011-07-07 Movik Networks Adaptive Chunked and Content-aware Pacing of Multi-Media Delivery over HTTP Transport and Network Controlled Bit Rate Selection
US20110296046A1 (en) * 2010-05-28 2011-12-01 Ortiva Wireless, Inc. Adaptive progressive download

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2842046A4

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11180986B2 (en) 2014-09-12 2021-11-23 Exxonmobil Upstream Research Company Discrete wellbore devices, hydrocarbon wells including a downhole communication network and the discrete wellbore devices and systems and methods including the same
US10526888B2 (en) 2016-08-30 2020-01-07 Exxonmobil Upstream Research Company Downhole multiphase flow sensing methods
US10397286B2 (en) 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US11349887B2 (en) 2017-05-05 2022-05-31 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US10972526B2 (en) 2017-06-09 2021-04-06 At&T Intellectual Property I, L.P. Estimating network data encoding rate
CN111201727A (en) * 2017-10-13 2020-05-26 埃克森美孚上游研究公司 Method and system for hydrocarbon operations using a hybrid communication network
US10724363B2 (en) 2017-10-13 2020-07-28 Exxonmobil Upstream Research Company Method and system for performing hydrocarbon operations with mixed communication networks
US10837276B2 (en) 2017-10-13 2020-11-17 Exxonmobil Upstream Research Company Method and system for performing wireless ultrasonic communications along a drilling string
WO2019074654A3 (en) * 2017-10-13 2019-06-20 Exxonmobil Upstream Research Company Method and system for performing hydrocarbon operations with mixed communication networks
CN111201727B (en) * 2017-10-13 2021-09-03 埃克森美孚上游研究公司 Method and system for hydrocarbon operations using a hybrid communication network
US10844708B2 (en) 2017-12-20 2020-11-24 Exxonmobil Upstream Research Company Energy efficient method of retrieving wireless networked sensor data
US11313215B2 (en) 2017-12-29 2022-04-26 Exxonmobil Upstream Research Company Methods and systems for monitoring and optimizing reservoir stimulation operations
US11156081B2 (en) 2017-12-29 2021-10-26 Exxonmobil Upstream Research Company Methods and systems for operating and maintaining a downhole wireless network
US11293280B2 (en) 2018-12-19 2022-04-05 Exxonmobil Upstream Research Company Method and system for monitoring post-stimulation operations through acoustic wireless sensor network
US11952886B2 (en) 2019-12-04 2024-04-09 ExxonMobil Technology and Engineering Company Method and system for monitoring sand production through acoustic wireless sensor network

Also Published As

Publication number Publication date
JP2015520964A (en) 2015-07-23
IN2014KN02382A (en) 2015-05-01
HK1207434A1 (en) 2016-01-29
KR20150010731A (en) 2015-01-28
CN104380275A (en) 2015-02-25
CN104380275B (en) 2017-10-13
KR101931407B1 (en) 2018-12-20
EP2842046A1 (en) 2015-03-04
EP2842046A4 (en) 2016-01-06
JP6425649B2 (en) 2018-11-21

Similar Documents

Publication Publication Date Title
KR101931407B1 (en) Integral controller based pacing for http pseudo-streaming
US20170208106A1 (en) Integral controller based pacing for http pseudo-streaming
US9473406B2 (en) On-demand adaptive bitrate management for streaming media over packet networks
US9191664B2 (en) Adaptive bitrate management for streaming media over packet networks
CA2842391C (en) Dynamic bit rate adaptation over bandwidth varying connection
US8769141B2 (en) Adaptive bitrate management for streaming media over packet networks
EP2608559B1 (en) System and method for adaptive streaming in a multipath environment
US20140344410A1 (en) Fixed-length segmentation for segmented video streaming to improve playback responsiveness
CN107210999B (en) Link-aware streaming adaptation
CN111886875B (en) Method and server for transmitting media content through network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12875417

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015508926

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012875417

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20147031764

Country of ref document: KR

Kind code of ref document: A