ES2748426T3 - Procedimiento de presentación de flujos de velocidad adaptativa - Google Patents

Procedimiento de presentación de flujos de velocidad adaptativa Download PDF

Info

Publication number
ES2748426T3
ES2748426T3 ES12154559T ES12154559T ES2748426T3 ES 2748426 T3 ES2748426 T3 ES 2748426T3 ES 12154559 T ES12154559 T ES 12154559T ES 12154559 T ES12154559 T ES 12154559T ES 2748426 T3 ES2748426 T3 ES 2748426T3
Authority
ES
Spain
Prior art keywords
files
video
playback
time
quality
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.)
Active
Application number
ES12154559T
Other languages
English (en)
Inventor
Robert Drew Major
Mark Burrows Hurst
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.)
Dish Technologies LLC
Original Assignee
Dish Technologies LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=35320874&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2748426(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dish Technologies LLC filed Critical Dish Technologies LLC
Application granted granted Critical
Publication of ES2748426T3 publication Critical patent/ES2748426T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • 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
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • 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/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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

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

Abstract

Un procedimiento de presentación de flujos de velocidad adaptativa, comprendiendo el procedimiento: transmitir mediante un reproductor multimedia (114) que opera en una estación de usuario final (104) un video desde un conjunto de uno o más servidores (116), en el que cada una de una pluralidad de diferentes copias del video está codificada a una respectiva velocidad de bits diferente y cada copia está codificada como múltiples archivos en el conjunto de servidores, en el que cada uno de los múltiples archivos encapsula, de manera independiente, una parte diferente del video para reproducción, en el que los múltiples archivos a lo largo de las diferentes copias producen las mismas partes del video en reproducción, cada uno de dichos archivos tiene un índice de tiempo que indica la posición del contenido en ese archivo con relación al comienzo del video, de modo que los archivos cuya reproducción es la misma parte del video para cada una de las diferentes copias tienen el mismo índice de tiempo con relación al comienzo del video, y en el que la transmisión comprende: solicitar mediante el reproductor multimedia (114) una pluralidad de archivos secuenciales de los archivos de una de las copias desde el conjunto de servidores en una o más conexiones del protocolo de control de transmisión (TCP) basado en los índices de tiempo, en el que cada archivo es solicitado de manera individual mediante una o más solicitudes HTTP respectivas en la una o más conexiones TCP; solicitar automáticamente mediante el reproductor multimedia (114) desde el conjunto de servidores (116) en la una o más conexiones TCP las partes subsiguientes del video, solicitando para cada dicha parte uno de los archivos de una de las copias dependiente de las determinaciones sucesivas del reproductor multimedia para cambiar la calidad de reproducción a una calidad superior o inferior de las diferentes copias, en el que cada archivo es solicitado de manera individual por una o más solicitudes HTTP respectivas en la una o más conexiones TCP, incluyendo dicha solicitud automática, generar de manera regular (706) un conjunto de uno o más factores indicativos de la capacidad actual para sostener la transmisión del video mediante el uso de los archivos de las diferentes copias, en el que el conjunto de uno o más factores se refiere al rendimiento de la red; y hacer las sucesivas determinaciones (710, 712) para cambiar la calidad de reproducción basado en, al menos, uno del conjunto de factores para obtener la reproducción continua del video mediante el uso de los archivos de una de las copias de calidad superior determinada como sostenible en ese momento; y presentar el video mediante la reproducción con el reproductor multimedia en la estación de usuario final de los archivos solicitados en el orden del tiempo de reproducción ascendente.

Description

DESCRIPCIÓN
Procedimiento de presentación de flujos de velocidad adaptativa
La presente invención se refiere a un procedimiento de presentación de flujos de velocidad adaptativa.
La internet se está convirtiendo rápidamente en el procedimiento preferido para distribuir archivos multimedia a los usuarios finales. Actualmente, es posible descargar música o video a las computadoras, a los teléfonos celulares o, prácticamente, a cualquier dispositivo con capacidad habilitada en red. Muchos reproductores portátiles de elementos multimedia están equipados con conexiones de red y habilitados para reproducir música o videos. Los archivos de música o videos (en adelante «archivos multimedia») se pueden almacenar de manera local en el reproductor de elementos multimedia o en la computadora, o se pueden transmitir o descargar desde un servidor.
«Elementos multimedia en flujo continuo (streaming)» se refiere a la tecnología que suministra contenido a una velocidad suficiente como para presentar los elementos multimedia a un usuario en tiempo real a medida que se reciben los datos. Los datos se pueden almacenar en la memoria de manera temporal hasta que se reproducen y posteriormente se pueden eliminar. El usuario tiene la inmediata satisfacción de ver el contenido solicitado sin esperar que el archivo multimedia se descargue por completo. Desafortunadamente, la calidad del audio/video que se puede recibir para la presentación en tiempo real está restringida por el ancho de banda disponible de la conexión de red del usuario. Streaming se puede utilizar para suministrar contenido a petición (grabado previamente) o desde difusiones en vivo.
De manera alternativa, los archivos multimedia se pueden descargar y almacenar en dispositivos de almacenamiento persistentes, como por ej., un disco duro o un almacenamiento óptico, para una posterior presentación. La descarga completa de los archivos multimedia puede tomar grandes cantidades de tiempo según la conexión de red. Una vez descargados, sin embargo, el contenido se puede ver de forma repetida en cualquier momento o en cualquier lugar. Los archivos multimedia preparados para descarga usualmente están codificados con un audio/video de calidad superior a los que se pueden suministrar en tiempo real. En general, a los usuarios no les gusta esta opción, ya que tienden a querer ver u oír el archivo multimedia de manera instantánea.
Streaming ofrece la ventaja del acceso inmediato al contenido pero actualmente sacrifica calidad en comparación con la descarga de un archivo del mismo contenido. Streaming proporciona, además, la oportunidad para el usuario de seleccionar diferente contenido para ver sobre una base adhoc, mientras que la descarga está, por definición, restringida para recibir una selección de contenido específico en su totalidad o de ningún modo. La descarga soporta, además, el rebobinado, el avance rápido y las operaciones de búsqueda directa, mientras que el streaming no puede soportar plenamente estas funciones. Streaming es, además, vulnerable a los fallos o a la congestión de la red.
Otra tecnología, conocida como «descargas progresivas», intenta combinar las fortalezas de las dos tecnologías anteriores. Cuando se inicia una descarga progresiva, comienza la descarga del archivo multimedia, y el reproductor de elementos multimedia espera para comenzar la reproducción hasta que haya suficiente archivo descargado, de modo que la reproducción pueda comenzar con la esperanza de que el recordatorio del archivo será descargado completamente antes de que la reproducción «se ponga al día». Este período de espera antes de la reproducción puede ser sustancial según las condiciones de la red y, por lo tanto, no es una solución completa o totalmente aceptable para el problema de la presentación de elementos multimedia en una red.
En general, existen tres desafíos básicos con respecto al transporte de datos que se transmiten a lo largo de la red como por ej., la internet que tiene una cantidad variada de pérdida de datos. El primer desafío es la confiabilidad. La mayoría de las soluciones de transmisión utilizan una conexión TCP, o un «circuito virtual» para transmitir datos. Una conexión TCP proporciona un mecanismo de entrega garantizado de modo que los datos que se envían desde un punto de conexión serán entregados en el destino, incluso si las partes se pierden y se vuelven a transmitir. Un corte en la continuidad de una conexión TCP puede tener serias consecuencias cuando los datos se deben entregar en tiempo real. Cuando un adaptador de red detecta retrasos o pérdidas en una conexión TCP, el adaptador «reduce la potencia» de los intentos de transmisión durante un momento y lentamente reanuda el paso de transmisión original. Este comportamiento es un intento de aliviar la congestión percibida. Dicha reducción de velocidad es perjudicial para la experiencia visual o auditiva del usuario y, por lo tanto, no es aceptable.
El segundo desafío para el transporte de datos es la eficiencia. La eficiencia se refiere a lo bien que utiliza el usuario el ancho de banda disponible para la entrega del flujo de contenido. Esta medida está directamente relacionada con la confiabilidad de la conexión TCP. Cuando la conexión TCP está sufriendo de problemas de confiabilidad da lugar a una pérdida de la utilización del ancho de banda. Algunas veces, la medida de la eficiencia varía repentinamente y puede impactar enormemente en la experiencia visual.
El tercer desafío es la latencia. La latencia es la medida del tiempo desde el punto de vista del cliente, del intervalo entre el momento en que se emite la solicitud y el momento en que comienzan a llegar los datos de respuesta. Este valor se ve afectado por la confiabilidad y la eficiencia de la conexión de red, y el tiempo de procesamiento requerido por el origen para preparar la respuesta. Un servidor ocupado o sobrecargado, por ejemplo, tomará más tiempo para procesar una solicitud. Como así también afecta el tiempo de partida de una solicitud particular, la latencia tiene un impacto significativo sobre el rendimiento de la red de TCP.
El documento EP 1298931 A2 divulga un procedimiento para transmitir contenido multimedia desde una pluralidad de copias del contenido multimedia, cada copia tiene diferentes parámetros de codificación que están almacenados en una pluralidad de servidores. Un cliente que recibe un flujo multimedia puede cambiar a una copia, correspondiente a una calidad diferente almacenada en un servidor diferente, especificando un rango de bytes del contenido multimedia almacenado en el servidor diferente para continuar recibiendo el flujo desde dicho servidor diferente.
El documento US 2002/0144276 A1 divulga un sistema y un procedimiento para entregar contenido transmitido sobre una red. Un usuario puede cambiar el flujo recibido especificando a un servidor un nivel de calidad deseado diferente y una posición de reproducción del archivo que está codificado en el nivel de calidad deseado, para recibir el flujo desde esta posición y hasta el final del archivo o hasta que otro nivel de calidad y posición sea solicitado por el cliente.
A partir de la discusión anterior, es evidente que existe una necesidad de un aparato, un sistema y un procedimiento que alivie los problemas de confiabilidad, eficiencia y latencia. Además, este tipo de aparato, sistema, y procedimiento ofrecería una vista instantánea junto con la capacidad de avance rápido, rebobinado, búsqueda directa y exploración de múltiples flujos. Ventajosamente, este aparato, sistema y procedimiento utilizaría múltiples conexiones entre una fuente y el destino, solicitando flujos de velocidad de bits variada según las condiciones de la red.
La presente invención busca responder a los problemas en la técnica que no han sido resueltos completamente por los sistemas de distribución digital de contenido multimedia actualmente disponibles.
Las realizaciones de la invención se describirán, de aquí en adelante, por medio de un ejemplo, con referencia a los dibujos que acompañan, en los cuales:
La figura 1 es un diagrama de bloque esquemático que ilustra un sistema para el cambio de la velocidad adaptativa del contenido de streaming;
La figura 2a es un diagrama de bloque esquemático que ilustra gráficamente un archivo de contenido;
La figura 2b es un diagrama de bloque esquemático que ilustra una pluralidad de flujos que tienen grados variables de calidad y ancho de banda;
La figura 2c es un diagrama de bloque esquemático que ilustra un flujo dividido en una pluralidad de pequeños flujos (streamlets);
La figura 3 es un diagrama de bloque esquemático que ilustra un módulo de contenido;
La figura 4 es un diagrama de bloque esquemático que ilustra gráficamente un módulo de cliente;
La figura 5 es un diagrama de flujo esquemático que ilustra un procedimiento para el procesamiento del contenido; La figura 6 es un diagrama de flujo esquemático que ilustra un procedimiento para la reproducción de una pluralidad de streamlets; y
La figura 7 es un diagrama de flujo esquemático que ilustra un procedimiento para solicitar streamlets dentro de un entorno de transmisión de contenido de velocidad adaptativa.
Muchas de las unidades funcionales que se describen en esta memoria descriptiva han sido marcadas como módulos, a fin de enfatizar más en particular su independencia de implementación. Por ejemplo, se puede implementar un módulo como un circuito de hardware que comprende circuitos VLSI habituales o arreglos de compuertas, semiconductores disponibles en el comercio como por ej., chips lógicos, transistores, y otros componentes discretos. Un módulo puede ser implementado en dispositivos de hardware programables como por ej., los arreglos de compuertas programables en el campo, la matriz lógica programable, los dispositivos lógicos programables, o similares.
Los módulos se pueden implementar, además, en software para la ejecución mediante varios tipos de procesadores. Un módulo identificado de código ejecutable puede comprender, por ejemplo, uno o más bloques físicos o lógicos de instrucciones de computadora, los cuales pueden estar organizados, por ejemplo, en forma de un objeto, un procedimiento o una función. No obstante, los ejecutables de un módulo identificado no deben estar localizados físicamente, pero pueden comprender instrucciones dispares almacenadas en diferentes ubicaciones, las cuales, cuando se unen de manera lógica, comprenden el módulo y obtienen el propósito establecido para el módulo.
En verdad, un módulo de código ejecutable puede ser una única instrucción, o muchas instrucciones, y pueden, incluso, estar distribuidas en varios segmentos de códigos diferentes, entre diferentes programas y a lo largo de varios dispositivos de memoria. De manera similar, los datos operativos pueden estar identificados e ilustrados, en la presente memoria, dentro de módulos, y pueden estar representados mediante cualquier forma adecuada, y organizados dentro de un tipo adecuado de estructura de datos. Los datos operativos pueden ser recolectados como un conjunto de datos simples, o pueden estar distribuidos en diferentes ubicaciones en diferentes dispositivos de almacenamiento, y pueden existir, al menos parcialmente, simplemente como señales electrónicas en un sistema o en una red.
La referencia a un medio que soporta una señal puede tomar cualquier forma capaz de generar una señal, lo que origina una señal a ser generada, u origina la ejecución de un programa de instrucciones legibles por máquina en un aparato de procesamiento digital. Un medio que soporta una señal puede estar representado por una línea de transmisión, un disco compacto, un disco de video digital, una cinta magnética, un disco removible Bernoulli, un disco magnético, una tarjeta perforada, una memoria flash, circuitos integrados, u otro dispositivo de memoria de un aparato de procesamiento digital.
Más aún, los rasgos, las estructuras o las características que se describen en la invención se pueden combinar de cualquier manera adecuada en una o más realizaciones. En la siguiente descripción, se proporcionan numerosos detalles específicos, como por ej., ejemplos de programación, módulos de software, selecciones del usuario, transacciones de red, consultas de base de datos, estructuras de bases de datos, módulos de hardware, circuitos de hardware, chips de hardware, etc., para proporcionar un entendimiento completo de las realizaciones de la invención. En otros ejemplos, las estructuras, los materiales o las operaciones bien conocidas no se muestran ni se describen en detalle para evitar los aspectos ocultos de la invención.
La figura 1 es un diagrama de bloque esquemático que ilustra un sistema 200 para el cambio de la velocidad adaptativa dinámica del contenido de streaming; El sistema 100 comprende un servidor de contenido 102 y un usuario final 104. El servidor de contenido 102 y la estación del usuario final 104 pueden estar acoplados mediante una red de comunicaciones de datos. La red de comunicaciones de datos puede incluir la internet 106 y las conexiones 108 a la internet 106. De forma alternativa, el servidor de contenido 102 y el usuario final 104 pueden estar ubicados en una red de área local común, una red de área inalámbrica, una red de área local virtual, o similar. La estación de usuario final 104 puede comprender una computadora personal (PC), un sistema de entretenimiento configurado para comunicar mediante una red, o un dispositivo electrónico portátil configurado para presentar contenido.
El sistema 100 incluye, además, un editor 110 y una servidor web 116. El editor 110 puede ser un creador o distribuidor de contenido. Por ejemplo, si el contenido a ser transmitido fuera una transmisión de un programa de televisión, el editor 110 podría ser un canal de red de televisión o de cable como por ej., NBC# o MTV#. El contenido puede ser transferido en la internet 106 del servidor de contenido 102 donde el contenido es recibido mediante un módulo de contenido 112. El módulo de contenido 112 puede estar configurado para recibir, procesar y almacenar contenido. En una realización, al contenido procesado se accede mediante un módulo de cliente 114 que está configurado para reproducir el contenido en la estación de usuario final 104. En una realización adicional, el módulo de cliente 114 está configurado para recibir diferentes partes de un flujo de contenido desde una pluralidad de ubicaciones de manera simultánea. Por ejemplo, el módulo de cliente 114 puede solicitar y recibir contenido desde una cualquiera de la pluralidad de servidores web 116. La figura 2a es un diagrama de bloque esquemático que ilustra gráficamente un archivo de contenido 200. En una realización, el archivo de contenido 200 es distribuido mediante el editor 110. El archivo de contenido 200 puede comprender una transmisión de televisión, eventos deportivos, películas, música, conciertos, etc. El archivo de contenido 200 puede ser, además, contenido en vivo o contenido de archivo. El archivo de contenido 200 puede comprender video y audio no comprimido, o de manera alternativa, video o audio. Además, el archivo de contenido 200 puede estar comprimido. Ejemplos de un archivo de contenido comprimido 200 incluyen, pero sin estar limitados, contenido codificado DivX®, Windows Media Video 9®, Quicktime 6.5 Sorenson 3® o Quicktime 6.5/ MPEG-4®.
La figura 2b es un diagrama de bloque esquemático que ilustra una pluralidad de flujos 202 que tienen grados variables de calidad y ancho de banda; La pluralidad de flujos 202 comprende un flujo de baja calidad 204, un flujo de calidad media 206 y un flujo de calidad alta 208. Cada uno de los flujos 204, 206, 208 es una copia del archivo de contenido 200 que está codificado y comprimido a variadas velocidades de bits. Por ejemplo, el flujo de baja calidad 204 puede estar codificado y comprimido hasta una velocidad de bits de 100 kilobits por segundo (kbps), el flujo de calidad media 206 puede estar codificado y comprimido hasta un velocidad de bits de 200 kbps, y el flujo de calidad alta 208 puede estar codificado y comprimido hasta 600 kbps.
La figura 2c es un diagrama de bloque esquemático que ilustra un flujo 210 dividido en una pluralidad de streamlets 212. Como se utiliza en la presente memoria, streamlet se refiere a cualquier parte dimensionada del archivo de contenido 200. Cada streamlet 212 puede comprender una parte del contenido que está albergado en el flujo 210, encapsulado como un objeto multimedia independiente. El contenido en un streamlet 212 puede tener un único índice de tiempo con relación al inicio del contenido que está albergado en el flujo 210. En una realización, el contenido que está albergado en cada streamlet 212 tiene una duración de dos segundos. Por ejemplo, un streamlet 0 puede tener un índice de tiempo de 00:00 que representa el inicio de la reproducción del contenido, y el streamlet 1 puede tener un índice de tiempo de 00:02, etc. De forma alternativa, la duración de tiempo de los streamlets 212 puede ser cualquier duración más pequeña que la duración completa de reproducción del contenido en el flujo 210. Los streamlets 212 pueden estar divididos de acuerdo con el tamaño en lugar de un índice de tiempo.
La figura 3 es un diagrama de bloque esquemático que ilustra en mayor detalle el módulo de contenido 112. El módulo de contenido 112 puede comprender un módulo de flujo 302, un módulo de streamlet 304, un módulo codificador 306, una base de datos de streamlets 308 y el servidor web 116. En una realización, el módulo de flujo 302 está configurado para recibir el archivo de contenido 200 desde el editor 110 y generar la pluralidad de flujos 202 de variadas calidades. El archivo de contenido original 200 desde el editor puede ser digital en su forma y puede comprender contenido que tiene una velocidad de bits alta, como por ejemplo 2 mbps. El contenido puede ser transferido desde el editor 110 al módulo de contenido 112 en la internet 106. Dichas transferencias de datos son bien conocidas en la técnica y no requieren mayor discusión en la presente memoria. De forma alternativa, el contenido puede comprender una transmisión capturada.
La pluralidad de flujos 202 puede comprender el flujo de baja calidad 204, el flujo de calidad media 206 y el flujo de calidad alta 208. De forma alternativa, la pluralidad de flujos 202 puede comprender cualquier número de flujos que se considere necesarios para acomodar el ancho de banda del usuario final. El módulo de streamlet 304 puede estar configurado para recibir la pluralidad de flujos 202 desde el módulo de flujo y generar una pluralidad de flujos 312, cada flujo comprende una pluralidad de streamlets 212. Como se describe con referencia a la figura 2c cada streamlet 212 puede comprender una parte predefinida del flujo. El módulo codificador 306 está configurado para codificar cada streamlet de la pluralidad de flujos 312 y almacenar los streamlets en la base de datos de streamlets 308. El módulo de codificación 306 puede utilizar esquemas de codificación como por ej., DivX@, Windows Media Video 9®, Quicktime 6.5 Sorenson 3® o Quicktime 6.5/ MPEG-4 ®. De forma alternativa, se puede emplear un esquema de codificación personalizado.
El módulo de contenido 112 puede incluir, además, un módulo de metadatos 312 y una base de datos de metadatos 314. Los metadatos comprenden información de contenido que se puede buscar estática. Por ejemplo, los metadatos incluyen, pero sin estar limitados, fecha al aire del contenido, título, actrices, actores, extensión y nombre del episodio. Los metadatos son generados por el editor 110 y pueden estar configurados para definir un entorno de usuario final. El editor 100 puede definir un entorno de navegación del usuario final para el contenido que incluye menús, miniaturas, barras laterales, publicidad, etc. Además, el editor 110 puede definir funciones como por ej., avance rápido, rebobinado, pausa y reproducción que se pueden utilizar con el archivo de contenido 200. El módulo de metadatos 312 está configurado para recibir los metadatos desde el editor 110 y almacenar los metadatos en la base de datos de metadatos 314. En una realización adicional, el módulo de metadatos 312 está configurado para hacer interfaz con el módulo de cliente 114, lo que permite al módulo de cliente 114 buscar el contenido basado en, al menos, una de una pluralidad de criterios de metadatos. Además, los metadatos pueden ser generados por el módulo de contenido 112 a través de la definición manual de los procesos automatizados.
Una vez que los streamlets 212 han sido recibidos y procesados, el módulo de cliente 114 puede solicitar streamlets 212 mediante el uso de HTTP desde el servidor web 116. Dicho uso de las solicitudes iniciadas en el lateral del cliente no requiere configuración adicional de firewalls. Además, dado que el módulo de cliente 114 inicia la solicitud, el servidor web 116 solo debe recuperar y atender el streamlet solicitado. En una realización adicional, el módulo de cliente 114 puede estar configurado para recuperar los streamlets 212 desde una pluralidad de servidores web 310. Cada servidor web 116 puede estar ubicado en varias ubicaciones a lo largo de la internet 106. Los streamlets 212 son esencialmente archivos estáticos. Como tal, ningún servidor multimedia especializado o inteligencia del lado del servidor es necesaria para que el módulo de cliente 114 recupere los streamlets 212. Los streamlets 212 pueden ser atendidos por el servidor web 116 o almacenados por los servidores de caché de los proveedores de servicios de internet (ISP) o cualquier otro operador de infraestructura de red, y pueden ser atendidos por el servidor de caché. El uso de servidores de caché es bien conocido por los expertos en la técnica, y no se discutirá en detalle en la presente memoria. De este modo, se proporciona una solución muy expansible que no se encuentra entorpecida por cantidades masivas de solicitudes del módulo de cliente 114 hacia el servidor web 116 en cualquier ubicación específica.
La figura 4 es un diagrama de bloque esquemático que ilustra gráficamente un módulo de cliente 114. El módulo de cliente 114 puede comprender un módulo controlador del agente 402, un módulo de caché de streamlet 404 y un módulo controlador de la red 406. En una realización, el módulo controlador del agente 402 está configurado para hacer interfaz con un visor 408 y transmitir los streamlets 212 hacia el visor 408. En una realización adicional, el módulo de cliente 114 puede comprender una pluralidad de módulos controladores del agente 402. Cada módulo controlador del agente 402 puede estar configurado para hacer interfaz con un visor 408. De forma alternativa, el módulo controlador del agente 402 puede estar configurado para hacer interfaz con una pluralidad de visores 408. El visor 408 puede ser un reproductor multimedia (que no se muestra) que opera en una PC o en un dispositivo electrónico manual.
El módulo controlador del agente 402 está configurado para seleccionar un nivel de calidad de los streamlets para transmitir hacia el visor 408. El módulo controlador del agente 402 solicita flujos de calidad inferiores y superiores basado en la observación continua de los intervalos de tiempo entre los sucesivos tiempos de recepción de cada streamlet solicitado. El procedimiento de solicitud de los flujos de calidad superiores o inferiores se discutirán en mayor detalle a continuación con referencia a la figura 7.
El módulo controlador del agente 402 puede estar configurado para recibir los comandos del usuario desde el visor 408. Estos comandos pueden incluir la reproducción, el avance rápido, el rebobinado, la pausa y la detención. En una realización, el módulo controlador del agente 402 solicita los streamlets 212 desde el módulo de caché del streamlet 404 y arregla los streamlets recibidos 212 en un módulo de almacenamiento provisional 409. El módulo de almacenamiento provisional 409 puede estar configurado para arreglar los streamlets 212 en el orden del ascenso del tiempo de reproducción. En la realización que se describe, los streamlets 212 están numerados 0, 1, 2, 3, 4, etc. Sin embargo, cada streamlet 212 puede estar identificado con un nombre de archivo único.
Además, el módulo controlador del agente 402 puede estar configurado para anticipar las solicitudes del streamlet 212 y solicitar previamente los streamlets 212. Al solicitar previamente los streamlets 212, el usuario puede avanzar rápido, omitir de manera aleatoria o retroceder a través del contenido, y no experimentar retraso en el almacenamiento en búfer. En una realización adicional, el módulo controlador del agente 402 puede solicitar los streamlets 212 que corresponden a los intervalos del índice de tiempo de 30 segundos dentro del tiempo de reproducción total del contenido. De forma alternativa, el módulo controlador del agente 402 puede solicitar streamlets en cualquier intervalo inferior a la extensión del índice de tiempo. Esto permite la capacidad de «inicio rápido» sin espera del almacenamiento en búfer cuando se inicia o se avanza rápido a través del archivo de contenido 200. El módulo controlador del agente 402 puede estar configurado para solicitar previamente los streamlets 212 correspondientes a los puntos del índice especificados dentro del contenido o dentro de otro contenido, anticipándose al usuario final 104 que está seleccionando contenido para ver.
El módulo de caché del streamlet 404 está configurado para recibir solicitudes de streamlet 212 desde el módulo controlador del agente 402. Al cabo de recibir una solicitud, el módulo de caché de streamlet 404 comprueba, en primer lugar, el caché de un streamlet 410 para verificar si el streamlet 212 está presente. En una realización adicional, el módulo de caché del streamlet 404 maneja las solicitudes del streamlet 212 desde una pluralidad de módulos controladores del agente 402. De forma alternativa, un módulo de caché del streamlet 404 se puede proporcionar para cada módulo controlador del agente 402. Si el streamlet solicitado 212 no está presente en el caché del streamlet 410, la solicitud es enviada al módulo controlador de la red 406. A fin de permitir las habilidades de avance rápido y rebobinado, el módulo de caché del streamlet 404 está configurado para almacenar la pluralidad de streamlets 212 en el caché del streamlet 410 durante un periodo de tiempo especificado después de que se ha visto el streamlet 212. No obstante, una vez que se han eliminado los streamlets 212, estos pueden ser solicitados nuevamente desde el servidor web 116.
El módulo controlador de la red 406 puede estar configurado para recibir las solicitudes de streamlets desde el módulo de caché del streamlet 404 y abrir una conexión hacia el servidor web 116 u otra base de datos del streamlet remota 212 (que no se muestra). El módulo controlador de la red 406 abre una conexión TCP/IP al servidor web 116 y genera una solicitud HTTP GET estándar para el streamlet solicitado 212. Al cabo de recibir el streamlet solicitado 212, el módulo controlador de la red 406 pasa el streamlet 212 hacia el módulo de caché del streamlet 404 donde es almacenado en el caché del streamlet 410. En una realización adicional, el módulo controlador de la red 406 está configurado para procesar y solicitar una pluralidad de streamlets 212 de manera simultánea. El módulo controlador de la red 406 puede estar configurado, además, para solicitar una pluralidad de streamlets, donde cada streamlet 212 es solicitado, posteriormente, en múltiples partes.
Las solicitudes de streamlet pueden comprender la solicitud de piezas de cualquier archivo de streamlets. Al dividir el streamlet 212 en piezas o partes más pequeñas permite, de manera beneficiosa, un aumento en el potencial de eficiencia, y además, elimina los problemas vinculados con múltiples solicitudes de streamlets completos que comparten el ancho de banda en cualquier momento dado. Esto se logra mediante el uso de conexiones TCP/IP paralelas para las piezas de los streamlets 212. En consecuencia, se solucionan los problemas de eficiencia y pérdida de red, y los streamlets llegan con una sincronización más útil y predecible.
El módulo de cliente 114 puede estar configurado para utilizar múltiples conexiones TCP entre el módulo de cliente 114 y el servidor web 116 o el caché web. La intervención de un caché puede ser transparente para el cliente o ser configurada por el cliente como un caché directo. Al solicitar más de un streamlet 212 a la vez de una manera que se denomina «recupero paralelo», o más de una parte de un streamlet 212 a la vez, la eficiencia se incrementa significativamente y se elimina la latencia virtualmente. En una realización adicional, el módulo de cliente permite un máximo de tres solicitudes de streamlets 212 pendientes. El módulo de cliente 114 puede mantener conexiones TCP abiertas adicionales como de repuesto para estar disponibles en caso de que otra conexión falle. Las solicitudes de streamlet 212 rotan entre todas las conexiones abiertas para mantener la lógica del flujo TCP para cualquier conexión particular que pueda entrar en un modo de inicio lento o cerrado. Si el módulo controlador de la red 406 ha solicitado un streamlet 212 en múltiples partes, cada parte fue solicitada en conexiones TCP/IP mutuamente independientes, el módulo controlador de la red 406 vuelve a ensamblar las partes para presentar un streamlet 212 completo para ser utilizado por todos los otros componentes del módulo de cliente 114.
Cuando una conexión TCP se cae completamente, una nueva solicitud puede ser enviada en una conexión diferente para el mismo streamlet 212. Si una solicitud no es cumplida a tiempo, una solicitud redundante puede ser enviada en una conexión diferente para el mismo streamlet 212. Si la primera respuesta a la solicitud de streamlet llega antes de la respuesta a la solicitud redundante, la solicitud redundante puede ser abortada. Si la respuesta a la solicitud redundante llega antes de la respuesta a la primera solicitud, la primera solicitud puede ser abortada.
Varias solicitudes de streamlet 212 pueden ser enviadas en una única conexión TCP, y las respuestas fluyen hacia atrás en orden parejo a lo largo de la misma conexión. Esto elimina todo excepto la latencia de la primera solicitud. Dado que siempre se transmiten múltiples respuestas, la latencia de procesamiento de cada nueva respuesta de streamlet 212 después de la primera no es un factor en rendimiento. Esta técnica es conocida en la industria como «canalización». La canalización ofrece eficiencia en el procesamiento de respuesta a la solicitud eliminando la mayoría de los efectos de la latencia de la solicitud. Sin embargo, la canalización tiene serias vulnerabilidades. Los retrasos en la transmisión afectan todas las respuestas. Si la única conexión TCP falla, todas las solicitudes y respuestas pendientes se pierden. La canalización origina una dependencia en serie entre las solicitudes.
Múltiples conexiones TCP pueden ser abiertas entre el módulo de cliente 114 y el servidor web 116 para obtener los beneficios de la eficiencia de reducción de la latencia de la canalización mientras se mantiene la independencia de cada solicitud de streamlet 212. Varias solicitudes de streamlet 212 se pueden enviar de manera concurrente, siendo cada solicitud enviada en una conexión TCP mutuamente distinta. Esta técnica es etiquetada como «canalización virtual» y es una innovación de la presente invención. Múltiples respuestas pueden estar en tránsito de manera concurrente, asegurando que siempre se utilice un ancho de banda de comunicación entre el módulo de cliente 114 y el servidor web 116. La canalización virtual elimina las vulnerabilidades de la canalización tradicional. Un retraso en una respuesta o una falla completa de una respuesta no afecta la transmisión de otras respuestas porque cada respuesta ocupa una conexión TCP independiente. Cualquier ancho de banda de transmisión que no esté en uso por una de las respuestas múltiples (ya sea debido a retrasos o a la falla en la conexión TCP) puede ser utilizado por otras respuestas pendientes. Una única solicitud de streamlet 212 puede ser emitida para un streamlet 212 completo o se pueden emitir múltiples solicitudes, cada una para una parte diferente o una porción del streamlet. Si el streamlet es solicitado en varias partes, las partes se pueden volver a combinar mediante el streamlet del módulo de cliente 114.
A fin de mantener un balance apropiado entre la utilización del ancho de banda maximizado y el tiempo de respuesta, la emisión de nuevas solicitudes de streamlet debe ser cronometrada de modo que el servidor web 116 no transmita la respuesta antes de que el módulo de cliente 114 haya recibido completamente una respuesta a una de las solicitudes de streamlet previamente pendientes. Por ejemplo, si tres solicitudes de streamlet 212 están pendientes, el módulo de cliente 114 debe emitir la siguiente solicitud poco antes de que una de las tres respuestas sea totalmente recibida y «fuera del canal». En otras palabras, la sincronización de la solicitud es ajustada para mantener tres respuestas en tránsito. El uso compartido del ancho de banda entre cuatro respuestas disminuye el tiempo de respuesta neto de las otras tres respuestas. El ajuste de sincronización se puede calcular dinámicamente por observación, y la sincronización de la solicitud puede ser ajustada en consecuencia para mantener el balance apropiado de eficiencia y los tiempos de respuesta.
Los diagramas de flujo esquemáticos que siguen a continuación se establecen, en general, como diagramas de flujo lógicos. Como tal, el orden descrito y las etapas marcadas son indicativos de una realización del procedimiento presentado. Se pueden concebir otras etapas y procedimientos que son equivalentes en función, lógica o efecto para una o más etapas, o sus porciones, del procedimiento que se ilustra. Además, el formato y los símbolos empleados se proporcionan para explicar las etapas lógicas del procedimiento y se entiende que no limitan el alcance del procedimiento. Si bien se pueden emplear varios tipos de flechas y líneas en los diagramas de flujo, se entiende que no limitan el alcance del procedimiento correspondiente. En verdad, algunas flechas y otros conectores se pueden utilizar para indicar únicamente el flujo lógico del procedimiento. Por ejemplo, una flecha puede indicar un período de espera o de monitoreo de una duración no especificada entre las etapas enumeradas del procedimiento descrito. Además, el orden en el cual se produce un procedimiento particular puede o no adherir estrictamente al orden de las etapas correspondientes que se mostraron.
La figura 5 es un diagrama de flujo esquemático que ilustra un procedimiento 500 para el procesamiento del contenido. El procedimiento 500 comienza 502 y el módulo de contenido 112 recibe el contenido 504 desde el editor 110. Recibir contenido 504 puede comprender la recepción 504 de una copia digital del archivo de contenido 200 o la digitalización de una copia física del archivo de contenido 200. De forma alternativa, recibir 504 el contenido puede comprender capturar una transmisión de radio o de televisión. Una vez recibido 504, el módulo de flujo 302 genera 506 una pluralidad de flujos 202, cada flujo 202 tiene una calidad diferente. La calidad puede ser predefinida, o establecida automáticamente de acuerdo con el ancho de banda del usuario final, o en respuesta a las guías prediseñadas del editor.
El módulo del streamlet 304 recibe los flujos 202 y genera 508 una pluralidad de streamlets 212. Generar 508 streamlets comprende dividir el flujo 202 en una pluralidad de dos segundos streamlets 212. De forma alternativa, los streamlets pueden tener alguna longitud inferior o igual a la longitud del flujo 202. El módulo codificador 306 codifica 510 los streamlets de acuerdo con un algoritmo de compresión. En una realización adicional, el algoritmo comprende un códec privado como por ej. WMV9®. El módulo codificador 306 almacena 512 los streamlets codificados en la base de datos del streamlet 308. Una vez almacenados 512, el servidor web 116 puede atender 514 los streamlets. En una realización, atender 514 los streamlets comprende recibir solicitudes de streamlet desde el módulo de cliente 114, recuperar el streamlet solicitado desde la base de datos del streamlet 308, y posteriormente transmitir el streamlet al módulo de cliente 114. El procedimiento 500 finaliza 516.
La figura 6 es un diagrama de flujo esquemático que ilustra un procedimiento 600 para ver una pluralidad de streamlets. El método 600 comienza y un módulo controlador del agente 402 se proporciona 604 y se vincula con un visor 408 y está provisto con un módulo de almacenamiento provisional 409. El módulo controlador del agente 402 solicita 606, a continuación, un streamlet desde el módulo de caché del streamlet 404. De forma alternativa, el módulo controlador del agente 402 puede solicitar 606, de manera simultánea, una pluralidad de streamlets desde el módulo de caché del streamlet 404. Si el streamlet es almacenado 608 localmente en el caché del streamlet 410, el módulo de caché del streamlet 404 recupera 610 el streamlet y envía el streamlet al módulo controlador del agente 402. Al cabo de recuperar 610 o recibir un streamlet, el módulo controlador del agente 402 realiza 611 una determinación si debe o no cambiar a un flujo 202 de calidad superior o inferior. Esta determinación se describirá a continuación en mayor detalle con referencia a la figura 7.
El módulo de almacenamiento provisional 409 arregla 612 los streamlets en el orden apropiado, y el módulo controlador del agente 402 entrega 614 los streamlets al visor 408. En una realización adicional, la entrega 614 de streamlets al usuario final comprende la reproducción del video y/o los streamlets en el visor 408. Si los streamlets no se almacenan 608 localmente, la solicitud de streamlet pasa al módulo controlador de la red 406. El módulo controlador de la red 406 solicita 616, a continuación, el streamlet desde el servidor web 116. Una vez que el streamlet es recibido, el módulo controlador de la red 406 pasa el streamlet al módulo de caché del streamlet 404. El módulo de caché del streamlet 404 archiva 618 el streamlet. De forma alternativa, el módulo de caché del streamlet 404 archiva 618 el streamlet y pasa el streamlet al módulo controlador del agente 402 y el procedimiento 600 continúa desde la operación 610 como se describió anteriormente.
Con referencia ahora a la figura 7, se muestra un diagrama de flujo esquemático que ilustra un procedimiento 700 para solicitar streamlets dentro de un entorno de transmisión de contenido cambiando la velocidad adaptativa. El procedimiento 700 se puede utilizar en una realización como la operación 611 de la figura 6. El procedimiento 700 comienza y el módulo controlador del agente 402 recibe 704 un streamlet como se describió anteriormente con referencia a la figura 6. El módulo controlador del agente 402 monitorea 706 el tiempo de recepción del streamlet solicitado. En una realización, el módulo controlador del agente 402 monitorea los intervalos de tiempo 0 entre los tiempos de recepción sucesivos para cada respuesta al streamlet. El orden de las respuestas con relación al orden de sus correspondientes solicitudes no es relevante.
Dado que las características del comportamiento de la red fluctúan, algunas veces de forma bastante repentina, cualquier A dado puede variar sustancialmente uno de otro. A fin de compensar esta fluctuación, el módulo controlador del agente 402 calcula 708 una relación de rendimiento r a través de una ventana de muestras n para los streamlets de extensión de reproducción S. La relación de rendimiento r se calcula mediante el uso de la ecuación.
Figure imgf000008_0001
Debido al procesamiento del streamlet múltiple simultáneo, y a fin de juzgar mejor la tendencia central de la relación de rendimiento r, el módulo controlador del agente 402 puede calcular un medio geométrico, o de forma alternativa, un algoritmo promediado equivalente, a lo largo de una ventana de tamaño m, y obtener un factor de rendimiento 9.
Figure imgf000009_0001
La determinación de la política acerca de si se debe o no realizar el cambio ascendente 710 de la calidad de reproducción, comienza mediante la comparación tpcurrent con un umbral desencadenador ®up. Si ycurrent > ®up, entonces se puede considerar un cambio ascendente al siguiente flujo de calidad superior 716. En una realización, el umbral desencadenador ®up se determina mediante una combinación de factores que se relacionan con el margen anticipado de lectura actual (es decir, la cantidad de streamlets disponibles de manera contigua que han sido dispuestos de manera secuencial mediante el módulo de almacenamiento provisional 409 para la presentación en el índice de tiempo de reproducción actual), y un margen de seguridad mínimo. En una realización, el margen de seguridad mínimo puede ser 24 segundos. Cuánto más pequeño el margen anticipado de lectura, más debe el ®up desalentar el cambio ascendente hasta que se pueda establecer un margen anticipado de lectura más grande para soportar las interrupciones de la red. Si el módulo controlador del agente 402 puede sostener 716 la calidad del cambio ascendente, entonces el módulo controlador del agente 402 realizará el cambio ascendente 717 de la calidad, y posteriormente solicitará flujos de calidad más altos. La determinación con respecto a si el uso del flujo de calidad superior es sostenible 716 se realiza mediante la comparación de un estimado del factor de rendimiento del flujo de calidad superior, yhigher, con ®up. Si yhigher > ®up entonces el uso del flujo de calidad superior se considera sostenible. Si la decisión con respecto a si el flujo más alto es o no sostenible 716 es «no», el módulo controlador del agente 402 no intentará realizar el cambio ascendente 717 de la calidad del flujo. Si se ha alcanzado el final del flujo 714, el procedimiento 618 finaliza 716.
Si la decisión acerca de si se debe o no intentar el cambio ascendente 710 es «no», se toma la decisión acerca de si se debe o no realizar el cambio descendente 712. En una realización, un umbral desencadenador ®down se define de manera análoga a ®up. Si tpcurrent > ®down, entonces la calidad del flujo puede ser adecuada, y el módulo controlador del agente 402 no realizar el cambio descendente 718 de la calidad del flujo. No obstante, si tpcurrent <®down, el módulo controlador del agente 402 no realiza el cambio descendente 718 de la calidad del flujo. Si no se ha alcanzado el final del flujo 714, el módulo controlador del agente 402 comienza a solicitar y recibir streamlets de calidad inferior 704 y el procedimiento 618 comienza nuevamente. Por supuesto, las ecuaciones y los algoritmos que se describieron anteriormente son únicamente ilustrativos, y pueden ser reemplazado por soluciones alternativas de monitoreo del streamlet.

Claims (15)

REIVINDICACIONES
1. Un procedimiento de presentación de flujos de velocidad adaptativa, comprendiendo el procedimiento:
transmitir mediante un reproductor multimedia (114) que opera en una estación de usuario final (104) un video desde un conjunto de uno o más servidores (116), en el que cada una de una pluralidad de diferentes copias del video está codificada a una respectiva velocidad de bits diferente y cada copia está codificada como múltiples archivos en el conjunto de servidores, en el que cada uno de los múltiples archivos encapsula, de manera independiente, una parte diferente del video para reproducción, en el que los múltiples archivos a lo largo de las diferentes copias producen las mismas partes del video en reproducción, cada uno de dichos archivos tiene un índice de tiempo que indica la posición del contenido en ese archivo con relación al comienzo del video, de modo que los archivos cuya reproducción es la misma parte del video para cada una de las diferentes copias tienen el mismo índice de tiempo con relación al comienzo del video, y en el que la transmisión comprende:
solicitar mediante el reproductor multimedia (114) una pluralidad de archivos secuenciales de los archivos de una de las copias desde el conjunto de servidores en una o más conexiones del protocolo de control de transmisión (TCP) basado en los índices de tiempo, en el que cada archivo es solicitado de manera individual mediante una o más solicitudes HTTP respectivas en la una o más conexiones TCP;
solicitar automáticamente mediante el reproductor multimedia (114) desde el conjunto de servidores (116) en la una o más conexiones TCP las partes subsiguientes del video, solicitando para cada dicha parte uno de los archivos de una de las copias dependiente de las determinaciones sucesivas del reproductor multimedia para cambiar la calidad de reproducción a una calidad superior o inferior de las diferentes copias, en el que cada archivo es solicitado de manera individual por una o más solicitudes HTTP respectivas en la una o más conexiones TCP, incluyendo dicha solicitud automática,
generar de manera regular (706) un conjunto de uno o más factores indicativos de la capacidad actual para sostener la transmisión del video mediante el uso de los archivos de las diferentes copias, en el que el conjunto de uno o más factores se refiere al rendimiento de la red; y
hacer las sucesivas determinaciones (710, 712) para cambiar la calidad de reproducción basado en, al menos, uno del conjunto de factores para obtener la reproducción continua del video mediante el uso de los archivos de una de las copias de calidad superior determinada como sostenible en ese momento; y
presentar el video mediante la reproducción con el reproductor multimedia en la estación de usuario final de los archivos solicitados en el orden del tiempo de reproducción ascendente.
2. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha solicitud de la pluralidad de archivos secuenciales de los archivos incluye la solicitud de una pluralidad de conexiones TCP.
3. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha realización de las sucesivas determinaciones para cambiar comprende:
un cambio ascendente a una copia de calidad superior de las diferentes copias cuando el, al menos, un factor es mayor que un primer umbral; y
determinar si la reproducción de calidad superior puede ser sostenida.
4. Un procedimiento de acuerdo con la reivindicación 3, en el que dicha realización de las sucesivas determinaciones para cambiar comprende el cambio descendente a una copia de calidad inferior de las diferentes copias cuando el, al menos, un factor es inferior a un segundo umbral.
5. Un procedimiento de acuerdo con la reivindicación 1, que, además, comprende:
recibir la entrada del usuario para habilitar una funcionalidad de una de avance rápido, salto aleatorio y rebobinado; y
solicitar los archivos del video en un índice de tiempo especificado que no es el siguiente tiempo secuencial en la reproducción actual.
6. Un procedimiento de acuerdo con la reivindicación 1,
en el que dicha solicitud de la pluralidad de archivos secuenciaesl de los archivos incluye la solicitud de los archivos de una copia de calidad baja de las diferentes copias para habilitar la reproducción instantánea del video, y en el que dicha solicitud automática incluye el cambio ascendente a una calidad superior de las diferentes copias.
7. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha solicitud de la pluralidad de archivos secuenciales de los archivos incluye la solicitud de una pluralidad de archivos secuenciales de los archivos en las diferentes conexiones de una pluralidad de conexiones TCP.
8. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha presentación comprende disponer de forma secuencial los archivos solicitados de las diferentes copias en el orden del tiempo de reproducción ascendente para la reproducción con el reproductor multimedia en la estación del usuario final.
9. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha solicitud automática incluye la solicitud de subpartes de los archivos en las diferentes conexiones de una pluralidad de conexiones TCP, y en el que dicha presentación incluye volver a ensamblar los archivos de las subpartes recibidas.
10. Un procedimiento de acuerdo con la reivindicación 1, en el que el, al menos, uno del conjunto de factores es indicativo del ancho de banda disponible de una pluralidad de conexiones TCP.
11. Un procedimiento de acuerdo con la reivindicación 1, en el que el, al menos, uno del conjunto de factores es indicativo de la latencia de los archivos solicitados, en el que la latencia es una medida de tiempo entre el momento e que una de las solicitudes se emite y el momento en que los datos de respuesta de la solicitud comienzan a llegar a la estación de usuario final.
12. Un procedimiento de acuerdo con la reivindicación 1, en el que el, al menos, uno del conjunto de factores es indicativo de los intervalos de tiempo entre los tiempos de recepción sucesivos para cada respuesta a los archivos solicitados.
13. Un procedimiento de acuerdo con la reivindicación 1, en el que el, al menos, uno del conjunto de factores es indicativo de los retrasos o de las pérdidas en una o más de una pluralidad de conexiones TCP.
14. Un procedimiento de acuerdo con la reivindicación 1, en el que:
dicha generación de factores comprende:
monitorear los intervalos de tiempo entre los tiempos de recepción sucesivos para cada uno de los archivos solicitados;
calcular una relación de rendimiento actual a lo largo de una ventana actual de los intervalos de tiempo; y
calcular un promedio actual de la relación de rendimiento para obtener un factor de rendimiento actual del conjunto de factores;
dicha realización comprende, además:
comparar el factor de rendimiento actual con un conjunto de uno o más umbrales desencadenadores; y
determinar si realizar el cambio ascendente o el cambio descendente a una calidad superior o inferior de las diferentes copias basado en dicha comparación.
15. Un procedimiento de acuerdo con la reivindicación 1, en el que dicha realización comprende:
comparar un factor de rendimiento actual del conjunto de factores con un conjunto de uno o más umbrales desencadenadores, en el que el conjunto de uno o más umbrales desencadenadores está determinado por una combinación de dos del conjunto de factores con relación a un margen anticipado de lectura actual y un margen de seguridad mínimo, en el que el margen anticipado de lectura actual es una cantidad de archivos de video solicitados dispuestos en forma secuencial, disponibles de manera contigua, recibidos por el reproductor multimedia para la reproducción en un índice de tiempo de reproducción actual; y
determinar si realizar el cambio ascendente o el cambio descendente a una calidad superior o inferior de las diferentes copias basado en dicha comparación.
ES12154559T 2004-04-30 2005-05-02 Procedimiento de presentación de flujos de velocidad adaptativa Active ES2748426T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56683104P 2004-04-30 2004-04-30
US11/116,783 US8868772B2 (en) 2004-04-30 2005-04-28 Apparatus, system, and method for adaptive-rate shifting of streaming content

Publications (1)

Publication Number Publication Date
ES2748426T3 true ES2748426T3 (es) 2020-03-16

Family

ID=35320874

Family Applications (2)

Application Number Title Priority Date Filing Date
ES05744015T Active ES2845901T3 (es) 2004-04-30 2005-05-02 Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming
ES12154559T Active ES2748426T3 (es) 2004-04-30 2005-05-02 Procedimiento de presentación de flujos de velocidad adaptativa

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES05744015T Active ES2845901T3 (es) 2004-04-30 2005-05-02 Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming

Country Status (11)

Country Link
US (5) US8868772B2 (es)
EP (3) EP3822805B1 (es)
JP (1) JP5320740B2 (es)
KR (1) KR101082642B1 (es)
AU (1) AU2005241481A1 (es)
CA (1) CA2564861C (es)
DK (3) DK1743249T3 (es)
ES (2) ES2845901T3 (es)
FI (1) FI3822805T3 (es)
PT (3) PT2479680T (es)
WO (1) WO2005109224A2 (es)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US7080173B2 (en) * 2004-05-27 2006-07-18 Microsoft Corporation Reducing information reception delays
US8621543B2 (en) * 2004-12-08 2013-12-31 Imagine Communications Ltd. Distributed statistical multiplexing of multi-media
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US20060294128A1 (en) * 2005-05-21 2006-12-28 Kula Media Group Enhanced methods for media processing and distribution
EP1911200B1 (en) * 2005-07-29 2009-01-07 British Telecommunications Public Limited Company Network information acquisition
US9654301B2 (en) * 2006-02-13 2017-05-16 Vividas Technologies Pty Ltd Method, system and software product for streaming content
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
WO2008002296A1 (en) 2006-06-27 2008-01-03 Thomson Licensing Support for interactive playback devices for performance aware peer-to-peer video-on-demand service
US20080040757A1 (en) * 2006-07-31 2008-02-14 David Romano Video content streaming through a wireless access point
WO2008028508A1 (en) * 2006-09-07 2008-03-13 Fujitsu Limited Distributed computing and communications protocol
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
US11316688B2 (en) 2006-12-29 2022-04-26 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9569587B2 (en) 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
WO2008086313A1 (en) 2007-01-05 2008-07-17 Divx, Inc. Video distribution system including progressive playback
US7865571B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US7865572B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
EP2210187A4 (en) * 2007-11-14 2011-09-07 Ubstream Ltd SYSTEM AND METHOD FOR ADAPTIVE COUNTER CHANGE IN VIDEO / AUDIOSTREAMING
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
CN101198016A (zh) * 2007-12-05 2008-06-11 中兴通讯股份有限公司 交互式个人电视媒体交付系统的内容发布和存储方法
EP2075935A1 (en) * 2007-12-31 2009-07-01 Motorola, Inc. A method and apparatus for providing uninterrupted media to a user
US9832442B2 (en) 2008-01-15 2017-11-28 Echostar Technologies Llc System and method of managing multiple video players executing on multiple devices
US8190760B2 (en) * 2008-01-15 2012-05-29 Echostar Advanced Technologies L.L.C. System and method of managing multiple video players
US20090193338A1 (en) * 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US9100585B2 (en) * 2008-10-28 2015-08-04 Sony Computer Entertainment Inc. Combined broadcast and backchannel delivery of streaming content
CN105072454B (zh) 2009-01-07 2019-04-19 索尼克Ip股份有限公司 针对在线内容的媒体指南的特定化、集中式、自动化创建
US9015335B1 (en) * 2009-06-17 2015-04-21 Amazon Technologies, Inc. Server side stream switching
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8484368B2 (en) * 2009-10-02 2013-07-09 Disney Enterprises, Inc. Method and system for optimizing download and instantaneous viewing of media files
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
EP2362651A1 (en) 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
EP2360923A1 (en) 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
TWI510066B (zh) * 2010-03-22 2015-11-21 Echostar Technologies Llc 用於安全串流媒體內容之系統和方法
EP2375680A1 (en) 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
US8725947B2 (en) * 2010-05-28 2014-05-13 Microsoft Corporation Cache control for adaptive stream player
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US20130173760A1 (en) * 2010-09-20 2013-07-04 Humax Co., Ltd. Processing method to be implemented upon the occurrence of an expression switch in http streaming
US9479739B2 (en) * 2010-10-04 2016-10-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatuses for adaptive control of streaming
US20120114118A1 (en) * 2010-11-05 2012-05-10 Samsung Electronics Co., Ltd. Key rotation in live adaptive streaming
US20120117261A1 (en) * 2010-11-05 2012-05-10 Nokia Corporation Method and Apparatus for Rate Adaptation for Adaptive HTTP Streaming
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US9247312B2 (en) * 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
EP2477397A1 (en) * 2011-01-12 2012-07-18 Nxp B.V. Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections
CN108366070A (zh) * 2011-03-16 2018-08-03 韩国电子通信研究院 用于提供媒体内容的方法和客户端
US8589996B2 (en) 2011-03-16 2013-11-19 Azuki Systems, Inc. Method and system for federated over-the-top content delivery
FR2975555A1 (fr) 2011-05-18 2012-11-23 Thomson Licensing Methode d'adaptation dynamique du debit de reception et recepteur associe
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US20150304249A1 (en) * 2011-09-06 2015-10-22 Andras Valkó Device and Method for Progressive Media Download with Multiple Layers or Streams
US8751679B2 (en) * 2011-10-07 2014-06-10 Ericsson Television Inc. HTTP adaptive streaming server with automatic rate shaping
US8897753B2 (en) 2011-10-12 2014-11-25 Motorola Mobility Llc Method for retrieving content by a wireless communication device having first and second radio access interfaces, wireless communication device and communication system
US9055136B2 (en) * 2011-10-13 2015-06-09 Qualcomm Incorporated Controlling streaming delay in networks
JP2013105367A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd シンクライアントシステムおよびサーバ装置
EP2791819B1 (en) 2011-12-14 2017-11-01 Level 3 Communications, LLC Content delivery network
EP2813056B1 (en) * 2012-02-06 2019-11-27 Nokia Solutions and Networks Oy Customer experience management interaction with caching
US9716856B2 (en) 2012-03-07 2017-07-25 Echostar Technologies L.L.C. Adaptive bit rate transcode and caching for off air television programming delivery
US20130311614A1 (en) * 2012-05-21 2013-11-21 Motorola Mobility, Inc. Method for retrieving content and wireless communication device for performing same
US9282348B2 (en) * 2012-08-13 2016-03-08 Disney Enterprises, Inc. Content based partitioning of digital media content
CN103702237A (zh) * 2012-09-28 2014-04-02 北京大学 Http流媒体的速率自适方法及装置
US20140297869A1 (en) * 2012-10-11 2014-10-02 Uplynk, LLC Adaptive streaming cost management
US20140108495A1 (en) * 2012-10-11 2014-04-17 Steven A. Benno Adaptive streaming client
US9306860B2 (en) * 2012-10-18 2016-04-05 Giraffic Technologies Ltd. Congestion control method for dynamically maximizing communication link throughout
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US11956499B2 (en) 2013-03-15 2024-04-09 Sling TV L.L.C. Automated replacement of stored digital content
US9756100B2 (en) * 2013-03-15 2017-09-05 Echostar Technologies L.L.C. Placeshifting of adaptive media streams
US9866889B2 (en) 2013-03-15 2018-01-09 Echostar Technologies Llc Asymmetric content delivery of media content
US11564002B2 (en) 2013-03-15 2023-01-24 Sling TV L.L.C. Automated replacement of video program content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US11778257B2 (en) 2013-03-15 2023-10-03 Sling TV L.L.C. Digital advertisement frequency correction
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9503491B2 (en) 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
WO2015004276A2 (en) 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control
GB2551674B (en) * 2013-07-12 2018-04-11 Canon Kk Adaptive data streaming method with push messages control
EP3022883B1 (en) * 2013-07-16 2017-05-03 Bitmovin GmbH Apparatus and method for cloud assisted adaptive streaming
EP2833640A1 (en) * 2013-08-02 2015-02-04 British Telecommunications public limited company Video caching
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US9253231B2 (en) * 2013-12-19 2016-02-02 Verizon Patent And Licensing Inc. Retrieving and caching adaptive bitrate stream segments based on network congestion
US9996445B2 (en) * 2014-01-17 2018-06-12 International Business Machines Corporation Computer flight recorder with active error detection
US9596281B2 (en) * 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10225298B2 (en) 2015-01-06 2019-03-05 Divx, Llc Systems and methods for encoding and sharing content between devices
US9979765B2 (en) 2015-05-11 2018-05-22 Apple Inc. Adaptive connection switching
US10047547B2 (en) 2015-05-20 2018-08-14 Pacific Lock Company Locking link
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
US9602455B2 (en) * 2015-08-07 2017-03-21 Machine Zone, Inc. Scalable, real-time messaging system
GB201612356D0 (en) * 2016-04-19 2016-08-31 Cisco Tech Inc Network monitoring and control system and method
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10609178B2 (en) * 2017-03-16 2020-03-31 Ronaldo Cordero Navarro Digital media and multimedia scheduling and delivery platform
CN107480181B (zh) * 2017-07-05 2020-11-24 百度在线网络技术(北京)有限公司 音频播放方法、装置、设备及服务器
US10616640B2 (en) 2017-12-28 2020-04-07 Sling TV L.L.C. Over the top media integration with over the air broadcast media
US10735804B2 (en) * 2017-12-28 2020-08-04 Rovi Guides, Inc. Systems and methods for adaptively buffering media content at a digital video recorder
US11838588B2 (en) * 2017-12-29 2023-12-05 Comcast Cable Communications, Llc Performing trick plays of segmented video content
US11463782B2 (en) 2018-06-21 2022-10-04 Dish Network L.L.C. User device control of transmission parameters
WO2020055333A1 (en) * 2018-09-14 2020-03-19 National University Of Singapore Method and device for streaming content
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US11108481B2 (en) 2019-09-18 2021-08-31 Sling Media L.L.C. Over-the-air programming integration with over the top streaming services
US11146839B1 (en) * 2020-07-06 2021-10-12 Comcast Cable Communications, Llc Adaptive bitrate streaming
US11611542B2 (en) 2021-08-11 2023-03-21 Dish Network Technologies India Private Limited Secure media streaming communication via user datagram protocol
US11627345B1 (en) 2022-05-10 2023-04-11 Dish Network Technologies India Private Limited Buffer management for optimized processing in media pipeline
CN116095092B (zh) * 2023-04-11 2023-06-23 湖南快乐阳光互动娱乐传媒有限公司 一种对等节点选择方法及装置

Family Cites Families (296)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1186028A (en) * 1982-06-23 1985-04-23 Microdesign Limited Method and apparatus for scrambling and unscrambling data streams using encryption and decryption
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
AU657510B2 (en) * 1991-05-24 1995-03-16 Apple Inc. Improved image encoding/decoding method and apparatus
GB2265733A (en) * 1992-03-26 1993-10-06 Ibm Buffering and computer display of video signals.
US6604118B2 (en) * 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
AU3215295A (en) * 1994-08-12 1996-03-14 Neosoft, A.G. Nonlinear digital communications system
US5687095A (en) 1994-11-01 1997-11-11 Lucent Technologies Inc. Video transmission rate matching for multimedia communication systems
US7349976B1 (en) * 1994-11-30 2008-03-25 Realnetworks, Inc. Audio-on-demand communication system
WO1997022201A2 (en) * 1995-12-12 1997-06-19 The Board Of Trustees Of The University Of Illinois Method and system for transmitting real-time video
US5841432A (en) * 1996-02-09 1998-11-24 Carmel; Sharon Method and system of building and transmitting a data file for real time play of multimedia, particularly animation, and a data file for real time play of multimedia applications
US5768527A (en) * 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
JP3435295B2 (ja) * 1996-09-30 2003-08-11 株式会社東芝 情報送信装置およびトラヒック制御装置、並びこれらを利用した帯域運用方法および呼受け付け方法
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
US6366614B1 (en) * 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6480541B1 (en) * 1996-11-27 2002-11-12 Realnetworks, Inc. Method and apparatus for providing scalable pre-compressed digital video with reduced quantization based artifacts
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
US6732183B1 (en) * 1996-12-31 2004-05-04 Broadware Technologies, Inc. Video and audio streaming for multiple users
US6449653B2 (en) * 1997-03-25 2002-09-10 Microsoft Corporation Interleaved multiple multimedia stream for synchronized transmission over a computer network
IL132060A0 (en) * 1997-03-31 2001-03-19 Broadband Associates Method and system for providing a presentation on a network
US6091775A (en) * 1997-04-17 2000-07-18 Sharp Kabushiki Kaisha Video-coding device and video-decoding device
JPH114225A (ja) * 1997-06-11 1999-01-06 Fuji Xerox Co Ltd データ伝送装置およびデータ伝送方法
US6181711B1 (en) * 1997-06-26 2001-01-30 Cisco Systems, Inc. System and method for transporting a compressed video and data bit stream over a communication channel
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US6845107B1 (en) 1997-10-15 2005-01-18 Sony Corporation Video data multiplexer, video data multiplexing control method, method and apparatus for multiplexing encoded stream, and encoding method and apparatus
EP0919952A1 (en) 1997-11-28 1999-06-02 Ecole Polytechnique Federale De Lausanne Method for coding/decoding of a digital signal
JP3844588B2 (ja) * 1998-03-05 2006-11-15 富士通株式会社 情報管理システム、ローカルコンピュータ、及び情報取得プログラムを記録したコンピュータ読み取り可能な記録媒体
IL123819A (en) * 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
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
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US6574591B1 (en) * 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6622171B2 (en) * 1998-09-15 2003-09-16 Microsoft Corporation Multimedia timeline modification in networked client/server systems
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6510553B1 (en) * 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US6850965B2 (en) 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US7334044B1 (en) 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
JP2000201343A (ja) 1999-01-05 2000-07-18 Toshiba Corp 動画像デ―タ再生装置及び動画像デ―タ分割装置並びにプログラムを記録したコンピュ―タ読み取り可能な記録媒体
US6731600B1 (en) * 1999-02-08 2004-05-04 Realnetworks, Inc. System and method for determining network conditions
US6122660A (en) * 1999-02-22 2000-09-19 International Business Machines Corporation Method for distributing digital TV signal and selection of content
EP1039367A3 (en) 1999-03-25 2002-02-06 Seiko Epson Corporation Printer controller, printer control method, and data storage medium carrying computer program means
US6654806B2 (en) * 1999-04-09 2003-11-25 Sun Microsystems, Inc. Method and apparatus for adaptably providing data to a network environment
US7885340B2 (en) * 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
US6430604B1 (en) * 1999-08-03 2002-08-06 International Business Machines Corporation Technique for enabling messaging systems to use alternative message delivery mechanisms
US6859839B1 (en) 1999-08-06 2005-02-22 Wisconsin Alumni Research Foundation Bandwidth reduction of on-demand streaming data using flexible merger hierarchies
US6795863B1 (en) 1999-08-10 2004-09-21 Intline.Com, Inc. System, device and method for combining streaming video with e-mail
JP3580192B2 (ja) 1999-09-24 2004-10-20 株式会社日立情報システムズ 画像データ配信システムおよびそれに用いる記録媒体
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US7523181B2 (en) 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US6708213B1 (en) 1999-12-06 2004-03-16 Lucent Technologies Inc. Method for streaming multimedia information over public networks
US20020073167A1 (en) * 1999-12-08 2002-06-13 Powell Kyle E. Internet content delivery acceleration system employing a hybrid content selection scheme
US7389356B2 (en) * 1999-12-15 2008-06-17 Microsoft Corporation Generalized differentiation methods and arrangements for adaptive multimedia communications
US7051110B2 (en) * 1999-12-20 2006-05-23 Matsushita Electric Industrial Co., Ltd. Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
US6721723B1 (en) 1999-12-23 2004-04-13 1St Desk Systems, Inc. Streaming metatree data structure for indexing information in a data base
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US7477688B1 (en) 2000-01-26 2009-01-13 Cisco Technology, Inc. Methods for efficient bandwidth scaling of compressed video data
AU2001251715A1 (en) 2000-03-08 2001-09-17 Streamcenter, Inc. Apparatus and method for predictable and differentiated delivery of multimedia streaming on the internet
US6552227B2 (en) * 2000-03-14 2003-04-22 Teva Pharmaceutical Industries Ltd. Process for preparing (+)-cis-sertraline
US6880017B1 (en) * 2000-03-20 2005-04-12 International Business Machines Corporation System and method for providing an adaptive streaming flow control mechanism between the TCP and IP layers of the TCP/IP suite of protocols
US7398312B1 (en) 2000-03-29 2008-07-08 Lucent Technologies Inc. Method and system for caching streaming multimedia on the internet
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6618752B1 (en) * 2000-04-18 2003-09-09 International Business Machines Corporation Software and method for multicasting on a network
US7124164B1 (en) 2001-04-17 2006-10-17 Chemtob Helen J Method and apparatus for providing group interaction via communications networks
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6757796B1 (en) 2000-05-15 2004-06-29 Lucent Technologies Inc. Method and system for caching streaming live broadcasts transmitted over a network
WO2001089160A1 (en) * 2000-05-18 2001-11-22 British Telecommunications Public Limited Company Communications network
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6675199B1 (en) * 2000-07-06 2004-01-06 Microsoft Identification of active server cluster controller
US20050204385A1 (en) 2000-07-24 2005-09-15 Vivcom, Inc. Processing and presentation of infomercials for audio-visual programs
US7310678B2 (en) * 2000-07-28 2007-12-18 Kasenna, Inc. System, server, and method for variable bit rate multimedia streaming
US6801947B1 (en) 2000-08-01 2004-10-05 Nortel Networks Ltd Method and apparatus for broadcasting media objects with guaranteed quality of service
WO2002019249A2 (en) 2000-09-01 2002-03-07 Moxi Digital Inc. System and method for intelligent buffering and bandwidth allocation
US7194549B1 (en) 2000-09-06 2007-03-20 Vulcan Patents Llc Multicast system using client forwarding
GB2367219A (en) 2000-09-20 2002-03-27 Vintage Global Streaming of media file data over a dynamically variable bandwidth channel
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
EP1191793A3 (en) * 2000-09-25 2008-01-23 Monolith Co., Ltd. Animation distributing method, animation distributing server and corresponding system
US7051315B2 (en) 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
KR100345447B1 (ko) 2000-09-27 2002-07-26 한국전자통신연구원 스트리밍 서비스를 위한 가변 비트율 처리 방법
WO2002030062A1 (en) * 2000-10-03 2002-04-11 U4Ea Technologies Limited Allocating priority levels in a data flow
WO2002039718A2 (en) * 2000-10-19 2002-05-16 Loudeye Technologies, Inc. System and method for selective insertion of content into streaming media
JP3699910B2 (ja) 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8566211B2 (en) * 2000-11-22 2013-10-22 Efficient Auctions, Llc System and method for a dynamic auction with package bidding
US20020073238A1 (en) 2000-11-28 2002-06-13 Eli Doron System and method for media stream adaptation
US20020091840A1 (en) * 2000-11-28 2002-07-11 Gregory Pulier Real-time optimization of streaming media from a plurality of media sources
US7631039B2 (en) * 2000-12-01 2009-12-08 Radvision Ltd. Initiation and support of video conferencing using instant messaging
US7133923B2 (en) * 2000-12-11 2006-11-07 Acme Packet, Inc. System and method for assisting in controlling real-time transport protocol flow through multiple networks via screening
US7308487B1 (en) 2000-12-12 2007-12-11 Igate Corp. System and method for providing fault-tolerant remote controlled computing devices
WO2002048966A1 (en) * 2000-12-14 2002-06-20 Rtimage Inc. Three-dimensional image streaming system and method for medical images
EP1215663A1 (en) * 2000-12-15 2002-06-19 BRITISH TELECOMMUNICATIONS public limited company Encoding audio signals
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
GB0031157D0 (en) * 2000-12-20 2001-01-31 Ncr Int Inc Streaming of data
US6934875B2 (en) * 2000-12-29 2005-08-23 International Business Machines Corporation Connection cache for highly available TCP systems with fail over connections
US20020122491A1 (en) * 2001-01-03 2002-09-05 Marta Karczewicz Video decoder architecture and method for using same
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US6961754B2 (en) * 2001-01-12 2005-11-01 Telefonaktiebolaget Lm Ericsson Interactive access, manipulation, sharing and exchange of multimedia data
US20020131496A1 (en) * 2001-01-18 2002-09-19 Vinod Vasudevan System and method for adjusting bit rate and cost of delivery of digital data
US7640362B2 (en) * 2001-01-31 2009-12-29 Interdigital Technology Corporation Adaptive compression in an edge router
US20020156912A1 (en) 2001-02-15 2002-10-24 Hurst John T. Programming content distribution
AU2002247257A1 (en) * 2001-03-02 2002-09-19 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
KR100554239B1 (ko) * 2001-03-14 2006-02-22 노키아 코포레이션 사용자 및 클라이언트 아이덴티티 인스턴트 메시징 분리
US20020133547A1 (en) * 2001-03-15 2002-09-19 Coretex Limited Method and system for real time net communication under the basis of documents
US20020178138A1 (en) * 2001-03-15 2002-11-28 Semiconductor Components Industries, Llc Synergistic directory-based information management system and method of using
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7046805B2 (en) * 2001-03-20 2006-05-16 Digeo, Inc. System and method for efficiently storing and processing multimedia content
US7089309B2 (en) * 2001-03-21 2006-08-08 Theplatform For Media, Inc. Method and system for managing and distributing digital media
CA2441630A1 (en) * 2001-03-22 2002-10-03 Internet Operator (Asia) Pte. Ltd. Method and system for multi-provider competitive telecommunications services
US6697072B2 (en) * 2001-03-26 2004-02-24 Intel Corporation Method and system for controlling an avatar using computer vision
US6766407B1 (en) * 2001-03-27 2004-07-20 Microsoft Corporation Intelligent streaming framework
EP1248431B1 (en) 2001-03-27 2007-10-31 Sony Deutschland GmbH Method for achieving end-to-end quality of service negotiation for distributed multimedia applications
US20020144276A1 (en) * 2001-03-30 2002-10-03 Jim Radford Method for streamed data delivery over a communications network
US6925501B2 (en) * 2001-04-17 2005-08-02 General Instrument Corporation Multi-rate transcoder for digital streams
US20020176418A1 (en) * 2001-04-19 2002-11-28 Russell Hunt Systems and methods for producing files for streaming from a content file
US20020194608A1 (en) * 2001-04-26 2002-12-19 Goldhor Richard S. Method and apparatus for a playback enhancement system implementing a "Say Again" feature
US20020174434A1 (en) * 2001-05-18 2002-11-21 Tsu-Chang Lee Virtual broadband communication through bundling of a group of circuit switching and packet switching channels
US20020184391A1 (en) * 2001-06-05 2002-12-05 Motorola, Inc. Method and system for orderly communication of chat messages in a wirless network
US20020188745A1 (en) * 2001-06-11 2002-12-12 Hughes David A. Stacked stream for providing content to multiple types of client devices
US6742082B1 (en) 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US7478164B1 (en) * 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
WO2003001825A1 (en) * 2001-06-25 2003-01-03 Ram Jethanand Balani Method and device for effecting venue specific wireless communication
JP2003005947A (ja) 2001-06-25 2003-01-10 Toshiba Corp サーバ装置、携帯端末、コンテンツ配信方法、コンテンツ受信方法及びプログラム
US6792449B2 (en) 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US20030005455A1 (en) * 2001-06-29 2003-01-02 Bowers J. Rob Aggregation of streaming media to improve network performance
EP1402705B1 (en) 2001-07-03 2005-01-05 Telefonaktiebolaget LM Ericsson (publ) Method and system for handling multiple registration
WO2003009581A1 (en) 2001-07-19 2003-01-30 British Telecommunications Public Limited Company Video stream switching
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
US7274659B2 (en) * 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
CA2460332A1 (en) * 2001-09-12 2003-04-10 Opentv, Inc. A method and apparatus for disconnected chat room lurking in an interactive television environment
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US8042132B2 (en) * 2002-03-15 2011-10-18 Tvworks, Llc System and method for construction, delivery and display of iTV content
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
AU2002334720B8 (en) 2001-09-26 2006-08-10 Interact Devices, Inc. System and method for communicating media signals
US20030065803A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N. V. Intelligent delivery method for streamed content
US20030081582A1 (en) * 2001-10-25 2003-05-01 Nikhil Jain Aggregating multiple wireless communication channels for high data rate transfers
KR100408525B1 (ko) 2001-10-31 2003-12-06 삼성전자주식회사 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법
AU2002363726A1 (en) 2001-11-09 2003-05-26 Musicmatch, Inc. File splitting scalade coding and asynchronous transmission in streamed data transfer
US7031700B1 (en) 2001-11-14 2006-04-18 Sprint Spectrum L.P. Method and system for location-based group conference initiation
US7093001B2 (en) 2001-11-26 2006-08-15 Microsoft Corporation Methods and systems for adaptive delivery of multimedia contents
US20030121047A1 (en) 2001-12-20 2003-06-26 Watson Paul T. System and method for content transmission network selection
US6789123B2 (en) * 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
CA2471855C (en) * 2002-01-11 2013-03-19 Akamai Technologies, Inc. Java application framework for use in a content delivery network (cdn)
US20030151753A1 (en) * 2002-02-08 2003-08-14 Shipeng Li Methods and apparatuses for use in switching between streaming video bitstreams
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
US7289509B2 (en) * 2002-02-14 2007-10-30 International Business Machines Corporation Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
EP1493093A4 (en) 2002-04-10 2008-04-23 Akamai Tech Inc METHOD AND SYSTEM FOR IMPROVING REAL FLOW DELIVERY QUALITY USING THE PRE-RAFALE TECHNIQUE
US7483487B2 (en) * 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7133881B2 (en) * 2002-04-29 2006-11-07 Intel Corporation Encoding and transferring media content onto removable storage
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
JP4192498B2 (ja) * 2002-05-17 2008-12-10 日本電気株式会社 コンテンツ転送方法、そのプログラム、そのシステム及びサーバ
US20050223087A1 (en) 2002-05-17 2005-10-06 Koninklijke Philips Electronics N.V. Quality driving streaming method and apparatus
EP1365553A1 (en) * 2002-05-23 2003-11-26 Accenture Global Services GmbH Method and device for instant messaging
US7116894B1 (en) 2002-05-24 2006-10-03 Digeo, Inc. System and method for digital multimedia stream conversion
US20030233464A1 (en) * 2002-06-10 2003-12-18 Jonathan Walpole Priority progress streaming for quality-adaptive transmission of data
US20030236904A1 (en) 2002-06-19 2003-12-25 Jonathan Walpole Priority progress multicast streaming for quality-adaptive transmission of data
JP2004023732A (ja) 2002-06-20 2004-01-22 Matsushita Electric Ind Co Ltd データ送信装置、データ受信装置、データ送信方法及びデータ受信方法
US7725557B2 (en) 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
AU2003241143A1 (en) 2002-06-25 2004-01-06 Quix Technologies Ltd. Image processing using probabilistic local behavior assumptions
US7818763B2 (en) * 2002-06-25 2010-10-19 Starz Entertainment, Llc Video advertising
US20040003101A1 (en) * 2002-06-26 2004-01-01 Roth David J. Caching control for streaming media
US7099954B2 (en) 2002-06-27 2006-08-29 Microsoft Corporation Congestion control mechanism for streaming media
CN1217543C (zh) 2002-06-28 2005-08-31 国际商业机器公司 对等视频点播系统中的设备和方法
US7966374B2 (en) * 2002-07-01 2011-06-21 Profiliq Software Inc. Adaptive media messaging, such as for rich media messages incorporating digital content
US8090761B2 (en) * 2002-07-12 2012-01-03 Hewlett-Packard Development Company, L.P. Storage and distribution of segmented media data
US7111044B2 (en) 2002-07-17 2006-09-19 Fastmobile, Inc. Method and system for displaying group chat sessions on wireless mobile terminals
US7802008B2 (en) * 2002-08-12 2010-09-21 Matsushita Electric Industrial Co., Ltd. Quality of service management in network gateways
EP1395014B1 (en) 2002-08-27 2006-06-14 Matsushita Electric Industrial Co., Ltd. A method of transmitting data streams with data segments of variable length
AU2002339523A1 (en) * 2002-09-06 2004-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and devices for controlling retransmissions in data streaming
WO2004025405A2 (en) 2002-09-10 2004-03-25 Thomson Licensing S.A. Video on demand server system and method
US8245252B2 (en) * 2002-09-10 2012-08-14 Caption Tv, Inc. System, method, and computer program product for selective replacement of objectionable program content with less-objectionable content
KR100486713B1 (ko) 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
FI116498B (fi) * 2002-09-23 2005-11-30 Nokia Corp Kaistanleveyden mukauttaminen
US20040073934A1 (en) * 2002-09-30 2004-04-15 Sharp Laboratories Of America, Inc. Streaming video for adaptive user instructions
US7190670B2 (en) 2002-10-04 2007-03-13 Nokia Corporation Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
US7643550B2 (en) * 2002-10-09 2010-01-05 Hewlett-Packard Development Company, L.P. Method for presenting streaming media for an event
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US7136922B2 (en) 2002-10-15 2006-11-14 Akamai Technologies, Inc. Method and system for providing on-demand content delivery for an origin server
US7328243B2 (en) 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7424514B2 (en) 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US7716312B2 (en) * 2002-11-13 2010-05-11 Avid Technology, Inc. Method and system for transferring large data files over parallel connections
ES2314259T3 (es) 2002-11-18 2009-03-16 British Telecommunications Public Limited Company Transmision de video.
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
US20040103444A1 (en) 2002-11-26 2004-05-27 Neal Weinberg Point to multi-point broadcast-quality Internet video broadcasting system with synchronized, simultaneous audience viewing and zero-latency
US6874015B2 (en) 2002-12-16 2005-03-29 International Business Machines Corporation Parallel CDN-based content delivery
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US6968387B2 (en) * 2003-01-10 2005-11-22 Realnetworks, Inc. Stochastic adaptive streaming of content
CN1195274C (zh) * 2003-01-25 2005-03-30 华中科技大学 基于集群视频服务器的节目源分片分布式存储方法
US7260640B1 (en) 2003-02-13 2007-08-21 Unisys Corproation System and method for providing an enhanced enterprise streaming media server capacity and performance
JP2006525693A (ja) * 2003-02-13 2006-11-09 ノキア コーポレイション マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法
US7336890B2 (en) * 2003-02-19 2008-02-26 Microsoft Corporation Automatic detection and segmentation of music videos in an audio/video stream
US20040168052A1 (en) 2003-02-25 2004-08-26 Clisham Allister B. Electronic content communication system and method
TW591952B (en) * 2003-03-14 2004-06-11 Cyberlink Corp Intelligent video stream processing method and system thereof
CN100536555C (zh) * 2003-03-19 2009-09-02 松下电器产业株式会社 数据处理装置
US7257407B2 (en) * 2003-03-26 2007-08-14 Sony Corporation System and method for dynamically allocating data rates and channels to clients in a wireless network
GB0306973D0 (en) * 2003-03-26 2003-04-30 British Telecomm Transmitting video
US7324523B2 (en) * 2003-03-26 2008-01-29 Sony Corporation System and method for dynamically allocating bandwidth to applications in a network based on utility functions
US7526565B2 (en) * 2003-04-03 2009-04-28 International Business Machines Corporation Multiple description hinting and switching for adaptive media services
US20040196842A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and system for according preferred transport based on node identification
US8321584B2 (en) * 2003-04-04 2012-11-27 Ellacoya Networks, Inc. Method and apparatus for offering preferred transport within a broadband subscriber network
US20040199604A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and system for tagging content for preferred transport
US20040199472A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and apparatus for billing over a network
US7313236B2 (en) 2003-04-09 2007-12-25 International Business Machines Corporation Methods and apparatus for secure and adaptive delivery of multimedia content
US7373416B2 (en) 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
US7844727B2 (en) * 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
WO2004100010A1 (en) * 2003-04-30 2004-11-18 Iptv Systems, Llc Secure, continuous, proxy-optimized, device-to-device data download reception system and method of use
US7577750B2 (en) 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US20040260701A1 (en) 2003-05-27 2004-12-23 Juha Lehikoinen System and method for weblog and sharing in a peer-to-peer environment
US7797439B2 (en) 2003-06-23 2010-09-14 Hewlett-Packard Development Company, L.P. Cost-aware admission control for streaming media server
US7274740B2 (en) 2003-06-25 2007-09-25 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7328247B2 (en) 2003-06-26 2008-02-05 Barracuda Networks, Inc. Self-contained instant messaging appliance
US7054774B2 (en) 2003-06-27 2006-05-30 Microsoft Corporation Midstream determination of varying bandwidth availability
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050024487A1 (en) 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
US7941554B2 (en) 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US20050033855A1 (en) * 2003-08-05 2005-02-10 Ahmad Moradi Method and apparatus for generating and marketing video e-mail and an intelligent video streaming server
DE602004025490D1 (de) 2003-08-21 2010-03-25 Vidiator Entpr Inc Metriken für die qualität der erfahrung (qoe) für drahtlose kommunikationsnetze
US7408984B2 (en) * 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US7363228B2 (en) * 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
US7349358B2 (en) 2003-10-06 2008-03-25 Kontiki, Inc. Method and apparatus for optimizing content delivery on local subnets
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
WO2005041533A1 (en) 2003-10-15 2005-05-06 Ntt Docomo, Inc. Apparatus and method for controlling an operation of a plurality of communication layers
CA2543427A1 (en) 2003-10-22 2005-07-07 Clearplay Inc. Apparatus and method for blocking audio/visual programming and for muting audio
US20050108414A1 (en) * 2003-11-14 2005-05-19 Taylor Thomas M. System and method for transmitting data in computer systems using virtual streaming
US7369610B2 (en) 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
US7272782B2 (en) 2003-12-19 2007-09-18 Backweb Technologies, Inc. System and method for providing offline web application, page, and form access in a networked environment
WO2005064945A1 (en) 2003-12-22 2005-07-14 Koninklijke Philips Electronics N.V. Method of transmitting content with adaptation of encoding characteristics
US7546355B2 (en) 2004-01-16 2009-06-09 Bloomberg Finance L.P. Network architecture for data transmission
US7400577B2 (en) 2004-02-25 2008-07-15 Microsoft Corporation Methods and systems for streaming data
US20050251832A1 (en) 2004-03-09 2005-11-10 Chiueh Tzi-Cker Video acquisition and distribution over wireless networks
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US20050254508A1 (en) 2004-05-13 2005-11-17 Nokia Corporation Cooperation between packetized data bit-rate adaptation and data packet re-transmission
US7176957B2 (en) 2004-05-25 2007-02-13 Seiko Epson Corporation Local video loopback method for a multi-participant conference system using a back-channel video interface
WO2006014547A2 (en) 2004-07-02 2006-02-09 Sky Kruse Transmission of digital content based on configuration of recepient device
US7593333B2 (en) 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
EP1782166A4 (en) 2004-07-09 2010-09-22 Network Foundation Technologie SYSTEMS FOR DISTRIBUTING DATA THROUGH A COMPUTER NETWORK AND METHOD FOR ARRANGING NODES FOR DISTRIBUTING DATA THROUGH A COMPUTER NETWORK
US20060047779A1 (en) 2004-07-12 2006-03-02 Sharp Laboratories Of America, Inc. HTTP agent-driven content negotiation for scalable video coding
US7174385B2 (en) 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US7738897B2 (en) 2004-09-17 2010-06-15 Nextel Communications Inc. Broadcast dispatch chatroom
US7640352B2 (en) 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
US20060206246A1 (en) 2004-10-28 2006-09-14 Walker Richard C Second national / international management and security system for responsible global resourcing through technical management to brige cultural and economic desparity
US8006279B2 (en) 2004-12-10 2011-08-23 Alcatel Lucent Distributive system for marking and blocking video and audio content related to video and audio programs
US7536469B2 (en) 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
US8712243B2 (en) 2004-12-17 2014-04-29 Alcatel Lucent Methods and apparatus for achieving multiple bit rates in passive optical networks
US7761609B1 (en) 2005-01-20 2010-07-20 Oracle America, Inc. Socket level packet scheduling for connectionless protocols
KR100640810B1 (ko) 2005-01-27 2006-11-06 엘지전자 주식회사 전자결제 기능을 갖는 이동 통신 단말기 및 그 방법
US20060184688A1 (en) 2005-02-17 2006-08-17 Nec Laboratories America, Inc. System and Method for Parallel Indirect Streaming of Stored Media from Multiple Sources
JP4643330B2 (ja) 2005-03-28 2011-03-02 ソニー株式会社 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
US20080120330A1 (en) 2005-04-07 2008-05-22 Iofy Corporation System and Method for Linking User Generated Data Pertaining to Sequential Content
US20080120342A1 (en) 2005-04-07 2008-05-22 Iofy Corporation System and Method for Providing Data to be Used in a Presentation on a Device
US20060236219A1 (en) 2005-04-19 2006-10-19 Microsoft Corporation Media timeline processing infrastructure
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US20080263180A1 (en) 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
CA2506665A1 (en) 2005-05-06 2006-11-06 Iotum Inc. Method of and system for telecommunication management
FI20055226A0 (fi) 2005-05-13 2005-05-13 Nokia Corp Menetelmä ja elementti palvelunohjaukseen
JP2006343943A (ja) 2005-06-08 2006-12-21 Murata Mach Ltd ファイルサーバ装置及び通信管理サーバ装置
US20070024705A1 (en) * 2005-08-01 2007-02-01 Richter Roger K Systems and methods for video stream selection
US20070030833A1 (en) 2005-08-02 2007-02-08 Pirzada Fahd B Method for managing network content delivery using client application workload patterns and related systems
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US20070078768A1 (en) 2005-09-22 2007-04-05 Chris Dawson System and a method for capture and dissemination of digital media across a computer network
US8132203B2 (en) 2005-09-30 2012-03-06 Microsoft Corporation In-program content targeting
EP1777969A1 (en) 2005-10-10 2007-04-25 BRITISH TELECOMMUNICATIONS public limited company Adaptive video transmission with variable frame rate
US8775655B2 (en) 2005-10-21 2014-07-08 Roxbeam Media Network Corporation System and method for presenting streaming media content
US9554093B2 (en) 2006-02-27 2017-01-24 Microsoft Technology Licensing, Llc Automatically inserting advertisements into source video content playback streams
US7555464B2 (en) 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US7660906B1 (en) 2006-03-27 2010-02-09 Beyond Media, Llc Data delivery system and method
US8477658B2 (en) 2006-04-25 2013-07-02 The Hong Kong University Of Science And Technology Intelligent peer-to-peer media streaming
WO2007130695A2 (en) 2006-05-05 2007-11-15 Globstream, Inc. Method and apparatus for streaming media to a plurality of adaptive client devices
US7925781B1 (en) 2006-05-26 2011-04-12 The Hong Kong University Of Science And Technology Distributed storage to support user interactivity in peer-to-peer video streaming
US8311102B2 (en) 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US9325786B2 (en) 2006-07-27 2016-04-26 The Hong Kong University Of Science And Technology Peer-to-peer interactive media-on-demand
KR100755789B1 (ko) * 2006-07-31 2007-09-05 삼성전자주식회사 휴대용 단말기에서 화상통화 방법 및 장치
US20080056373A1 (en) * 2006-08-29 2008-03-06 Newlin John B Method and system for dynamic frequency adjustment during video decoding
KR20080020868A (ko) 2006-09-01 2008-03-06 삼성전자주식회사 스트리밍 컨텐츠 기록과 재생에 관한 장치 및 방법
US20080091838A1 (en) 2006-10-12 2008-04-17 Sean Miceli Multi-level congestion control for large scale video conferences
US8380864B2 (en) * 2006-12-27 2013-02-19 Microsoft Corporation Media stream slicing and processing load allocation for multi-user media systems
US8578045B2 (en) 2007-02-14 2013-11-05 Microsoft Corporation Adaptive bandwidth utilization
US7788395B2 (en) 2007-02-14 2010-08-31 Microsoft Corporation Adaptive media playback
US8832290B2 (en) 2007-02-23 2014-09-09 Microsoft Corporation Smart pre-fetching for peer assisted on-demand media
US20080219151A1 (en) 2007-03-07 2008-09-11 Nokia Corporation System and method for using a peer to peer mechanism to repair broadcast data in wireless digital broadcast networks
US7657648B2 (en) 2007-06-21 2010-02-02 Microsoft Corporation Hybrid tree/mesh overlay for data delivery
US8037135B2 (en) 2007-06-29 2011-10-11 Microsoft Corporation Automatic distributed downloading
US20090049186A1 (en) 2007-08-16 2009-02-19 Sony Corporation, A Japanese Corporation Method to facilitate trick-modes for streaming video
US7873040B2 (en) 2007-08-20 2011-01-18 Stephen KARLSGODT Internet radio player
US9852219B2 (en) 2007-08-20 2017-12-26 Nokia Technologies Oy Segmented metadata and indexes for streamed multimedia data
US8078729B2 (en) 2007-08-21 2011-12-13 Ntt Docomo, Inc. Media streaming with online caching and peer-to-peer forwarding
WO2009065144A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Chunk header incorporating binary flags and correlated variable-length fields
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
US20100262711A1 (en) 2009-04-09 2010-10-14 Nokia Corporation Systems, methods, and apparatuses for media file streaming
JP5305453B2 (ja) 2009-06-19 2013-10-02 Necインフロンティア株式会社 無線lanの高速ローミングシステム、高速ローミング方法及び高速ローミングプログラム
KR101401183B1 (ko) 2009-12-11 2014-05-29 노키아 코포레이션 스트리밍 미디어 파일의 표현을 기술하고 타이밍하기 위한 장치 및 방법
WO2012161666A1 (en) 2011-05-25 2012-11-29 Thai Abs Company Limited Compositions including polytetrafluoroethylene and processes for the preparation thereof

Also Published As

Publication number Publication date
PT3822805T (pt) 2024-03-20
US9407564B2 (en) 2016-08-02
PT1743249T (pt) 2021-02-04
EP1743249A2 (en) 2007-01-17
PT2479680T (pt) 2019-10-31
US20050262257A1 (en) 2005-11-24
US20150039782A1 (en) 2015-02-05
KR20070061768A (ko) 2007-06-14
EP2479680A2 (en) 2012-07-25
DK1743249T3 (da) 2021-02-01
WO2005109224A2 (en) 2005-11-17
FI3822805T3 (fi) 2024-03-25
US20190199768A1 (en) 2019-06-27
EP3822805B1 (en) 2023-12-27
US10225304B2 (en) 2019-03-05
DK3822805T3 (da) 2024-03-25
EP3822805A1 (en) 2021-05-19
US20160323341A1 (en) 2016-11-03
US20200389510A1 (en) 2020-12-10
US10757156B2 (en) 2020-08-25
DK2479680T3 (da) 2019-10-21
AU2005241481A1 (en) 2005-11-17
ES2845901T3 (es) 2021-07-28
WO2005109224A3 (en) 2007-01-04
EP2479680B1 (en) 2019-08-28
EP1743249B1 (en) 2020-12-23
EP1743249A4 (en) 2008-10-29
EP2479680A3 (en) 2014-08-13
CA2564861C (en) 2016-12-06
US8868772B2 (en) 2014-10-21
JP5320740B2 (ja) 2013-10-23
JP2007535881A (ja) 2007-12-06
KR101082642B1 (ko) 2011-11-10
CA2564861A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
ES2748426T3 (es) Procedimiento de presentación de flujos de velocidad adaptativa
US11711412B2 (en) Apparatus, system, and method for multi-bitrate content streaming
US10659513B2 (en) Apparatus, system, and method for multi-bitrate content streaming
US8935363B2 (en) System and method for delivering multimedia content for playback through network
AU2011213730B2 (en) Apparatus, system, and method for adaptive-rate shifting of streaming content
Onifade et al. Guaranteed QoS for Selective Video Retransmission