ES2845901T3 - Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming - Google Patents
Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming Download PDFInfo
- Publication number
- ES2845901T3 ES2845901T3 ES05744015T ES05744015T ES2845901T3 ES 2845901 T3 ES2845901 T3 ES 2845901T3 ES 05744015 T ES05744015 T ES 05744015T ES 05744015 T ES05744015 T ES 05744015T ES 2845901 T3 ES2845901 T3 ES 2845901T3
- Authority
- ES
- Spain
- Prior art keywords
- streamlets
- streamlet
- video
- requests
- module
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44016—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client 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/25808—Management of client data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/44204—Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control 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/64746—Control signals issued by the network directed to the server or the client
- H04N21/64761—Control signals issued by the network directed to the server or the client directed to the server
- H04N21/64769—Control signals issued by the network directed to the server or the client directed to the server for rate control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control 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/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring 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)
- Multimedia (AREA)
- Signal Processing (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 aparato para transmisión continua en tiempo real (streaming) de contenido a velocidad adaptativa, comprendiendo el aparato una estación de usuario final (104), que comprende: un módulo controlador de agente (402) para ser acoplado a través de un controlador de red (406) a un conjunto de uno o más servidores (102, 116) sobre un conjunto de una o más conexiones de red TCP/IP (108), en el que el conjunto de servidores (102, 116) almacenan una pluralidad de copias diferentes (204, 206, 208) de un mismo video único (200), cada una codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo (200) pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video único (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), el módulo controlador de agente (402) está configurado para realizar solicitudes de streamlet (606) para recibir streamlets (212) que almacenan porciones secuenciales del video único (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200); el controlador de red (406) está configurado para procesar dichas solicitudes del módulo controlador de agente (402) para streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) sobre el conjunto de conexiones de red (108) para obtener los streamlets, en el que el controlador de red está configurado para realizar varias solicitudes de streamlets de manera simultánea, en el que el módulo controlador de agente (402) además está configurado para monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet; en función de dicho progreso monitorizado, el módulo controlador de agente (402) además está configurado para realizar determinaciones sucesivas (611, 708, 710, 712, 714) para cambiar la calidad de reproducción para lograr una reproducción continua del video único (200) solicitando a los streamlets (212) de la más alta calidad una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; un módulo de almacenamiento provisional (409) configurado para colocar los streamlets solicitados (212) de manera secuencial en orden de tiempo de reproducción ascendente; y, un reproductor de contenido (408) para reproducir los streamlets solicitados (212) según el almacenamiento provisional del módulo de almacenamiento provisional (409) para reproducir el video único (200).
Description
DESCRIPCIÓN
Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming Antecedentes de la invención
Campo de la invención
La presente invención se refiere a un aparato de presentación de flujos de velocidad adaptativa, y a procedimientos relacionados y medios de almacenamiento legibles por computadora. En algunas realizaciones, la invención se refiere a la transmisión continua en tiempo real (streaming) de video a través de redes conmutadas por paquetes tales como el Internet, y más particularmente se refiere al cambio de velocidad adaptativa de contenido de streaming a través de dichas redes.
Descripción de la técnica relacionada
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 lo sucesivo, «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.
La «transmisión continua en tiempo real (streaming) de elementos multimedia» se refiere a una 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. El streaming, que también puede denominarse en la presente memoria simplemente como transmisión, 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 ejemplo, 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.
El 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. El 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. El 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 streaming de transporte de datos a lo largo de la red como, por ejemplo, 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 streaming 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. Así como 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.
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.
El documento de patente US6389473B1 describe un sistema en el que un archivo multimedia de difusión se divide en porciones de varias longitudes de tiempo que se cargan desde un ordenador a un servidor en tiempo real y se solicitan desde el servidor por dispositivos de cliente en tiempo real. Los archivos multimedia pueden ser codificados a diferentes velocidades antes de ser divididos en porciones y ser cargados en el servidor para crear un formato de archivo particular. El dispositivo de cliente puede seleccionar el archivo a descargar a una velocidad adecuada según las condiciones de la red. Los documentos de patente EP1298931 A2 y EP1395014 A1 divulgan otros ejemplos de adaptación de la velocidad de transmisión (streaming) de contenido multimedia a las condiciones de la red.
La presente invención ha sido desarrollada en respuesta al estado actual de la técnica y, en particular, en respuesta a los problemas y necesidades de la técnica que aún no han sido completamente resueltos por los sistemas de transmisión (streaming) de contenido actualmente disponibles. Por consiguiente, la presente invención ha sido desarrollada para proporcionar un aparato, sistema y procedimiento para la transmisión de contenido a velocidad adaptativa que supere muchas o todas las deficiencias de la técnica antes discutidas. La presente invención está definida por las reivindicaciones independientes adjuntas.
El aparato para la transmisión de contenido a velocidad adaptativa está provisto de una unidad lógica que contiene una pluralidad de módulos configurados para ejecutar funcionalmente las etapas necesarias. En las realizaciones descritas, estos módulos incluyen un módulo controlador de agente configurado para solicitar simultáneamente una pluralidad de streamlets, el módulo controlador de agente además está configurado para monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes y, por consiguiente, solicitar streamlets de mayor o menor calidad, y un módulo de almacenamiento provisional configurado para almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido. En una realización, el aparato además está configurado para establecer múltiples conexiones de Protocolo de Control de Transmisión (TCP) con un servidor de contenido y solicitar streamlets de diferentes velocidades de bits. Cada streamlet puede comprender además una porción de un archivo de contenido.
Además, el módulo controlador de agentes puede estar configurado para generar un factor de rendimiento de acuerdo con las respuestas de las solicitudes de streamlet.
En una realización adicional, el módulo controlador de agente está configurado para realizar un cambio ascendente a un streamlet de mayor calidad cuando el factor de rendimiento es mayor que un umbral, y el módulo controlador de agente determina que la reproducción de mayor calidad se puede mantener de acuerdo con una combinación de factores. Los factores pueden incluir una cantidad de streamlets disponibles contiguamente almacenados en el módulo de almacenamiento provisional, un margen de seguridad mínimo y un margen anticipado de lectura actual.
El módulo controlador de agente puede estar configurado para realizar un cambio descendente a un streamlet de menor calidad cuando el factor de rendimiento es menor que un segundo umbral. Además, el módulo controlador de agente está configurado para anticipar las solicitudes de streamlet y los streamlets de solicitud previa para permitir la funcionalidad de avance rápido, salto aleatorio y rebobinado. En una realización, el módulo controlador de agente está configurado para solicitar inicialmente streamlets de baja calidad para habilitar la reproducción instantánea del archivo de contenido y el posterior cambio ascendente de acuerdo con el factor de rendimiento. También se presenta un sistema de la presente invención para la transmisión de contenido a velocidad adaptativa. En particular, en una realización, el sistema incluye una red de comunicaciones de datos y un servidor de contenido acoplado a la red de comunicaciones de datos y que tiene un módulo de contenido configurado para procesar contenido y generar una pluralidad de flujos de alta y baja calidad. En una realización, cada uno de los flujos de alta y baja calidad puede incluir una pluralidad de streamlets.
En una realización adicional, el sistema también incluye un módulo controlador de agente configurado para solicitar simultáneamente una pluralidad de streamlets, el módulo controlador de agente además está configurado para monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes, y por consiguiente solicitar streamlets de mayor o menor calidad, y un módulo de almacenamiento provisional configurado para almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido.
También se presenta un procedimiento de la presente invención para la transmisión de contenido a velocidad adaptativa. En las realizaciones divulgadas, el procedimiento incluye sustancialmente las etapas necesarias para llevar a cabo las funciones presentadas anteriormente con respecto a la operación del aparato y sistema descritos. En una realización, el procedimiento incluye solicitar simultáneamente una pluralidad de streamlets, monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes y, por consiguiente, solicitar streamlets de mayor o menor calidad y almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido.
En una realización adicional, el procedimiento puede incluir el establecimiento de múltiples conexiones de Protocolo de control de transmisión (TCP) con un servidor de contenido y solicitar streamlets de diferentes velocidades de bits. Además, el procedimiento puede incluir generar un factor de rendimiento de acuerdo con las respuestas de las solicitudes de streamlet, realizar un cambio ascendente a un streamlet de mayor calidad cuando el factor de rendimiento es mayor que un umbral y determinar si se puede mantener la reproducción de mayor calidad. Además, el procedimiento puede incluir un cambio descendente a un streamlet de menor calidad cuando el factor de rendimiento es menor que un segundo umbral.
En una realización, el procedimiento incluye anticipar solicitudes de streamlet y solicitar previamente streamlets para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado. El procedimiento también puede comprender solicitar inicialmente streamlets de baja calidad para habilitar la reproducción instantánea de un archivo de contenido, y el posterior cambio ascendente de acuerdo con el factor de rendimiento.
Las características y ventajas de la presente invención resultarán más evidentes a partir de la siguiente descripción y las reivindicaciones adjuntas, o pueden ser aprendidas mediante la práctica de la invención tal como se expone a continuación.
Breve descripción de los dibujos
Con el fin de que las ventajas de la invención se entiendan con facilidad, se presentará una descripción más particular de la invención descrita brevemente con anterioridad con referencia a realizaciones específicas que se ilustran en los dibujos adjuntos.
La Figura 1 es un diagrama de bloque esquemático que ilustra una realización de un sistema para el cambio de velocidad adaptativa del contenido de streaming de acuerdo con la presente invención;
La Figura 2a es un diagrama de bloque esquemático que ilustra gráficamente una realización de un archivo de contenido de acuerdo con la presente invención;
La Figura 2b es un diagrama de bloque esquemático que ilustra una realización de una pluralidad de flujos que tienen grados variables de calidad y ancho de banda de acuerdo con la presente invención;
La Figura 2c es un diagrama de bloque esquemático que ilustra una realización de un flujo dividido en una pluralidad de pequeños flujos (streamlets) de acuerdo con la presente invención;
La Figura 3 es un diagrama de bloque esquemático que ilustra una realización de un módulo de contenido de acuerdo con la presente invención;
La Figura 4 es un diagrama de bloque esquemático que ilustra gráficamente una realización de un módulo de cliente de acuerdo con la presente invención;
La Figura 5 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para el procesamiento del contenido de acuerdo con la presente invención;
La Figura 6 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para la reproducción de una pluralidad de streamlets de acuerdo con la presente invención; y
La Figura 7 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para solicitar streamlets dentro de un entorno de transmisión de contenido de velocidad adaptativa de acuerdo con la presente invención.
Descripción detallada de la invención
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 ejemplo, chips lógicos, transistores, y otros componentes discretos. Un módulo puede ser implementado en dispositivos de hardware programables como, por ejemplo, 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.
En la siguiente descripción, se proporcionan numerosos detalles específicos como, por ejemplo, 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. Un experto en la técnica relevante reconocerá, sin embargo, que la invención se puede poner en práctica sin uno o más de los detalles específicos, o con otros procedimientos, componentes, materiales, etc. 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 una realización de un sistema 200 para el cambio de la velocidad adaptativa dinámica del contenido de streaming de conformidad con la presente invención. En una realización, 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.
En la realización ilustrada, el sistema 100 incluye, además, un editor 110 y un 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 ejemplo, 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 una realización de 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 realización de una pluralidad de flujos 202 que tienen grados variables de calidad y ancho de banda. En una realización, 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 una 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 una realización de 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. En una realización adicional, 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 una realización del módulo de contenido 112 de conformidad con la presente invención. 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.
En la realización ilustrada, 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 ejemplo, 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. En una realización, 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. En una realización, 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 ejemplo, 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 procesos automatizados o definición manual.
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 una realización de un módulo de cliente 114 de conformidad con la presente invención. El módulo de cliente 114 puede comprender un módulo controlador de agente 402, un módulo de caché de streamlet 404 y un módulo controlador de red 406. En una realización, el módulo controlador de 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 de agente 402 puede estar configurado para hacer interfaz con un visor 408. De forma alternativa, el módulo controlador de 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 de agente 402 está configurado para seleccionar un nivel de calidad de los streamlets para transmitir hacia el visor 408. El módulo controlador de 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 de 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 de agente 402 solicita los streamlets 212 desde el módulo de caché de 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 de 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 de 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 de 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. En una realización adicional, el módulo controlador de 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.
En una realización, el módulo de caché de streamlet 404 está configurado para recibir solicitudes de streamlet 212 desde el módulo controlador de 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é de 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é de streamlet 404 se puede proporcionar para cada módulo controlador de agente 402. Si el streamlet solicitado 212 no está
presente en el caché de streamlet 410, la solicitud es enviada al módulo controlador de red 406. A fin de permitir las habilidades de avance rápido y rebobinado, el módulo de caché de streamlet 404 está configurado para almacenar la pluralidad de streamlets 212 en el caché de 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 red 406 puede estar configurado para recibir las solicitudes de streamlets desde el módulo de caché de 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). En una realización, el módulo controlador de 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 red 406 pasa el streamlet 212 hacia el módulo de caché de streamlet 404 donde es almacenado en el caché de streamlet 410. En una realización adicional, el módulo controlador de red 406 está configurado para procesar y solicitar una pluralidad de streamlets 212 de manera simultánea. El módulo controlador de red 406 puede estar configurado, además, para solicitar una pluralidad de streamlets, en el que cada streamlet 212 es solicitado, posteriormente, en múltiples partes.
En una realización adicional, 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. Por consiguiente, se solucionan los problemas de eficiencia y pérdida de red, y los streamlets llegan con una sincronización más útil y predecible.
En una realización, 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 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 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. En una realización adicional, 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 por consiguiente para mantener el balance apropiado de eficiencia y los tiempos de respuesta.
La Figura 5 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento 500 para el procesamiento de contenido de conformidad con la presente invención. En una realización, 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 de streamlet 304 recibe los flujos 202 y genera 508 una pluralidad de streamlets 212. En una realización, 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 ejemplo 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 una realización de un procedimiento 600 para ver una pluralidad de streamlets de conformidad con la presente invención. El procedimiento 600 comienza y un módulo controlador de 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 de agente 402 solicita 606, a continuación, un streamlet desde el módulo de caché de streamlet 404. De forma alternativa, el módulo controlador de agente 402 puede solicitar 606, de manera simultánea, una pluralidad de streamlets desde el módulo de caché de streamlet 404. Si el streamlet es almacenado 608 localmente en el caché de streamlet 410, el módulo de caché de streamlet 404 recupera 610 el streamlet y envía el streamlet al módulo controlador de agente 402. Al cabo de recuperar 610 o recibir un streamlet, el módulo controlador de 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.
En una realización, el módulo de almacenamiento provisional 409 arregla 612 los streamlets en el orden apropiado, y el módulo controlador de 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 red 406. El módulo controlador de 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 red 406 pasa el streamlet al módulo de caché de streamlet 404. El módulo de caché de streamlet 404 archiva 618 el streamlet. De forma alternativa, el módulo de caché de streamlet 404 archiva 618 el streamlet y pasa el streamlet al módulo controlador de 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 una realización de un procedimiento 700 para solicitar streamlets dentro de un entorno de transmisión de contenido cambiando la velocidad adaptativa de conformidad con la presente invención. 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 de
agente 402 recibe 704 un streamlet como se describió anteriormente con referencia a la Figura 6. El módulo controlador de agente 402 monitoriza 706 el tiempo de recepción del streamlet solicitado. En una realización, el módulo controlador de agente 402 monitoriza 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 de 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. En una realización, la relación de rendimiento r se calcula mediante el uso de la ecuación.
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 de 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.
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 y actual con un umbral desencadenador Gamba. Si ^ actual s Gamba, entonces se puede considerar un cambio ascendente al siguiente flujo de calidad superior 716. En una realización, el umbral desencadenador G arriba 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 G arriba 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 de agente 402 puede sostener 716 la calidad del cambio ascendente, entonces el módulo controlador de 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, 9 superior , con G arriba . Si 9 superior > G arrba 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 de 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 G abajo se define de manera análoga a Gamba. Si y actuai > Gabajo, entonces la calidad del flujo puede ser adecuada, y el módulo controlador de agente 402 no realizar el cambio descendente 718 de la calidad del flujo. No obstante, si y actuai < Gabajo, el módulo controlador de 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 de 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 monitorización del streamlet.
Claims (25)
1. Un aparato para transmisión continua en tiempo real (streaming) de contenido a velocidad adaptativa, comprendiendo el aparato una estación de usuario final (104), que comprende:
un módulo controlador de agente (402) para ser acoplado a través de un controlador de red (406) a un conjunto de uno o más servidores (102, 116) sobre un conjunto de una o más conexiones de red TCP/IP (108), en el que el conjunto de servidores (102, 116) almacenan una pluralidad de copias diferentes (204, 206, 208) de un mismo video único (200), cada una codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo (200) pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video único (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), el módulo controlador de agente (402) está configurado para realizar solicitudes de streamlet (606) para recibir streamlets (212) que almacenan porciones secuenciales del video único (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
el controlador de red (406) está configurado para procesar dichas solicitudes del módulo controlador de agente (402) para streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) sobre el conjunto de conexiones de red (108) para obtener los streamlets, en el que el controlador de red está configurado para realizar varias solicitudes de streamlets de manera simultánea,
en el que el módulo controlador de agente (402) además está configurado para monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicho progreso monitorizado, el módulo controlador de agente (402) además está configurado para realizar determinaciones sucesivas (611, 708, 710, 712, 714) para cambiar la calidad de reproducción para lograr una reproducción continua del video único (200) solicitando a los streamlets (212) de la más alta calidad una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; un módulo de almacenamiento provisional (409) configurado para colocar los streamlets solicitados (212) de manera secuencial en orden de tiempo de reproducción ascendente; y,
un reproductor de contenido (408) para reproducir los streamlets solicitados (212) según el almacenamiento provisional del módulo de almacenamiento provisional (409) para reproducir el video único (200).
2. El aparato de la reivindicación 1, en el que el umbral de activación se selecciona de acuerdo con el margen anticipado de lectura actual, que es la cantidad de streamlets disponibles contiguamente (212) almacenados en el módulo de almacenamiento provisional (409), para desalentar el cambio ascendente hasta que se establece un margen anticipado de lectura mayor.
3. El aparato de las reivindicaciones 1 o 2, en el que el módulo controlador de agente (402) está configurado para realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
4. El aparato de la reivindicación 1, en el que el módulo controlador de agente (402) está configurado además para anticipar solicitudes de streamlet (606) y realizar al menos una solicitud previa de streamlet para recibir uno de los archivos separados (212) que almacenan la porción del video seleccionado (200) que comienza en un tiempo de inicio especificado de una de las diferentes copias (204, 206, 208) para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado.
5. El aparato de la reivindicación 1, en el que las solicitudes de streamlet iniciales (606) son para los archivos separados (212) de una copia de menor calidad de las diferentes copias (204, 206, 208) para habilitar la reproducción instantánea del video único (200), y en el que el módulo controlador de agente (402) está configurado para luego posteriormente realizar un cambio ascendente (717) hasta una copia de mayor calidad de las diferentes copias (204, 206, 208) de acuerdo con el factor de rendimiento (708).
6. El aparato de cualquiera de las reivindicaciones 1 a 5, que además comprende:
una red de comunicaciones de datos (106); y
el conjunto de uno o más servidores (102, 116) acoplados a la red de comunicaciones de datos (106), en el que al menos uno del conjunto de uno o más servidores (102, 116) comprende un módulo de
contenido (112) configurado para generar la pluralidad de streamlets (212) de las diferentes copias (204, 206, 208) del mismo video único (200).
7. El aparato de la reivindicación 1, en el que cada uno de los streamlets tiene la misma duración de tiempo.
8. Un procedimiento para transmisión continua en tiempo real (streaming) desde un conjunto de uno o más servidores (102, 116) de videos (200) para su reproducción en un reproductor de contenido (408) en una estación de usuario final (104), en el que cada uno de los videos (200) tiene una duración de reproducción, que comprende:
realizar streaming desde el conjunto de servidores (102, 116) a través de un conjunto de una o más conexiones de red TCP/IP, de uno seleccionado de los videos (200) para su reproducción en el reproductor de contenido (408) que opera en la estación de usuario final;
en el que diferentes copias (204, 206, 208) del mismo video seleccionado (200) se almacenan en el conjunto de servidores (102, 116), en el que cada una de las diferentes copias (204, 206, 208) está codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una está dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo, pero que almacenan datos individualmente para reproducir solo una porción que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video seleccionado (200), en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), y en el que el streaming comprende:
realizar solicitudes de streamlet (606) para recibir streamlets (212) almacenando porciones secuenciales del video seleccionado, en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
procesar dichas solicitudes de streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) a través del conjunto de conexiones de red (108) para obtener los streamlets, en el que se realizan varias solicitudes de streamlets de manera simultánea;
monitorizar (706) el progreso de las respuestas a las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicha monitorización, realizar determinaciones sucesivas (611, 708, 710, 712, 714) por la estación de usuario final (104) para cambiar la calidad de reproducción para lograr una reproducción continua del video seleccionado solicitando los streamlets (212) de la calidad más alta una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación;
colocar los streamlets solicitados (212) secuencialmente en orden de tiempo de reproducción ascendente; y
reproducir los streamlets solicitados tal y como se almacenaron temporalmente con el reproductor de contenido.
9. El procedimiento de la reivindicación 8, en el que dicha realización de la al menos una solicitud de streamlet (606) incluye solicitar los archivos separados (212) que almacenan las porciones del video seleccionado que comienza en el conjunto de tiempo de inicio en múltiples partes sobre diferentes conexiones del conjunto de conexiones de red (108), y en el que dicho procedimiento además incluye reensamblar las múltiples partes para cada uno de los archivos separados (212) que almacenan las porciones del video seleccionado que comienza en el conjunto de tiempos de inicio.
10. El procedimiento de la reivindicación 8, en el que dicha realización automática incluye solicitar que uno de los archivos separados (212) almacene la porción del video seleccionado que comienza en ese tiempo inicio en múltiples partes sobre diferentes conexiones del conjunto de conexiones de red (108), y en el que dicho procedimiento además incluye reensamblar las múltiples partes para cada uno de los archivos separados (212) que almacenan la porción del video seleccionado que comienza en ese tiempo de inicio.
11. El procedimiento de la reivindicación 8, en el que el umbral de activación es indicativo de un margen de seguridad mínimo, en el que el margen de seguridad mínimo es una cantidad deseada de streamlets (212) dispuestos secuencialmente disponibles contiguamente para su reproducción en el reproductor de contenido (408).
12. El procedimiento de la reivindicación 8, en el que el factor de rendimiento (708) es indicativo de intervalos de tiempo entre tiempos de recepción sucesivos para cada respuesta a los streamlets solicitados (212).
13. El procedimiento de cualquiera de las reivindicaciones 8 a 12, en el que el conjunto de servidores (102, 116) comprende un servidor web (116), y en el que algunos de los archivos separados (212) se almacenan en el servidor web (116).
14. El procedimiento de la reivindicación 13, en el que el servidor web (116) no tiene inteligencia del lado del servidor para recuperar los streamlets solicitados (212).
15. El procedimiento de cualquiera de las reivindicaciones 8 a 14, en el que el conjunto de servidores (102, 116) comprende un servidor de caché de un operador de infraestructura de red, y en el que algunos de los archivos separados (212) se almacenan en el servidor de caché.
16. El procedimiento de la reivindicación 8, en el que calcular el factor de rendimiento comprende: calcular una relación de rendimiento actual a lo largo de una ventana actual de muestras de una duración de reproducción; y calcular un promedio actual para obtener un factor actual de los factores de rendimiento (708) para su comparación con los umbrales de activación.
17. El procedimiento de la reivindicación 16, en el que dicha determinación comprende realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento actual (708) es menor que un segundo umbral del conjunto de uno o más umbrales de activación.
18. El procedimiento de la reivindicación 8, en el que dicho streaming además comprende: recibir una entrada de usuario para realizar avance rápido, rebobinado o salto aleatorio; y realizar al menos una solicitud de streamlet (606) para recibir uno de los archivos separados (212) almacenando la porción del video seleccionado que comienza a un tiempo de inicio especificado que no es el siguiente tiempo secuencial en la reproducción actual.
19. El procedimiento de la reivindicación 8, que además comprende realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
20. El procedimiento de la reivindicación 8, en el que cada uno de los streamlets tiene la misma duración de tiempo.
21. Un medio de almacenamiento legible por ordenador que comprende un código legible por ordenador configurado para llevar a cabo operaciones de transmisión continua en tiempo real (streaming) desde un conjunto de uno o más servidores (102, 116) de videos (200) para su reproducción en un reproductor de contenido (408) en una estación de usuario final (104), en el que cada uno de los videos (200) tiene una duración de reproducción, comprendiendo las operaciones:
realizar streaming desde el conjunto de servidores (102, 116) a través de un conjunto de una o más conexiones de red TCP/IP, de uno seleccionado de los videos (200) para su reproducción en el reproductor de contenido (408) que opera en la estación de usuario final (104);
en el que diferentes copias (204, 206, 208) del mismo video seleccionado (200) se almacenan en el conjunto de servidores (102, 116), en el que cada una de las diferentes copias (204, 206, 208) está codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y está dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo, pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video seleccionado (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), y en el que el streaming comprende:
realizar solicitudes de streamlet (606) para recibir streamlets (212) almacenando porciones secuenciales del video seleccionado (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
procesar dichas solicitudes de streamlets del módulo controlador de agente (402) y realizar solicitudes HTTP al conjunto de servidores (102, 116) a través del conjunto de conexiones de red (108) para obtener los streamlets, en el que un controlador de red (406) está configurado para realizar varias solicitudes de streamlets de manera simultánea;
monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicha monitorización, realizar determinaciones sucesivas (611, 708, 710, 712, 714)
por la estación de usuario final (104) para cambiar la calidad de reproducción para lograr una reproducción continua del video seleccionado (200) solicitando los streamlets (212) de la calidad más alta una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; y
colocar los streamlets solicitados (212) en secuencia en orden de tiempo de reproducción ascendente; y
reproducir los streamlets solicitados tal y como se almacenaron temporalmente.
22. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las operaciones además comprenden realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
23. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las operaciones además comprenden anticipar solicitudes de streamlet (606) y solicitar previamente los streamlets (212) de una de las diferentes copias (204, 206,208) para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado.
24. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las solicitudes de streamlet (606) para los tiempos iniciales y secuenciales de los tiempos de inicio son para los archivos separados (212) de una copia de baja calidad de las diferentes copias (204, 206, 208) para habilitar la reproducción instantánea del video seleccionado, y luego realizar un cambio ascendente (717) hasta una copia de mayor calidad de las diferentes copias (204, 206, 208) de acuerdo con el factor de rendimiento (708).
25. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que cada uno de los streamlets tiene la misma duración de tiempo.
Applications Claiming Priority (3)
| 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 |
| PCT/US2005/015091 WO2005109224A2 (en) | 2004-04-30 | 2005-05-02 | Apparatus, system, and method for adaptive-rate shifting of streaming content |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2845901T3 true ES2845901T3 (es) | 2021-07-28 |
Family
ID=35320874
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20216568T Expired - Lifetime ES2975834T3 (es) | 2004-04-30 | 2005-05-02 | Aparato, sistema y método para el cambio de velocidad adaptativa de contenido de transmisión |
| ES12154559T Expired - Lifetime ES2748426T3 (es) | 2004-04-30 | 2005-05-02 | Procedimiento de presentación de flujos de velocidad adaptativa |
| ES05744015T Expired - Lifetime ES2845901T3 (es) | 2004-04-30 | 2005-05-02 | Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20216568T Expired - Lifetime ES2975834T3 (es) | 2004-04-30 | 2005-05-02 | Aparato, sistema y método para el cambio de velocidad adaptativa de contenido de transmisión |
| ES12154559T Expired - Lifetime ES2748426T3 (es) | 2004-04-30 | 2005-05-02 | Procedimiento de presentación de flujos de velocidad adaptativa |
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) | DK3822805T3 (es) |
| ES (3) | ES2975834T3 (es) |
| FI (1) | FI3822805T3 (es) |
| PT (3) | PT2479680T (es) |
| WO (1) | WO2005109224A2 (es) |
Families Citing this family (129)
| 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 |
| 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 |
| US7080173B2 (en) * | 2004-05-27 | 2006-07-18 | Microsoft Corporation | Reducing information reception delays |
| WO2006061838A2 (en) * | 2004-12-08 | 2006-06-15 | 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 |
| EP1889151A2 (en) * | 2005-05-21 | 2008-02-20 | Kula Media Group | Media distribution over a network |
| DE602006004749D1 (de) * | 2005-07-29 | 2009-02-26 | British Telecomm | Netzwerkinformations-beschaffung |
| NZ571050A (en) * | 2006-02-13 | 2010-09-30 | 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 |
| US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
| US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
| US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
| US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
| EP2036346A4 (en) | 2006-06-27 | 2009-09-16 | Thomson Licensing | SUPPORT FOR INTERACTIVE READING DEVICES FOR ON-DEMAND POST-PERFORMANCE POST-PERFORMANCE VIDEO 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 |
| US11783925B2 (en) | 2006-12-29 | 2023-10-10 | 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 |
| WO2008085206A2 (en) | 2006-12-29 | 2008-07-17 | Prodea Systems, Inc. | Subscription management of applications and services provided through user premises gateway devices |
| 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 |
| US20170344703A1 (en) | 2006-12-29 | 2017-11-30 | Kip Prod P1 Lp | Multi-services application gateway and system employing the same |
| CN103561278B (zh) | 2007-01-05 | 2017-04-12 | 索尼克知识产权股份有限公司 | 包含连续播放的视频分配系统 |
| US7937451B2 (en) | 2007-01-08 | 2011-05-03 | Mspot, Inc. | Method and apparatus for transferring digital content from a 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 |
| 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 |
| 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 |
| US20110188567A1 (en) * | 2007-11-14 | 2011-08-04 | David Frederic Blum | System and method for adaptive rate shifting of video/audio streaming |
| JP5513400B2 (ja) | 2007-11-16 | 2014-06-04 | ソニック アイピー, インコーポレイテッド | マルチメディアファイルのための階層的で簡略なインデックス構造体 |
| 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 |
| US8190760B2 (en) | 2008-01-15 | 2012-05-29 | Echostar Advanced Technologies L.L.C. | System and method of managing multiple video players |
| US9832442B2 (en) | 2008-01-15 | 2017-11-28 | Echostar Technologies Llc | System and method of managing multiple video players executing on multiple devices |
| 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 |
| CN102549557B (zh) | 2009-01-07 | 2015-09-09 | 索尼克Ip股份有限公司 | 针对在线内容的媒体指南的特定化、集中式、自动化创建 |
| US9015335B1 (en) * | 2009-06-17 | 2015-04-21 | Amazon Technologies, Inc. | Server side stream switching |
| CN102792291B (zh) | 2009-08-17 | 2015-11-25 | 阿卡麦科技公司 | 基于http的流分发的方法和系统 |
| 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 |
| JP5723888B2 (ja) | 2009-12-04 | 2015-05-27 | ソニック アイピー, インコーポレイテッド | 基本ビットストリーム暗号材料伝送システムおよび方法 |
| 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 |
| US8745388B2 (en) * | 2010-03-22 | 2014-06-03 | EchoStar Technologies, L.L.C. | Systems and methods for securely streaming media content |
| 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 |
| EP2621168A4 (en) * | 2010-09-20 | 2014-07-09 | Humax Co Ltd | PROCESSING METHOD FOR CREATING AN EXPRESSION SWITCHING IN AN 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 |
| US8914534B2 (en) | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
| US9020039B2 (en) | 2011-01-06 | 2015-04-28 | Sonic Ip, Inc. | Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming |
| EP2477397A1 (en) * | 2011-01-12 | 2012-07-18 | Nxp B.V. | Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections |
| US8589996B2 (en) | 2011-03-16 | 2013-11-19 | Azuki Systems, Inc. | Method and system for federated over-the-top content delivery |
| CN108366070A (zh) * | 2011-03-16 | 2018-08-03 | 韩国电子通信研究院 | 用于提供媒体内容的方法和客户端 |
| 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 |
| US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
| 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 |
| CN103765856B (zh) * | 2011-09-06 | 2017-12-15 | 瑞典爱立信有限公司 | 用于具有多层或多个流的渐进媒体下载的装置和方法 |
| 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 | シンクライアントシステムおよびサーバ装置 |
| CN104011701B (zh) | 2011-12-14 | 2017-08-01 | 第三雷沃通讯有限责任公司 | 内容传送网络系统和能够在内容传送网络中操作的方法 |
| 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流媒体的速率自适方法及装置 |
| US20140108495A1 (en) * | 2012-10-11 | 2014-04-17 | Steven A. Benno | Adaptive streaming client |
| US9332051B2 (en) | 2012-10-11 | 2016-05-03 | Verizon Patent And Licensing Inc. | Media manifest file generation for adaptive streaming cost management |
| KR20150093153A (ko) * | 2012-10-18 | 2015-08-17 | 지래픽 테크놀로지스 엘티디. | 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법 |
| US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
| US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
| US11778257B2 (en) | 2013-03-15 | 2023-10-03 | Sling TV L.L.C. | Digital advertisement frequency correction |
| US11956499B2 (en) | 2013-03-15 | 2024-04-09 | Sling TV L.L.C. | Automated replacement of stored digital content |
| US11564002B2 (en) | 2013-03-15 | 2023-01-24 | Sling TV L.L.C. | Automated replacement of video program content |
| US9503491B2 (en) | 2013-03-15 | 2016-11-22 | Echostar Technologies L.L.C. | Playback stall avoidance in adaptive media streaming |
| US12200284B2 (en) | 2013-03-15 | 2025-01-14 | 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 |
| US9866889B2 (en) | 2013-03-15 | 2018-01-09 | Echostar Technologies Llc | Asymmetric content delivery of media content |
| US9756100B2 (en) * | 2013-03-15 | 2017-09-05 | Echostar Technologies L.L.C. | Placeshifting of adaptive media streams |
| 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 |
| US9344517B2 (en) | 2013-03-28 | 2016-05-17 | Sonic Ip, Inc. | Downloading and adaptive streaming of multimedia content to a device with cache assist |
| US9247317B2 (en) | 2013-05-30 | 2016-01-26 | Sonic Ip, Inc. | Content streaming with client device trick play index |
| US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
| US9967305B2 (en) | 2013-06-28 | 2018-05-08 | Divx, Llc | Systems, methods, and media for streaming media content |
| CN109842613B (zh) | 2013-07-12 | 2021-11-19 | 佳能株式会社 | 用于提供和接收媒体数据的方法和装置以及存储介质 |
| 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 |
| GB2549549B (en) * | 2016-04-19 | 2020-12-23 | Cisco Tech Inc | A mapping database system for use with content chunks |
| 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 | 百度在线网络技术(北京)有限公司 | 音频播放方法、装置、设备及服务器 |
| US10735804B2 (en) * | 2017-12-28 | 2020-08-04 | Rovi Guides, Inc. | Systems and methods for adaptively buffering media content at a digital video recorder |
| US10616640B2 (en) | 2017-12-28 | 2020-04-07 | Sling TV L.L.C. | Over the top media integration with over the air broadcast media |
| 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 |
| CN112690005A (zh) * | 2018-09-14 | 2021-04-20 | 新加坡国立大学 | 用于流传输内容的方法和设备 |
| US20200296462A1 (en) | 2019-03-11 | 2020-09-17 | Wci One, Llc | Media content presentation |
| US20200296316A1 (en) | 2019-03-11 | 2020-09-17 | Quibi Holdings, 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 |
| US12096053B2 (en) * | 2022-03-02 | 2024-09-17 | Streaming Global, Inc. | Content delivery platform |
| 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 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种对等节点选择方法及装置 |
| US12262075B2 (en) | 2023-04-27 | 2025-03-25 | Dish Network Technologies India Private Limited | Methods and systems for streaming in flaky network |
Family Cites Families (302)
| 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 |
| CA2140850C (en) | 1994-02-24 | 1999-09-21 | Howard Paul Katseff | Networked system for display of multimedia presentations |
| 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 |
| EP0867003A2 (en) * | 1995-12-12 | 1998-09-30 | The Board of Trustees for the University of Illinois | Method of and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems |
| 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 |
| US5852904A (en) | 1996-08-05 | 1998-12-29 | Haworth, Inc. | Panel arrangement |
| 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 |
| WO1998044733A1 (en) * | 1997-03-31 | 1998-10-08 | 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 |
| US7334044B1 (en) | 1998-11-17 | 2008-02-19 | Burst.Com | Method for connection acceptance control and optimal multi-media content delivery over networks |
| 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 |
| US6637031B1 (en) | 1998-12-04 | 2003-10-21 | Microsoft Corporation | Multimedia presentation latency minimization |
| 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 |
| US6848004B1 (en) | 1999-11-23 | 2005-01-25 | International Business Machines Corporation | System and method for adaptive delivery of rich media content to a user in a network based on real time bandwidth measurement & prediction according to available user bandwidth |
| 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 |
| WO2001067264A1 (en) | 2000-03-08 | 2001-09-13 | Streamcenter, Inc. | Apparatus and method for predictable and differentiated delivery of multimedia streaming on the internet |
| IL151691A0 (en) * | 2000-03-14 | 2003-04-10 | Teva Pharma | Novel 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 |
| US7124164B1 (en) | 2001-04-17 | 2006-10-17 | Chemtob Helen J | Method and apparatus for providing group interaction via communications networks |
| US6618752B1 (en) * | 2000-04-18 | 2003-09-09 | International Business Machines Corporation | Software and method for multicasting on a network |
| 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 |
| US20030107994A1 (en) * | 2000-05-18 | 2003-06-12 | Jacobs Richard J | 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 |
| AU2001273692A1 (en) | 2000-09-01 | 2002-03-13 | 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 | 한국전자통신연구원 | 스트리밍 서비스를 위한 가변 비트율 처리 방법 |
| ATE370582T1 (de) * | 2000-10-03 | 2007-09-15 | U4Ea Technologies Ltd | Zuweisung von prioritätsstufen in einem datenfluss |
| AU2002237748A1 (en) * | 2000-10-19 | 2002-05-21 | 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 |
| US7376279B2 (en) * | 2000-12-14 | 2008-05-20 | Idx Investment Corporation | 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 |
| WO2002049343A1 (en) | 2000-12-15 | 2002-06-20 | British Telecommunications Public Limited Company | Transmission and reception of audio and/or video material |
| 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 |
| WO2002071191A2 (en) * | 2001-03-02 | 2002-09-12 | Kasenna, Inc. | Metadata enabled push-pull model for efficient low-latency video-content distribution over a network |
| CN1299222C (zh) * | 2001-03-14 | 2007-02-07 | 诺基亚有限公司 | 存在管理的实现 |
| 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 |
| US20020146102A1 (en) * | 2001-03-22 | 2002-10-10 | Lang Alexander C. | 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 |
| US20020178330A1 (en) * | 2001-04-19 | 2002-11-28 | Schlowsky-Fischer Mark Harold | Systems and methods for applying a quality metric to caching and streaming of multimedia files over a network |
| 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 |
| US7478164B1 (en) * | 2001-06-12 | 2009-01-13 | Netapp, Inc. | Methods and apparatus for pacing delivery of streaming media data |
| US7054911B1 (en) | 2001-06-12 | 2006-05-30 | Network Appliance, Inc. | Streaming media bitrate switching methods and apparatus |
| JP2003005947A (ja) | 2001-06-25 | 2003-01-10 | Toshiba Corp | サーバ装置、携帯端末、コンテンツ配信方法、コンテンツ受信方法及びプログラム |
| US20030007464A1 (en) * | 2001-06-25 | 2003-01-09 | Balani Ram Jethanand | Method and device for effecting venue specific wireless communication |
| 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 |
| ES2235065T3 (es) | 2001-07-03 | 2005-07-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Metodo y sistema para gestionar multiples registros. |
| 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 |
| DE60216126T2 (de) * | 2001-09-12 | 2007-10-04 | OpenTV, Inc., San Francisco | Verfahren und gerät für interaktives fernsehen mit unverbundener überwachung einer diskussionsforum |
| 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 |
| JP4852228B2 (ja) | 2001-09-26 | 2012-01-11 | インタラクト デヴァイシーズ インコーポレイテッド | メディア信号を通信するためのシステム及び方法 |
| 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 | 삼성전자주식회사 | 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법 |
| CA2466482C (en) | 2001-11-09 | 2012-08-07 | Musicmatch, Inc. | File splitting, scalable 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 |
| US7127713B2 (en) * | 2002-01-11 | 2006-10-24 | 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 |
| WO2003087997A2 (en) | 2002-04-10 | 2003-10-23 | Akamai Technologies, Inc. | Method and system for enhancing live stream delivery quality using prebursting |
| 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 | 日本電気株式会社 | コンテンツ転送方法、そのプログラム、そのシステム及びサーバ |
| WO2003098897A1 (en) | 2002-05-17 | 2003-11-27 | Koninklijke Philips Electronics N.V. | Quality driven 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 |
| US7707303B2 (en) * | 2002-09-06 | 2010-04-27 | Telefonaktiebolaget L M Ericsson (Publ) | Method and devices for controlling retransmissions in data streaming |
| 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 |
| BR0306317A (pt) | 2002-09-10 | 2007-05-08 | Thomson Licensing Sa | sistema e método de servidor de vìdeo sob demanda |
| 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 |
| CA2505853A1 (en) | 2002-11-18 | 2004-06-03 | British Telecommunications Public Limited Company | Transmission of 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 | 华中科技大学 | 基于集群视频服务器的节目源分片分布式存储方法 |
| KR100759954B1 (ko) * | 2003-02-13 | 2007-09-19 | 노키아 코포레이션 | 멀티미디어 스트리밍에서 클라이언트 레이트 능력을시그널링하는 방법 |
| US7260640B1 (en) | 2003-02-13 | 2007-08-21 | Unisys Corproation | System and method for providing an enhanced enterprise streaming media server capacity and performance |
| 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 |
| GB0306296D0 (en) | 2003-03-19 | 2003-04-23 | British Telecomm | Data transmission |
| EP1615433A4 (en) * | 2003-03-19 | 2010-05-26 | Panasonic Corp | DATA PROCESSING DEVICE |
| 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 |
| 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 |
| US7526565B2 (en) * | 2003-04-03 | 2009-04-28 | International Business Machines Corporation | Multiple description hinting and switching for adaptive media services |
| US20040199472A1 (en) * | 2003-04-04 | 2004-10-07 | Dobbins Kurt A. | Method and apparatus for billing over a network |
| US20040199604A1 (en) * | 2003-04-04 | 2004-10-07 | Dobbins Kurt A. | Method and system for tagging content for preferred transport |
| US8321584B2 (en) * | 2003-04-04 | 2012-11-27 | Ellacoya Networks, Inc. | Method and apparatus for offering preferred transport within a broadband subscriber network |
| US20040196842A1 (en) * | 2003-04-04 | 2004-10-07 | Dobbins Kurt A. | Method and system for according preferred transport based on node identification |
| US7313236B2 (en) | 2003-04-09 | 2007-12-25 | International Business Machines Corporation | Methods and apparatus for secure and adaptive delivery of multimedia content |
| US7844727B2 (en) * | 2003-04-24 | 2010-11-30 | Nokia Corporation | Method and device for proactive rate adaptation signaling |
| US7373416B2 (en) | 2003-04-24 | 2008-05-13 | Akamai Technologies, Inc. | Method and system for constraining server usage in a distributed network |
| 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 |
| WO2005002126A2 (en) | 2003-06-26 | 2005-01-06 | Deviant Technologies, 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 |
| BRPI0413812A (pt) | 2003-08-21 | 2006-10-17 | Vidiator Entpr Inc | dispositivo e método de qualidade de experiência (qoe) para rede de comunicação celular |
| 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 |
| CN100539601C (zh) | 2003-10-15 | 2009-09-09 | 株式会社Ntt都科摩 | 控制多个通信层的操作的设备和方法 |
| US8935717B2 (en) | 2003-10-22 | 2015-01-13 | 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 |
| JP2007520109A (ja) | 2003-12-22 | 2007-07-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | エンコード特性の適応を伴うコンテンツ送信方法 |
| 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 |
| US20060010003A1 (en) | 2004-07-02 | 2006-01-12 | Sky Kruse | User-capability-tailored transfer of digitally encoded content |
| US7593333B2 (en) | 2004-07-07 | 2009-09-22 | Microsoft Corporation | Efficient one-to-many content distribution in a peer-to-peer computer network |
| WO2006010113A2 (en) | 2004-07-09 | 2006-01-26 | Network Foundation Technologies, Llc | Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over 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 |
| KR20060065482A (ko) | 2004-12-10 | 2006-06-14 | 마이크로소프트 코포레이션 | 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스 |
| 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 |
| 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 | ソニー株式会社 | 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム |
| 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 |
| US20080120330A1 (en) | 2005-04-07 | 2008-05-22 | Iofy Corporation | System and Method for Linking User Generated Data Pertaining to Sequential Content |
| US20060236219A1 (en) | 2005-04-19 | 2006-10-19 | Microsoft Corporation | Media timeline processing infrastructure |
| US20080263180A1 (en) | 2007-04-19 | 2008-10-23 | Hurst Mark B | Apparatus, system, and method for resilient content acquisition |
| 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 |
| 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 |
| US20080133766A1 (en) | 2006-05-05 | 2008-06-05 | Wenjun Luo | 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 |
| US7788395B2 (en) | 2007-02-14 | 2010-08-31 | Microsoft Corporation | Adaptive media playback |
| US8578045B2 (en) | 2007-02-14 | 2013-11-05 | Microsoft Corporation | Adaptive bandwidth utilization |
| 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 |
| EP2191402A4 (en) | 2007-08-20 | 2014-05-21 | Nokia Corp | SEGMENTED METADATA AND INDICES FOR STREAMED MULTIMEDIA DATA |
| US7873040B2 (en) | 2007-08-20 | 2011-01-18 | Stephen KARLSGODT | Internet radio player |
| US8078729B2 (en) | 2007-08-21 | 2011-12-13 | Ntt Docomo, Inc. | Media streaming with online caching and peer-to-peer forwarding |
| JP5513400B2 (ja) | 2007-11-16 | 2014-06-04 | ソニック アイピー, インコーポレイテッド | マルチメディアファイルのための階層的で簡略なインデックス構造体 |
| WO2009065144A1 (en) | 2007-11-16 | 2009-05-22 | Divx, Inc. | Chunk header incorporating binary flags and correlated variable-length fields |
| US9060187B2 (en) | 2008-12-22 | 2015-06-16 | Netflix, Inc. | Bit rate stream switching |
| KR20110138276A (ko) | 2009-04-09 | 2011-12-26 | 노키아 코포레이션 | 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치 |
| JP5305453B2 (ja) | 2009-06-19 | 2013-10-02 | Necインフロンティア株式会社 | 無線lanの高速ローミングシステム、高速ローミング方法及び高速ローミングプログラム |
| US8510375B2 (en) | 2009-12-11 | 2013-08-13 | Nokia Corporation | Apparatus and methods for time mapping media segments in streaming media files |
| CN102933619B (zh) | 2011-05-25 | 2016-01-20 | 泰国Abs有限公司 | 含有聚四氟乙烯的组合物及其制备方法 |
-
2005
- 2005-04-28 US US11/116,783 patent/US8868772B2/en active Active
- 2005-05-02 EP EP20216568.4A patent/EP3822805B1/en not_active Revoked
- 2005-05-02 JP JP2007511070A patent/JP5320740B2/ja not_active Expired - Lifetime
- 2005-05-02 EP EP12154559.4A patent/EP2479680B1/en not_active Expired - Lifetime
- 2005-05-02 DK DK20216568.4T patent/DK3822805T3/da active
- 2005-05-02 PT PT121545594T patent/PT2479680T/pt unknown
- 2005-05-02 EP EP05744015.8A patent/EP1743249B1/en not_active Expired - Lifetime
- 2005-05-02 ES ES20216568T patent/ES2975834T3/es not_active Expired - Lifetime
- 2005-05-02 WO PCT/US2005/015091 patent/WO2005109224A2/en not_active Ceased
- 2005-05-02 ES ES12154559T patent/ES2748426T3/es not_active Expired - Lifetime
- 2005-05-02 DK DK05744015.8T patent/DK1743249T3/da active
- 2005-05-02 ES ES05744015T patent/ES2845901T3/es not_active Expired - Lifetime
- 2005-05-02 DK DK12154559.4T patent/DK2479680T3/da active
- 2005-05-02 FI FIEP20216568.4T patent/FI3822805T3/fi active
- 2005-05-02 AU AU2005241481A patent/AU2005241481A1/en not_active Abandoned
- 2005-05-02 PT PT57440158T patent/PT1743249T/pt unknown
- 2005-05-02 PT PT202165684T patent/PT3822805T/pt unknown
- 2005-05-02 CA CA2564861A patent/CA2564861C/en not_active Expired - Lifetime
-
2006
- 2006-11-30 KR KR1020067025274A patent/KR101082642B1/ko not_active Expired - Lifetime
-
2014
- 2014-10-16 US US14/516,303 patent/US9407564B2/en not_active Expired - Lifetime
-
2016
- 2016-07-11 US US15/207,172 patent/US10225304B2/en not_active Expired - Lifetime
-
2019
- 2019-03-04 US US16/291,343 patent/US10757156B2/en not_active Expired - Lifetime
-
2020
- 2020-08-24 US US17/001,647 patent/US20200389510A1/en not_active Abandoned
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2845901T3 (es) | Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming | |
| US12375545B2 (en) | Apparatus, system, and method for multi-bitrate content streaming | |
| US11470138B2 (en) | Apparatus, system, and method for multi-bitrate content streaming | |
| CN101014947A (zh) | 一种关于流内容的自适应速率切换的装置、系统和方法 | |
| AU2011213730B2 (en) | Apparatus, system, and method for adaptive-rate shifting of streaming content |

