RU2543568C2 - Плавная потоковая передача клиентского мультимедиа без фиксации состояния - Google Patents
Плавная потоковая передача клиентского мультимедиа без фиксации состояния Download PDFInfo
- Publication number
- RU2543568C2 RU2543568C2 RU2011137994/08A RU2011137994A RU2543568C2 RU 2543568 C2 RU2543568 C2 RU 2543568C2 RU 2011137994/08 A RU2011137994/08 A RU 2011137994/08A RU 2011137994 A RU2011137994 A RU 2011137994A RU 2543568 C2 RU2543568 C2 RU 2543568C2
- Authority
- RU
- Russia
- Prior art keywords
- multimedia
- client
- server
- request
- component
- Prior art date
Links
Images
Classifications
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- 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/752—Media network packet handling adapting media to network capabilities
-
- 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
- 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/762—Media network packet handling at the source
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Investigating Or Analysing Biological Materials (AREA)
Abstract
Изобретение относится к компьютерной технике, а именно к способам плавного воспроизведения мультимедиа на клиенте. Техническим результатом является обеспечение бесперебойной потоковой передачи мультимедиа клиентским компьютерным устройством за счет временной синхронизации между клиентом и сервером. Предложен машинореализуемый способ плавного воспроизведения мультимедиа на клиенте. Способ включает в себя этап, на котором осуществляют отправку из клиента запроса на порцию мультимедиа в сервер по сети. Указанная порция содержит равномерную часть мультимедиа, доступную с сервера для множества клиентов, а запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов. Далее, согласно способу, принимают в клиенте запрошенную порцию и разбирают упомянутую порцию на часть, относящуюся к метаданным, и часть, относящуюся к мультимедийным данным. 3 н. и 17 з.п. ф-лы, 4 ил.
Description
Уровень техники
Потоковое мультимедиа - это мультимедиа, которое постоянно принимается и обычно представляется конечному пользователю (с использованием клиента), в то время как оно доставляется посредством поставщика потоковой передачи (с использованием сервера). Существует несколько протоколов для потокового мультимедиа, включающих в себя протокол потоковой передачи в реальном времени (RTSP), транспортный протокол реального времени (RTP) и протокол управления транспортным уровнем в реальном времени (RTCP), которые приложения потоковой передачи данных зачастую используют совместно. Протокол потоковой передачи в реальном времени (RTSP), разработанный инженерной группой по развитию Интернета (IETF) и созданный в 1998 году в качестве запроса на обсуждение (RFC) 2326, является протоколом для использования в системах потокового мультимедиа, который дает возможность клиенту удаленно управлять сервером потокового мультимедиа, выдавая команды в стиле VCR, к примеру, "воспроизведение" и "пауза", и предоставляя временной доступ к файлам на сервере.
Отправка самих потоковых данных не является частью RTSP-протокола. Большинство RTSP-серверов используют стандартизированный RTP в качестве транспортного протокола для фактических аудиовидеоданных, выступая в определенной степени в качестве канала метаданных. RTP задает стандартизированный формат пакетов для доставки аудио и видео по Интернету. RTP разработан рабочей группой по вопросам транспортировки аудио-видео IETF и сначала опубликован в 1996 году как RFC 1889 и заменен на RFC 3550 в 2003 году. Протокол является аналогичным по синтаксису и работе протоколу передачи гипертекста (HTTP), но RTSP добавляет новые запросы. Хотя HTTP - это протокол без фиксации состояния, RTSP является протоколом с фиксацией состояния. RTSP использует идентификатор сеанса, чтобы отслеживать сеансы при необходимости. RTSP-сообщения отправляются из клиента на сервер, хотя существуют некоторые исключения на то, когда сервер должен отправлять сообщения в клиент.
Приложения потоковой передачи данных обычно используют RTP в сочетании с RTCP. Хотя RTP переносит мультимедийные потоки (например, аудио и видео) или внеполосные служебные сигналы (двухтональный многочастотный набор номера (DTMF)), приложения потоковой передачи данных используют RTCP, чтобы отслеживать статистику передачи и информацию качества обслуживания (QoS). RTP допускает только один тип сообщения, которое переносит данные из источника в точку назначения. Во многих случаях, существует потребность в других сообщениях в сеансе. Эти сообщения управляют потоком и качеством данных и дают возможность получателю отправлять обратную связь в источник или источники. RTCP является протоколом, спроектированным с этой целью. RTCP имеет пять типов сообщений: сообщение отправляющего устройства, сообщение приемного устройства, сообщение описания источника, сообщение завершения и специализированное сообщение. RTCP предоставляет внеполосную управляющую информацию для RTP-потока и взаимодействует с RTP при доставке и пакетировании мультимедийных данных, но не транспортирует сами данные. Приложения потоковой передачи данных используют RTCP, чтобы периодически передавать управляющие пакеты участникам потокового мультимедийного сеанса. Одна функция RTCP состоит в том, чтобы предоставлять обратную связь по качеству обслуживания, которое предоставляет RTP. RTCP собирает статистику по мультимедийному подключению и такую информацию, как "отправлено байтов", "отправлено пакетов", "потеряно пакетов", "дрожание", "обратная связь" и "задержка на передачу и подтверждение приема". Приложение может использовать эту информацию, чтобы повышать качество обслуживания, возможно посредством ограничения потока либо использования другого кодека или скорости передачи битов.
Одна проблема в существующих архитектурах передачи мультимедиа заключается в жесткой связи между сервером и клиентом. Соединение с фиксацией состояния между клиентом и сервером создает дополнительный объем служебной информации сервера, поскольку сервер отслеживает текущее состояние каждого клиента. Это также ограничивает масштабируемость сервера. Помимо этого, клиент не может быстро реагировать на изменения условий, такие как увеличенные потери пакетов, уменьшенная полоса пропускания, пользовательские запросы на предмет другого содержимого, или модифицировать существующее содержимое (например, ускорение или перемотка обратно) и т.д., без первоначального обмена данными с сервером и ожидания от сервера адаптации и ответа. Зачастую, когда клиент сообщает меньшую доступную полосу пропускания (например, через RTCP), сервер не адаптируется достаточно быстро, вызывая перерывы в мультимедиа, которые замечаются пользователем на клиенте, поскольку пакеты, которые превышают доступную полосу пропускания, не принимаются, и новые пакеты с меньшей скоростью передачи битов не отправляются из сервера вовремя. Чтобы не допускать этих проблем, клиенты зачастую буферизуют данные, но буферизация вводит время задержки, которое для передаваемых вживую событий может быть недопустимым.
Помимо этого, Интернет содержит множество типов загружаемых элементов мультимедийного содержимого, включающих в себя аудио, видео, документы и т.д. Эти элементы содержимого являются зачастую очень большими, к примеру, видео в сотни мегабайтов. Пользователи зачастую извлекают документы по Интернету с использованием HTTP через веб-обозреватель. Интернет создал обширную инфраструктуру из маршрутизаторов и прокси-серверов, которые являются эффективными при кэшировании данных для HTTP. Серверы могут предоставлять кэшированные данные клиентам с меньшей задержкой и посредством использования меньших ресурсов, чем при повторном запрашивании содержимого из первоначального источника. Например, пользователь в Нью-Йорке может загружать элемент содержимого, обслуживаемый из хоста в Японии, и принимать элемент содержимого через маршрутизатор в Калифорнии. Если пользователь в Нью-Джерси запрашивает идентичный файл, маршрутизатор в Калифорнии может иметь возможность предоставлять элемент содержимого без повторного запрашивания данных из хоста в Японии. Это уменьшает сетевой трафик по возможно загруженным маршрутам и дает возможность пользователю в Нью-Джерси принимать элемент содержимого с меньшим временем задержки.
К сожалению, передаваемое вживую мультимедиа зачастую не может кэшироваться с использованием существующих протоколов, и каждый клиент запрашивает мультимедиа из идентичного сервера или набора серверов. Помимо этого, когда потоковое мультимедиа может кэшироваться, зачастую применяются специализированные аппаратные средства для кэширования вместо существующей и легкодоступной инфраструктуры Интернет-кэширования на основе HTTP. Отсутствие кэширования ограничивает число параллельных зрителей и запросов, которые серверы могут обрабатывать, и ограничивает посещаемость передаваемого вживую события. Мир все больше и больше применяет Интернет, чтобы использовать вплоть до минуты передаваемую вживую информацию, например, рекордное число пользователей, которое просматривало передаваемые вживую события, к примеру, открытие Олимпийских Игр 2008 года через Интернет. Ограничения современной технологии замедляют использование Интернета в качестве среды для потребления этого типа мультимедийного содержимого.
Сущность изобретения
В данном документе описана система адаптивной потоковой передачи, которая предоставляет соединение без фиксации состояния между клиентом и сервером для воспроизведения потокового мультимедиа, в котором данные форматируются таким способом, который дает возможность клиенту принимать решения, традиционно выполняемые посредством сервера, и, следовательно, реагировать более быстро на изменяющиеся характеристики сети. Клиент запрашивает равномерные порции мультимедиа из сервера, которые включают в себя часть мультимедиа. Система адаптивной потоковой передачи запрашивает части мультимедийного файла или передаваемого вживую потокового события в порциях небольшого размера, имеющих отличающийся URL-адрес. Это дает возможность существующей инфраструктуре Интернет-кэширования кэшировать потоковое мультимедиа, тем самым давая возможность большему числу клиентов просматривать идентичное содержимое приблизительно одновременно. По мере того, как событие проходит, клиент продолжает запрашивать порции до конца события или мультимедиа. Каждая порция содержит информацию метаданных, которая описывает кодирование порции и мультимедийного содержимого для воспроизведения посредством клиента. Сервер может предоставлять порции в нескольких кодировках, так что клиент может быстро переключаться на порции с другой скоростью передачи битов или скоростью воспроизведения. Таким образом, система адаптивной потоковой передачи предоставляет улучшенное взаимодействие с пользователем с меньшим числом перерывов при воспроизведении потокового мультимедиа и повышенной вероятностью того, что клиент принимает мультимедиа с меньшим временем задержки из более локального сервера кэширования.
Данная сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не имеет намерением ни то, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленного предмета изобретения, ни то, чтобы быть использованной так, чтобы ограничивать объем заявленного предмета изобретения.
Краткое описание чертежей
Фиг.1 является блок-схемой, которая иллюстрирует компоненты системы адаптивной потоковой передачи в одном варианте осуществления.
Фиг.2 является блок-схемой, которая иллюстрирует операционное окружение системы плавной потоковой передачи с использованием Microsoft Windows и IIS в одном варианте осуществления.
Фиг.3 является блок-схемой последовательности операций способа, которая иллюстрирует обработку системы адаптивной потоковой передачи на клиенте, чтобы воспроизводить мультимедиа, в одном варианте осуществления.
Фиг.4 является блок-схемой последовательности операций способа, которая иллюстрирует обработку системы адаптивной потоковой передачи, чтобы обрабатывать одну порцию мультимедиа, в одном варианте осуществления.
Подробное описание изобретения
В данном документе описана система адаптивной потоковой передачи, которая предоставляет соединение без фиксации состояния между клиентом и сервером для воспроизведения потокового мультимедиа, в котором данные форматируются таким способом, который дает возможность клиенту принимать решения, возлагаемые на сервер в предыдущих протоколах, и, следовательно, реагировать более быстро на изменяющиеся характеристики сети. Помимо этого, система адаптивной потоковой передачи работает таким способом, который дает возможность существующей инфраструктуре Интернет-кэширования кэшировать потоковые мультимедийные данные, тем самым давая возможность большему числу клиентов просматривать идентичное содержимое приблизительно одновременно. Система адаптивной потоковой передачи запрашивает части мультимедийного файла или передаваемого вживую потокового события в порциях небольшого размера, имеющих отличающийся URL-адрес. Каждая порция может быть отдельным мультимедийным файлом или может быть частью целого мультимедийного файла. По мере того, как событие проходит, клиент продолжает запрашивать порции до конца события. Каждая порция содержит информацию метаданных, которая описывает кодирование порции и мультимедийного содержимого для воспроизведения посредством клиента. Сервер может предоставлять порции в нескольких кодировках, так что клиент, например, может быстро переключаться на порции с другой скоростью передачи битов или скоростью воспроизведения. Поскольку порции соответствуют HTTP-стандартам Консорциума по разработке и распространению стандартов и протоколов для WWW-систем (W3C), порции являются достаточно небольшими, чтобы кэшироваться, и система предоставляет порции аналогичным образом в каждого клиента, порции естественно кэшируются посредством существующей Интернет-инфраструктуры без модификации. Таким образом, система адаптивной потоковой передачи предоставляет улучшенное взаимодействие с пользователем с меньшим числом перерывов при воспроизведении потокового мультимедиа и повышенной вероятностью того, что клиент принимает мультимедиа с меньшем временем задержки из более локального сервера кэширования. Поскольку соединение между клиентом и сервером является соединением без фиксации состояния, идентичный клиент и сервер не должны быть соединены в течение длительности длинного события. Система без фиксации состояния, описанная в данном документе, вообще не имеет сходства с сервером, давая возможность клиентам объединять манифесты из серверов, которые, возможно, были начаты в разное время, а также давая возможность администраторам сервера активировать или завершать работу исходных серверов согласно тому, что диктует нагрузка.
В некоторых вариантах осуществления, система адаптивной потоковой передачи использует новый формат передачи данных между сервером и клиентом. Клиент запрашивает порции мультимедиа из сервера, которые включают в себя часть мультимедиа. Например, для 10-минутного файла, клиент может запрашивать 2-секундные порции. Следует отметить, что в отличие от типичной потоковой передачи, при которой сервер проталкивает данные в клиента, в этом случае клиент извлекает порции мультимедиа из сервера. В случае передаваемого вживую потока сервер может создавать мультимедиа "на лету" и формировать порции, чтобы отвечать на клиентские запросы. Таким образом, клиент может отставать от сервера только на несколько порций с точки зрения того, насколько быстро сервер создает порции и насколько быстро клиент запрашивает порции.
Каждая порция содержит метаданные и мультимедийное содержимое. Метаданные могут описывать полезную информацию о мультимедийном содержимом, к примеру, скорость передачи битов мультимедийного содержимого, в каком месте мультимедийное содержимое входит в больший мультимедийный элемент (например, эта порция представляет смещение 1:10 в 10-минутном видеоклипе), кодек, используемый для того, чтобы кодировать мультимедийное содержимое, и т.д. Клиент использует эту информацию, чтобы помещать порцию в раскадровку большего мультимедийного элемента и надлежащим образом декодировать и воспроизводить мультимедийное содержимое.
Фиг.1 является блок-схемой, которая иллюстрирует компоненты системы адаптивной потоковой передачи в одном варианте осуществления. Система 100 адаптивной потоковой передачи включает в себя компонент 110 запросов порций, компонент 120 синтаксического анализа порций, компонент 130 ассемблирования манифестов, компонент 140 воспроизведения мультимедиа, компонент 150 мониторинга QoS и компонент 160 тактовой синхронизации. Каждый из этих компонентов описывается подробнее в данном документе. Система 100 адаптивной потоковой передачи, как описано в данном документе, работает главным образом в клиентской компьютерной системе. Тем не менее, специалисты в данной области техники должны понимать, что различные компоненты системы могут быть размещены в различных местоположениях в сетевом окружении содержимого, чтобы предоставлять конкретные положительные результаты.
Компонент 110 запросов порций выполняет запросы из клиента на предмет отдельных порций мультимедиа из сервера. Как показано на фиг.2, клиентский запрос может передаваться сначала на граничный сервер (например, Интернет-кэш), затем на исходный сервер и затем на принимающий сервер. На каждой стадии, если запрашиваемые данные обнаружены, то запрос не поступает на следующий уровень. Например, если граничный сервер имеет запрашиваемые данные, то клиент принимает данные из граничного сервера, и исходный сервер не принимает запрос. Каждая порция может иметь универсальный указатель ресурса (URL), который индивидуально идентифицирует порцию. Серверы Интернет-кэширования способны кэшировать ответы сервера на конкретные URL-запросы (например, HTTP GET). Таким образом, когда первый клиент осуществляет вызов сервера, чтобы получать порцию, граничные серверы кэшируют эту порцию, и последующие клиенты, которые запрашивают идентичную порцию, могут принимать порцию из граничного сервера (на основе настроек продолжительности существования кэша и серверного времени существования (TTL)). Компонент 110 запросов порций принимает порцию и передает ее в компонент 120 синтаксического анализа порций для интерпретации.
Компонент 120 синтаксического анализа порций интерпретирует формат порции мультимедиа, принимаемой посредством компонента 110 запросов порций, и разделяет порцию на составные части. Типично, порция включает в себя часть заголовка, содержащую метаданные, и часть данных, содержащую мультимедийное содержимое. Компонент синтаксического анализа порций предоставляет метаданные в компонент 130 ассемблирования манифестов и мультимедийное содержимое в компонент 140 воспроизведения мультимедиа.
Компонент 130 ассемблирования манифестов ассемблирует манифест, который описывает мультимедийный элемент, которому принадлежит принимаемое мультимедийное содержимое. Большие мультимедийные файлы, которые клиенты загружают как единое целое (т.е. не передаваемые потоком), зачастую включают в себя манифест, описывающий весь файл, кодеки и скорости передачи битов, используемые для того, чтобы кодировать различные части файла, маркеры значимых положений в файле и т.д. Во время потоковой передачи, в частности, передаваемого вживую содержимого, сервер не может предоставлять готовый манифест, поскольку событие по-прежнему продолжается. Таким образом, сервер предоставляет максимально возможно большую часть манифеста через метаданные в порциях мультимедиа. Сервер также может предоставлять интерфейс прикладного программирования (API), к примеру, предварительно заданный URL-адрес, для клиента, чтобы запрашивать манифест до текущей точки в мультимедийном потоке. Это может быть полезным, когда клиент присоединяется к передаваемому вживую и потоком событию после того, как событие уже происходит. Манифест дает возможность клиенту запрашивать ранее переданные потоком части мультимедийного элемента (например, посредством перемотки обратно), и клиент продолжает принимать новые части манифеста через метаданные порций передаваемого в потоке мультимедиа.
Компонент 130 ассемблирования манифестов ассемблирует манифест, аналогичный манифесту, доступному для готового мультимедийного файла. Таким образом, по мере того, как событие продолжается, если пользователь хочет переходить назад по мультимедиа (например, перематывать обратно или переходить к конкретному положению), затем переходить вперед снова, пользователь может осуществлять это, и клиент использует ассемблированный манифест, чтобы находить надлежащую порцию или порции для воспроизведения пользователю. Когда пользователь ставит воспроизведение на паузу, система 100 может продолжать принимать порции мультимедиа (или только часть метаданных порций на основе отличающегося URL-адреса запроса), так что компонент 130 ассемблирования манифестов может продолжать компоновать манифест и готов к любым пользовательским запросам (например, чтобы переходить к текущему положению "вживую" или воспроизводить с точки паузы), после того как пользователь поставил на паузу. Клиентский ассемблированный манифест дает возможность клиенту воспроизводить мультимедийное событие как содержимое по запросу, как только событие закончено, и перемещаться в мультимедийном событии по мере того, как оно продолжается.
Компонент 140 воспроизведения мультимедиа воспроизводит принимаемое мультимедийное содержимое с использованием клиентских аппаратных средств. Компонент 140 воспроизведения мультимедиа может активировать один или более кодеков, чтобы интерпретировать контейнер, в котором транспортируется мультимедийное содержимое, и распаковывать или иным образом декодировать мультимедийное содержимое из сжатого формата в исходный формат (например, YV12, RGBA или PCM-аудиовыборки), готовый к воспроизведению. Компонент 140 воспроизведения мультимедиа затем может предоставлять мультимедийное содержимое в исходном формате в API операционной системы (например, Microsoft DirectX) для воспроизведения на аппаратных средствах воспроизведения звука и видео локальной компьютерной системы, к примеру, на дисплее и динамиках.
Компонент 150 мониторинга QoS анализирует успешность приема пакетов из сервера и адаптирует клиентские запросы на основе набора текущей сети и других состояний. Например, если клиент обычно принимает порции приема мультимедиа с запозданием, то компонент 150 может определять то, что полоса пропускания между клиентом и сервером является недостаточной для текущей скорости передачи битов, и клиент может начинать запрашивать порции мультимедиа на меньшей скорости передачи битов. Мониторинг QoS может включать в себя измерение другой эвристики, к примеру, частоты кадров при рендеринге, размера окна, размера буфера, частоты повторной буферизации и т.д. Порции мультимедиа для каждой скорости передачи битов могут иметь отличающийся URL-адрес так, что порции для различных скоростей передачи битов кэшируются посредством инфраструктуры Интернет-кэширования. Следует отметить, что сервер не отслеживает состояние клиента и не знает, на какой скорости передачи битов любой конкретный клиент в настоящее время воспроизводит. Сервер может просто предоставлять идентичный мультимедийный элемент на множестве скоростей передачи битов, чтобы удовлетворять потенциальным клиентским запросам в диапазоне состояний. Помимо этого, начальный манифест и/или метаданные, которые принимает клиент, могут включать в себя информацию о скоростях передачи битов и других свойствах кодирования, доступную из сервера, так что клиент может выбирать кодирование, которое предоставляет хорошее взаимодействие с клиентом.
Следует отметить, что при переключении скоростей передачи битов, клиент просто начинает запрашивать новую скорость передачи битов и воспроизводить порции на новой скорости передачи битов по мере того, как клиент принимает порции. Клиент не должен отправлять управляющую информацию на сервер и ожидать до тех пор, пока сервер адаптирует поток. Клиентский запрос может даже не достигать сервера вследствие кэша между клиентом и сервером, удовлетворяющего запрос. Таким образом, клиент реагирует намного быстрее, чем клиенты в традиционных системах потоковой передачи мультимедиа, и нагрузка на сервер за счет наличия различных клиентов, подключенных при различных текущих условиях, резко уменьшается. Помимо этого, поскольку текущее состояние зачастую является локализованным, вероятно, что множество клиентов в конкретной географической области или для конкретного поставщика Интернет-услуг (ISP) испытывают аналогичные характеристики и запрашивают аналогичные кодировки мультимедиа (например, скорости передачи битов). Поскольку кэши также зачастую являются локализованными, вероятно, что клиенты в конкретном случае обнаруживают, что кэш около них наполнен данными, которые каждый из них запрашивает, так что время задержки, испытываемое посредством каждого клиента, является низким.
Компонент 160 тактовой синхронизации синхронизирует тактовые сигналы сервера и клиента. Несмотря на то, что абсолютное время, в общем, является нерелевантным для клиента и сервера, возможность идентифицировать конкретную порцию и знание скорости (т.е. такта), на которой можно запрашивать порции, является релевантным для клиента. Например, если клиент запрашивает данные слишком быстро, сервер еще не имеет данных и отвечает с помощью ответов с ошибками (например, ответ с ошибкой "HTTP 404 не найдено"), создавая множество ложных запросов, которые излишне используют полосу пропускания. С другой стороны, если клиент запрашивает данные слишком медленно, то клиент может вовремя не иметь данных для воспроизведения, создавая заметные перерывы в мультимедиа, воспроизводимом пользователю. Таким образом, клиент и сервер хорошо работают, когда клиент знает скорость, на которой сервер формирует новые порции, и знает, в каком месте текущая порция входит в общую временную шкалу. Компонент 160 тактовой синхронизации предоставляет эту информацию посредством предоставления возможности серверу и клиенту иметь аналогичное значение тактового сигнала в конкретное время. Сервер также может помечать каждую порцию мультимедиа с помощью времени, в которое сервер создал порцию.
Тактовая синхронизация также дает серверу общий опорный уровень для каждого из кодеров. Например, сервер может кодировать данные на нескольких скоростях передачи и с использованием нескольких кодеков одновременно. Каждый кодер может обращаться к кодированным данным различным способом, но временная метка может задаваться общей для всех кодеров. Таким образом, если клиент запрашивает конкретную порцию, клиент получает мультимедиа, представляющее идентичный период независимо от кодирования, которое выбирает клиент.
Вычислительное устройство, в котором реализована система, может включать в себя центральный процессор, запоминающее устройство, устройства ввода (к примеру, клавиатуру и указательные устройства), устройства вывода (к примеру, дисплейные устройства) и устройства хранения данных (к примеру, накопители на дисках и другие энергонезависимые носители хранения данных). Запоминающее устройство и устройства хранения данных являются машиночитаемыми носителями хранения данных, которые могут быть кодированы с помощью машиноисполняемых инструкций (например, программных), которые реализуют или предоставляют систему. В дополнение, структуры данных и структуры сообщений могут быть сохранены или переданы через среду передачи данных, такую как сигнал в линии связи. Могут быть использованы различные линии связи, такие как Интернет, локальная вычислительная сеть, глобальная вычислительная сеть, коммутируемое соединение "точка-точка", сотовая телефонная сеть и т.п.
Варианты осуществления системы могут быть реализованы в различных операционных окружениях, которые включают в себя персональные компьютеры, серверные компьютеры, карманные или переносные устройства, многопроцессорные системы, микропроцессорные системы, программируемую бытовую электронную аппаратуру, цифровые камеры, сетевые ПК (персональные компьютеры, PC), миникомпьютеры, мэйнфреймы, распределенные вычислительные окружения, которые включают в себя любую из вышеприведенных систем или устройств, и т.п. Компьютерными системами могут быть сотовые телефоны, персональные цифровые устройства, смартфоны, персональные компьютеры, программируемая бытовая электронная аппаратура, цифровые камеры и т.п.
Система также может быть описана в общем контексте машиноисполняемых инструкций, таких как программные модули, выполняемые посредством одного или более компьютеров или других устройств. В общем, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Типично, функциональность программных модулей может быть комбинированной и распределенной требуемым образом в различных вариантах осуществления.
Фиг.2 является блок-схемой, которая иллюстрирует операционное окружение системы плавной потоковой передачи с использованием Microsoft Windows и IIS в одном варианте осуществления. Окружение типично включает в себя исходный клиент 210, сеть 240 доставки содержимого и внешнюю сеть 270. Исходный клиент является источником мультимедийного или передаваемого вживую события. Исходный клиент включает в себя источник 220 мультимедиа и один или более кодеров 230. Источник 220 мультимедиа может включать в себя камеры, каждая из которых предоставляет несколько ракурсов камеры, микрофоны захватывают аудио, слайдовые презентации, текст (к примеру, из службы скрытых субтитров), изображения и другие типы мультимедиа. Кодеры 230 кодируют данные из источника 220 мультимедиа в одном или более форматов кодирования параллельно. Например, кодеры 230 могут формировать кодированное мультимедиа на множестве скоростей передачи битов.
Сеть 240 доставки содержимого включает в себя один или более принимающих серверов 250 и один или более исходных серверов 260. Принимающие серверы 250 принимают кодированное мультимедиа в каждом из форматов кодирования из кодеров 230 и создают манифест, описывающий кодированное мультимедиа. Принимающие серверы 250 могут создавать и сохранять порции мультимедиа, описанные в данном документе, или могут создавать порции "на лету" по мере того, как они запрашиваются. Принимающие серверы 250 могут принимать проталкиваемые данные, к примеру, через HTTPPOST, из кодеров 230 или через извлечение посредством запрашивания данных из кодеров 230. Кодеры 230 и принимающие серверы 250 могут соединяться во множестве конфигураций с резервированием. Например, каждый кодер может отправлять кодированные мультимедийные данные в каждый из принимающих серверов 250 или только в один принимающий сервер до тех пор, пока не возникает сбой. Исходные серверы 260 являются серверами, которые отвечают на клиентские запросы на предмет порций мультимедиа. Исходные серверы 260 также могут конфигурироваться во множестве конфигураций с резервированием.
Внешняя сеть 270 включает в себя граничные серверы 280 и другую Интернет- (или другую сетевую) инфраструктуру и клиенты 290. Когда клиент выполняет запрос на предмет порции мультимедиа, клиент адресует запрос на исходные серверы 260. Вследствие схемы сетевого кэширования, если один из граничных серверов 280 содержит данные, то этот граничный сервер может отвечать клиенту без передачи запроса. Тем не менее, если данные не доступны в граничном сервере, то граничный сервер передает запрос в один из исходных серверов 260. Аналогично, если один из исходных серверов 260 принимает запрос на данные, которые не доступны, исходный сервер может запрашивать данные из одного из принимающих серверов 250.
Фиг.3 является блок-схемой последовательности операций способа, которая иллюстрирует обработку системы адаптивной потоковой передачи на клиенте, чтобы воспроизводить мультимедиа, в одном варианте осуществления. Сначала на этапе 310, система выбирает начальное кодирование, при котором можно запрашивать кодированное мультимедиа из сервера. Например, система может первоначально выбирать наименьшую доступную скорость передачи. Система, возможно, ранее отправила запрос на сервер, чтобы обнаруживать доступные скорости передачи и другие доступные кодировки. Далее на этапе 320, система запрашивает и воспроизводит конкретную порцию мультимедиа, как описано дополнительно со ссылкой на фиг.4. Далее на этапе 330, система определяет показатель качества обслуживания на основе запрашиваемой порции. Например, порция может включать в себя метаданные для стольких порций, сколько сервер в настоящее время сохраняет, которые клиент может использовать для того, чтобы определять то, насколько быстро клиент запрашивает порции относительно того, насколько быстро сервер формирует порции. Этот процесс описывается подробнее в данном документе.
Далее на этапе 340 принятия решения, если система определяет то, что текущий показатель QoS является слишком низким, и соединение клиента с сервером не может обрабатывать текущее кодирование, затем система переходит к этапу 350, иначе система возвращается к этапу 320, чтобы обрабатывать следующую порцию. Далее на этапе 350, система выбирает другое кодирование мультимедиа, при этом система выбирает другое кодирование посредством запрашивания данных из другого URL-адреса на предмет последующих порций из сервера. Например, система может выбирать кодирование, которое использует половину полосы пропускания текущего кодирования. Аналогично, система может определять то, что показатель QoS указывает, что клиент может обрабатывать кодирование на более высокой скорости передачи битов, и клиент может запрашивать более высокую скорость передачи битов для последующих порций. Таким образом, клиент регулирует скорость передачи битов на предмет повышения и понижения на основе текущего состояния.
Несмотря на то, что фиг.3 иллюстрирует определение QoS как осуществляемое после каждой порции, специалисты в данной области техники должны распознавать, что другие реализации QoS являются общераспространенными, к примеру, ожидание фиксированного числа пакетов или порций (например, каждого 10-го пакета), чтобы выполнять определение QoS. После этапа 350, система возвращается к этапу 320, чтобы обрабатывать следующую порцию, если она доступна, или завершает выполнение, если дополнительное мультимедиа недоступно (не показано).
Фиг.4 является блок-схемой последовательности операций способа, которая иллюстрирует обработку системы адаптивной потоковой передачи, чтобы обрабатывать одну порцию мультимедиа, в одном варианте осуществления. Далее на этапе 410, система отправляет запрос на порцию из клиента на сервер по сети на основе выбранной начальной скорости передачи битов. Например, система может выбирать конкретный URL-адрес, по которому можно запрашивать данные, на основе выбранного кодирования (например, http://server/a.isml/quality/bitrate). Далее на этапе 420, система принимает запрашиваемую порцию в клиенте. Система может принимать порцию из сервера или из кэша между сервером и клиентом в сети. Далее на этапе 430, система синтаксически разбирает порцию на часть метаданных и часть мультимедийных данных. Например, каждая порция может содержать метаданные, которые описывают кодирование порции, и мультимедийные данные, подходящие для воспроизведения с использованием кодека и надлежащих аппаратных средств.
Далее на этапе 440, система добавляет метаданные порции в действующий мультимедийный манифест, который описывает информацию о большем мультимедийном элементе, которому принадлежит каждая из порций мультимедийных данных. Например, система может сохранять манифест в запоминающем устройстве, который содержит метаданные из каждой порции мультимедийного файла. Далее на этапе 450, система воспроизводит мультимедийные данные с использованием кодека, идентифицированного посредством метаданных порции и аппаратных средств клиента. Мультимедийные данные могут включать в себя видео, аудио и другие типы данных, которые система воспроизводит на аппаратных средствах, включающих в себя дисплей, динамики и т.д. Альтернативно или дополнительно, данные могут включать в себя неаудиовизуальные данные (например, текст), которые используются некоторым отличным от воспроизведения способом, при этом система обрабатывает данные на основе типа данных. После этапа 450, эти этапы завершаются.
В некоторых вариантах осуществления, система адаптивной потоковой передачи предоставляет функциональность в стиле цифрового записывающего видеоустройства (DVR) для передаваемых вживую мультимедийных потоков. Другими словами, пользователи могут ставить на паузу передаваемый вживую поток, выполнять поиск в передаваемом вживую потоке и т.д., без дополнительных действий по отслеживанию состояния сервера. В передаваемом вживую потоке, существует несколько сценариев, к примеру, пропущенная сцена, пауза, чтобы сделать перерыв, присоединение к событию не с начала и намерение просматривать с начала, и т.д., которые обеспечиваются посредством предоставления возможности пользователю посредством системы воспроизводить порции в различном порядке и в различное время. На основе ассемблированного манифеста, описанного в данном документе, система предлагает пользовательский элемент управления согласно тому, как он просматривает передаваемый вживую поток. Эти элементы управления доступны сегодня с помощью телевизора через DVR. Система адаптивной потоковой передачи включает в себя клиентские элементы управления, чтобы отвечать на действия пользователя и управлять воспроизведением передаваемого вживую потока в режиме передачи не вживую посредством поиска различных местоположений в манифесте. Помимо этого, клиент может переключаться между просмотром вживую и не вживую во время воспроизведения.
В некоторых вариантах осуществления, система адаптивной потоковой передачи работает в подключаемом модуле веб-обозревателя. Например, система может быть включена в приложение Microsoft Silverlight. Microsoft Silverlight принимает ссылки в веб-страницах на приложения, содержащиеся в контейнерах под названием файлы XAP. Microsoft Silverlight извлекает файл XAP и активирует приложение. Microsoft Silverlight предоставляет для приложений изолированное защищенное окружение, в котором можно работать так, что компьютерная система пользователя защищена от злоумышленного или ошибочного кода приложения. Microsoft Silverlight предоставляет API, которые приложения могут вызывать для того, чтобы воспроизводить мультимедиа, способом, который экранирует компьютерную систему и аппаратные средства пользователя от потенциально наносящих вред действий приложений. Таким образом, Microsoft Silverlight и другие подключаемые модули обозревателя могут предоставлять всю функциональность окружения, в котором, как ожидается, система адаптивной потоковой передачи должна работать.
В некоторых вариантах осуществления, система адаптивной потоковой передачи принимает метаданные последующих порций в текущей порции. Например, сервер может хранить конкретную порцию, которая готова, до тех пор, пока некоторое число дополнительных порций (например, две порции) не является доступным. Затем, сервер может отправлять порцию вместе с информацией метаданных по нескольким следующим порциям. Клиент может использовать эту информацию, чтобы иметь сведения о том, что должно поступать, и адаптироваться надлежащим образом. Это дает возможность клиенту разумно регулировать скорость запроса. Например, если клиент запрашивает порцию, и он не имеет информации по последующим порциям, то клиент знает, что он запрашивает данные слишком быстро. Если клиент запрашивает порцию и принимает информацию по слишком большому числу последующих порций, то клиент может запрашивать информацию слишком медленно. Таким образом, клиент может адаптироваться с использованием предварительных метаданных в качестве подсказки.
В некоторых вариантах осуществления, система адаптивной потоковой передачи предоставляет модель подключаемых модулей для эвристики, чтобы определять то, какое кодирование мультимедиа использовать в конкретное время. Например, система может давать возможность администратору выбирать между несколькими стратегиями для определения скорости передачи битов, на которой можно запрашивать порции мультимедиа, на основе конкретного состояния (например, уменьшенной полосы пропускания или увеличенных потерь пакетов). Помимо этого, поставщики содержимого могут включать собственную эвристику для определения кодирования для использования и могут предоставлять эвристику в качестве модулей приложений или связанных с конкретным приложением модулей в файле пакета приложений (например, Microsoft Silverlight XAP), который клиент загружает при воспроизведении мультимедиа от поставщика содержимого.
В некоторых вариантах осуществления, система адаптивной потоковой передачи сохраняет ассемблированный манифест, описанный в данном документе, для последующего использования, к примеру, воспроизведения через день после передаваемого вживую события. Во время передаваемого вживую события клиент может запрашивать порции различных кодировок на основе характеристик сети. Клиентский обозреватель также может содержать эти порции в кэше обозревателя. Если пользователь запрашивает воспроизведение мультимедиа позднее, может быть самым эффективным пытаться воспроизводить мультимедиа из локального кэша, что, в общем, означает, что клиент запрашивает те же самые порции, которые первоначально воспроизведены. Посредством сохранения манифеста с метаданными из каждой порции, которая фактически принята, клиент может воспроизводить мультимедиа непрерывно с использованием идентичных кодировок, которые запрошены ранее. Это может предоставлять возможность пользователю просматривать мультимедиа, например, в самолете, где возможности подключения с исходным сервером могут быть недоступными.
В некоторых вариантах осуществления, система адаптивной потоковой передачи предоставляет логику для синхронизации связанных мультимедийных потоков. Например, передаваемое вживую аудиовизуальное событие может включать в себя один или более видеопотоков (например, ракурсов камеры) и один или более аудиопотоков (например, языков). Поскольку клиент загружает аудио и порции видео отдельно, система воспроизводит мультимедийное аудио- и видеосодержимое в синхронизации посредством совмещения информации времени, ассоциированной с каждой порцией, как описано дополнительно в данном документе в отношении тактовой синхронизации. Система также может синхронизировать другие типы данных, к примеру, слайды в слайдовой презентации, изображения, текст и т.д.
В некоторых вариантах осуществления, система адаптивной потоковой передачи предоставляет клиентскую логику для переключения на потоки с различной скоростью воспроизведения (например, быстрое проигрывание мультимедиа), предоставленные посредством сервера. Например, сервер может включать в себя 2X, 5X, 0,5X и другие скорости воспроизведения. Клиент может переключаться на поток с другой скоростью, чтобы предоставлять пользователю видимость того, что мультимедиа ускоренно перематывается вперед (например, 2X) или перематывается назад (например, 0,5X). Чтобы переключаться, клиент просто запрашивает другую порцию мультимедиа, например, по другому URL-адресу. Клиент может плавно переключаться между воспроизведением порций на текущей скорости и воспроизведением порций на другой скорости посредством продолжения воспроизведения конкретных порций, которые принимаются. Это предоставляет прозрачное взаимодействие для конечного пользователя с небольшим временем задержки между запросом пользователя и изменением при воспроизведении мультимедиа. Это также экономит полосу пропускания сети, поскольку клиент не загружает, например, 2 раза данные, чтобы воспроизводить мультимедиа в два раза быстрее, а вместо этого загружает кодирование с уменьшенным размером мультимедиа, которое кодировано на более высокой скорости.
В некоторых вариантах осуществления, система адаптивной потоковой передачи принимает маркеры основных моментов в метаданных. Основной момент может включать в себя любой интересный сегмент мультимедиа, к примеру, момент во время спортивного соревнования, когда игрок забил гол. Клиент может воспроизводить часть с основным моментом после того, как событие завершено, посредством воспроизведения этих порций мультимедиа с ассоциированным с маркерами основным моментом. Если клиент не принимает передаваемое вживую событие, клиент может запрашивать манифест мультимедиа и затем запрашивать только порции, соответствующие основным моментам. Если пользователь хочет видеть больше мультимедиа до и после основного момента (например, как указано, посредством ускоренной перемотки вперед или перемотки назад пользователем), то клиент может запрашивать дополнительные порции, чтобы воспроизводить запрашиваемые части мультимедиа.
В некоторых вариантах осуществления, система адаптивной потоковой передачи поддерживает встроенную рекламу и другие неаудиовизуальные данные (например, субтитры, комментарии и т.д.). Для передаваемого вживую события в начале события может быть неизвестным то, когда должны возникать рекламные паузы. Координатор события может нажимать кнопку во время создания, когда наступает время для коммерческой рекламы, инструктируя системе вставлять маркер рекламы в метаданные мультимедийного потока. Когда клиент принимает маркер рекламы, клиент может запрашивать и принимать порции, ассоциированные с ранее идентифицированным рекламным объявлением. Например, сервер может предоставлять список потенциальных рекламных объявлений в начальном манифесте. Рекламное объявление может предоставляться в порциях, аналогичных другому мультимедиа, и может не быть сохранено на сервере, идентичном серверу, который предоставляет передаваемое вживую событие. После обнаружения маркера рекламы клиент ставит на паузу воспроизведение основного потока, извлекает и отображает рекламное объявление, а затем возобновляет воспроизведение основного потока.
В некоторых вариантах осуществления, система адаптивной потоковой передачи определяет то, какие кодировки доступны, на основе подписки или другой модели оплаты. Например, поставщик содержимого может взимать более высокую плату за версию высокой четкости (HD) передаваемого вживую события, чем за версию стандартной четкости (SD) события. В этом случае, клиент может активировать или деактивировать переключение на конкретные скорости передачи битов на основе того, удовлетворены или нет состояния модели оплаты (например, учетная запись пользователя является действующей). Поставщик содержимого может предлагать некоторые кодировки бесплатно, к примеру, на низкой скорости передачи в битах, или мультимедиа только с основными моментами, при взимании платы за другие.
Система адаптивной потоковой передачи может запрашивать и принимать мультимедийное содержимое во множестве кодировок. В некоторых вариантах осуществления, система адаптивной потоковой передачи использует специализированные MP4-окна. Стандарт Экспертной группы по киноизображению (MPEG) версии 4 предусматривает окна в формате, который может содержать специализированные данные. Расширение MP4 является форматом файла, обычно ассоциированным с этой версией содержимого. Система может использовать окна, чтобы включать специализированные метаданные и порции мультимедийного содержимого. Другие форматы мультимедиа предоставляют аналогичную настройку пользователем содержимого в контейнере и могут использоваться посредством системы.
В некоторых вариантах осуществления, система адаптивной потоковой передачи подчиняется рекомендациям согласно стилю передачи состояния представления (REST) программной архитектуры для систем распределенного гипермедиа. Один принцип в REST заключается в том, что приложение может взаимодействовать с ресурсом посредством наличия сведений только по идентификатору ресурса (например, URI) и запрашиваемому действию (например, извлечения) и без сведений по тому, существуют или нет кэши, прокси-серверы, шлюзы, брандмауэры, туннели или что-либо еще между приложением и сервером, фактически хранящим информацию. Следующие рекомендации согласно REST дают возможность системе извлекать выгоду из существующей Интернет-инфраструктуры и уже существующих технологий экономии ресурсов, таких как кэширование. Некоторые примерные принципы REST, которые система реализует в некоторых вариантах осуществления, включают в себя следующее: каждый URI идентифицирует точно один ответ, каждый URI указывает на ресурс сервера, который не имеет фиксации состояния и является кэшируемым, и каждый URI является интуитивным и использует наименования (операции являются HTTP-операциями). В частности, система может не допускать выполнение запросов с использованием строк запросов и может использовать практически уникальные ключи для начальных времен, которые запрашиваются через URL-адреса.
Из вышеизложенного следует принимать во внимание, что конкретные варианты осуществления системы адаптивной потоковой передачи описаны в данном документе в целях иллюстрации, но различные модификации могут быть выполнены без отступления от сущности и объема изобретения. Следовательно, изобретение не ограничено ничем, кроме прилагаемой формулы изобретения.
Claims (20)
1. Машинореализуемый способ плавного воспроизведения мультимедиа на клиенте, содержащий этапы, на которых:
отправляют из клиента запрос на порцию мультимедиа в сервер по сети, причем эта порция содержит равномерную часть мультимедиа, доступную с сервера для множества клиентов, при этом данный запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
принимают в клиенте запрошенную порцию;
разбирают упомянутую порцию на часть, относящуюся к метаданным, и часть, относящуюся к мультимедийным данным, при этом заголовок HTTP-ответа, принятого с запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть упомянутой порции, относящаяся к мультимедийным данным;
добавляют метаданные упомянутой порции в текущий манифест мультимедиа, который описывает информацию, касающуюся большего мультимедийного элемента, которому принадлежит данная порция мультимедиа; и
воспроизводят мультимедийные данные с использованием кодека, идентифицируемого посредством метаданных упомянутой порции, и аппаратных средств клиента,
при этом предыдущие этапы выполняются посредством по меньшей мере одного процессора.
отправляют из клиента запрос на порцию мультимедиа в сервер по сети, причем эта порция содержит равномерную часть мультимедиа, доступную с сервера для множества клиентов, при этом данный запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
принимают в клиенте запрошенную порцию;
разбирают упомянутую порцию на часть, относящуюся к метаданным, и часть, относящуюся к мультимедийным данным, при этом заголовок HTTP-ответа, принятого с запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть упомянутой порции, относящаяся к мультимедийным данным;
добавляют метаданные упомянутой порции в текущий манифест мультимедиа, который описывает информацию, касающуюся большего мультимедийного элемента, которому принадлежит данная порция мультимедиа; и
воспроизводят мультимедийные данные с использованием кодека, идентифицируемого посредством метаданных упомянутой порции, и аппаратных средств клиента,
при этом предыдущие этапы выполняются посредством по меньшей мере одного процессора.
2. Способ по п.1, в котором при упомянутом приеме в клиенте запрошенной порции принимают порцию из Интернет-кэша до того, как упомянутый запрос достигнет сервера, и сохраняют порцию в клиентском кэше.
3. Способ по п.1, в котором упомянутый разбор дополнительно содержит этап, на котором идентифицируют метаданные, которые описывают кодирование порции, и мультимедийные данные, подходящие для воспроизведения с использованием кодека и надлежащих аппаратных средств.
4. Способ по п.1, в котором клиент сохраняет в запоминающем устройстве манифест, который содержит метаданные из каждой порции мультимедийного файла.
5. Способ по п.1, в котором часть порции, относящаяся к метаданным, включает в себя информацию, касающуюся по меньшей мере одной последующей порции, доступной с сервера.
6. Способ по п.1, дополнительно содержащий этап, на котором определяют битовую скорость последующей порции для запрашивания, при этом определяемая битовая скорость основывается на подсчете информации, касающейся последующих порций, в части порции, относящейся к метаданным.
7. Компьютерная система для плавной обработки мультимедиа от передаваемого вживую события, содержащая:
процессор и запоминающее устройство, выполненные с возможностью исполнять программные инструкции;
компонент запросов порций, выполненный с возможностью осуществлять запросы из клиента на предмет отдельных порций мультимедиа с исходного сервера, причем эти порции представляют части мультимедийного файла, доступные по отдельности с сервера, при этом каждый запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
компонент разбора порций, выполненный с возможностью интерпретировать формат каждой порции мультимедиа, принимаемой компонентом запросов порций, и разделять порцию на составные части, при этом заголовок HTTP-ответа, принятого с каждой запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть порции, относящаяся к мультимедийным данным;
компонент ассемблирования манифестов, выполненный с возможностью компоновать манифест, который описывает мультимедийный элемент, которому принадлежат принимаемые порции мультимедийного содержимого;
компонент воспроизведения мультимедиа, выполненный с возможностью воспроизводить принимаемые порции мультимедийного содержимого с использованием клиентских аппаратных средств;
компонент мониторинга качества обслуживания (QoS), выполненный с возможностью анализировать результат приема пакетов с сервера и адаптировать клиентские запросы на основе набора текущих характеристик сети; и
компонент временной синхронизации, выполненный с возможностью синхронизировать часы сервера и клиента так, чтобы сервер и клиент могли идентифицировать конкретные порции на основе времени.
процессор и запоминающее устройство, выполненные с возможностью исполнять программные инструкции;
компонент запросов порций, выполненный с возможностью осуществлять запросы из клиента на предмет отдельных порций мультимедиа с исходного сервера, причем эти порции представляют части мультимедийного файла, доступные по отдельности с сервера, при этом каждый запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
компонент разбора порций, выполненный с возможностью интерпретировать формат каждой порции мультимедиа, принимаемой компонентом запросов порций, и разделять порцию на составные части, при этом заголовок HTTP-ответа, принятого с каждой запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть порции, относящаяся к мультимедийным данным;
компонент ассемблирования манифестов, выполненный с возможностью компоновать манифест, который описывает мультимедийный элемент, которому принадлежат принимаемые порции мультимедийного содержимого;
компонент воспроизведения мультимедиа, выполненный с возможностью воспроизводить принимаемые порции мультимедийного содержимого с использованием клиентских аппаратных средств;
компонент мониторинга качества обслуживания (QoS), выполненный с возможностью анализировать результат приема пакетов с сервера и адаптировать клиентские запросы на основе набора текущих характеристик сети; и
компонент временной синхронизации, выполненный с возможностью синхронизировать часы сервера и клиента так, чтобы сервер и клиент могли идентифицировать конкретные порции на основе времени.
8. Система по п.7, в которой компонент запросов порций запрашивает порции с использованием HTTP GET-запросов.
9. Система по п.7, в которой компонент запросов порций определяет пользователя, ассоциированного с запросом, и запрашивает порции на основе уровня подписки пользователя.
10. Система по п.7, в которой клиент и исходный сервер не имеют основанного на состоянии соединения между друг другом.
11. Система по п.1, в которой компонент запросов порций идентифицирует каждую порцию посредством универсального указателя ресурса (URL), который индивидуально идентифицирует порцию.
12. Система по п.7, в которой компонент разбора порций разделяет порцию на часть заголовка, содержащую метаданные, и часть данных, содержащую мультимедийное содержимое, при этом компонент разбора порций предоставляет метаданные в компонент ассемблирования манифестов и мультимедийное содержимое в компонент воспроизведения мультимедиа и, если порция содержит неаудиовизуальные данные, разбирает порцию и использует неаудиовизуальные данные.
13. Система по п.7, в которой компонент ассемблирования манифестов дополнительно выполнен с возможностью включать в манифест информацию, описывающую кодек и битовую скорость, использованные для кодирования каждой порции.
14. Система по п.7, в которой компонент ассемблирования манифестов дополнительно выполнен с возможностью принимать запросы воспроизвести часть упомянутого мультимедийного элемента, отличающуюся от текущего положения "вживую", на основе манифеста.
15. Система по п.7, в которой компонент воспроизведения мультимедиа дополнительно выполнен с возможностью активировать один или более кодеков, чтобы интерпретировать контейнер, в котором мультимедийное содержимое транспортируется, и распаковывать мультимедийное содержимое из сжатого формата, содержащегося в каждой порции мультимедиа.
16. Система по п.7, в которой компонент мониторинга QoS дополнительно выполнен с возможностью переключать битовые скорости запрашиваемых порций посредством запрашивания порций с другого URL-адреса сервера.
17. Система по п.7, в которой компонент временной синхронизации дополнительно выполнен с возможностью поддерживать темп клиентских запросов на сервер на предмет последующих порций мультимедиа.
18. Машиночитаемый носитель, содержащий инструкции для управления компьютерной системой для воспроизведения мультимедиа на клиенте, причем эти инструкции при их исполнении предписывают процессору:
выбирать начальное кодирование, с которым запрашивается кодируемое мультимедиа с сервера, при этом каждый запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
принимать конкретную порцию мультимедиа с сервера, при этом заголовок HTTP-ответа, принятого с запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть упомянутой порции, относящаяся к мультимедийным данным;
воспроизводить принятую порцию мультимедиа;
определять показатель качества обслуживания (QoS) на основе принятой порции; и
по определению того, что показатель QoS является слишком низким и соединение клиента с сервером не может обрабатывать текущее кодирование, выбирать второе кодирование кодируемого мультимедиа, причем в соответствии со вторым кодированием кодируемое мультимедиа кодируется с более низкой битовой скоростью, чем в соответствии с начальным кодированием.
выбирать начальное кодирование, с которым запрашивается кодируемое мультимедиа с сервера, при этом каждый запрос содержит стандартный запрос протокола передачи гипертекста (HTTP), который не включает в себя диапазоны байтов, так чтобы соответствующий ответ мог быть кэширован общим сервером Интернет-кэширования, который не кэширует диапазоны байтов;
принимать конкретную порцию мультимедиа с сервера, при этом заголовок HTTP-ответа, принятого с запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть упомянутой порции, относящаяся к мультимедийным данным;
воспроизводить принятую порцию мультимедиа;
определять показатель качества обслуживания (QoS) на основе принятой порции; и
по определению того, что показатель QoS является слишком низким и соединение клиента с сервером не может обрабатывать текущее кодирование, выбирать второе кодирование кодируемого мультимедиа, причем в соответствии со вторым кодированием кодируемое мультимедиа кодируется с более низкой битовой скоростью, чем в соответствии с начальным кодированием.
19. Машиночитаемый носитель по п.18, при этом выбор начальной битовой скорости содержит изначальный выбор наименьшей доступной битовой скорости.
20. Машиночитаемый носитель по п.18, в котором инструкции при их исполнении дополнительно предписывают процессору, по определению того, что показатель QoS является высоким, выбирать третье кодирование кодируемого мультимедиа, причем в соответствии с третьим кодированием кодирование выполняется с более высокой битовой скоростью, чем в соответствии с начальным кодированием.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/405,215 US8621044B2 (en) | 2009-03-16 | 2009-03-16 | Smooth, stateless client media streaming |
US12/405,215 | 2009-03-16 | ||
PCT/US2010/026707 WO2010107625A2 (en) | 2009-03-16 | 2010-03-09 | Smooth, stateless client media streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2011137994A RU2011137994A (ru) | 2013-04-20 |
RU2543568C2 true RU2543568C2 (ru) | 2015-03-10 |
Family
ID=42731571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2011137994/08A RU2543568C2 (ru) | 2009-03-16 | 2010-03-09 | Плавная потоковая передача клиентского мультимедиа без фиксации состояния |
Country Status (8)
Country | Link |
---|---|
US (1) | US8621044B2 (ru) |
CN (1) | CN102356605B (ru) |
BR (1) | BRPI1007814B1 (ru) |
CA (1) | CA2750544C (ru) |
IN (1) | IN2011CN06326A (ru) |
MX (1) | MX2011009164A (ru) |
RU (1) | RU2543568C2 (ru) |
WO (1) | WO2010107625A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2753157C2 (ru) * | 2017-04-21 | 2021-08-12 | Зенимакс Медиа Инк. | Системы и способы выдачи подсказок кодеру на основании оценки предварительно кодированной нагрузки |
Families Citing this family (184)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US20230023917A1 (en) * | 2001-03-09 | 2023-01-26 | Oliver Wendel Gamble | Method and System for Selective broadcasting of Instructions or Media Content to Targeted Electronic Devices Using a Modular Format |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
JP4546246B2 (ja) | 2002-10-05 | 2010-09-15 | デジタル ファウンテン, インコーポレイテッド | 連鎖的暗号化反応の系統的記号化および復号化 |
CN1954501B (zh) | 2003-10-06 | 2010-06-16 | 数字方敦股份有限公司 | 通过通信信道接收从源发射的数据的方法 |
EP1743431A4 (en) | 2004-05-07 | 2007-05-02 | Digital Fountain Inc | SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES |
CN101686107B (zh) | 2006-02-13 | 2014-08-13 | 数字方敦股份有限公司 | 使用可变fec开销和保护周期的流送和缓冲 |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
EP1999883A4 (en) | 2006-03-14 | 2013-03-06 | Divx Llc | FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US8997161B2 (en) | 2008-01-02 | 2015-03-31 | Sonic Ip, Inc. | Application enhancement tracks |
US8325800B2 (en) | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
US8379851B2 (en) | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US8265140B2 (en) | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
US8156089B2 (en) | 2008-12-31 | 2012-04-10 | Apple, Inc. | Real-time or near real-time streaming with compressed playlists |
US8260877B2 (en) | 2008-12-31 | 2012-09-04 | Apple Inc. | Variant streams for real-time or near real-time streaming to provide failover protection |
US20100169303A1 (en) | 2008-12-31 | 2010-07-01 | David Biderman | Playlists for real-time or near real-time streaming |
US8578272B2 (en) | 2008-12-31 | 2013-11-05 | Apple Inc. | Real-time or near real-time streaming |
US8510303B2 (en) | 2009-01-07 | 2013-08-13 | Divx, Llc | Singular, collective and automated creation of a media guide for online content |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US20100281224A1 (en) * | 2009-05-01 | 2010-11-04 | International Buisness Machines Corporation | Prefetching content from incoming messages |
US8499059B2 (en) * | 2009-05-04 | 2013-07-30 | Rovi Solutions Corporation | System and methods for buffering of real-time data streams |
BRPI0924650A2 (pt) * | 2009-05-05 | 2016-01-26 | Ericsson Telefon Ab L M | método e arranjo para arranjar uma árvore de distribuição em um sistema de transmissão contínua não hierárquica, nó controlado por operador, e, artigo de fabricação. |
EP2280521A1 (en) * | 2009-07-30 | 2011-02-02 | Alcatel Lucent | Method of switching media content for a mobile apparatus |
WO2011022405A2 (en) | 2009-08-17 | 2011-02-24 | Akamai Technologies, Inc. | Method and system for http-based stream delivery |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
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 |
US8527647B2 (en) * | 2009-10-06 | 2013-09-03 | Unwired Planet, Inc. | Managing network traffic using intermediate flow control |
US8914835B2 (en) * | 2009-10-28 | 2014-12-16 | Qualcomm Incorporated | Streaming encoded video data |
US9002881B2 (en) | 2009-10-29 | 2015-04-07 | Microsoft Technology Licensing, Llc | Assembling streamed content for on-demand presentation |
KR101750049B1 (ko) * | 2009-11-13 | 2017-06-22 | 삼성전자주식회사 | 적응적인 스트리밍 방법 및 장치 |
KR101786050B1 (ko) * | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 전송 방법 및 장치 |
KR101777347B1 (ko) * | 2009-11-13 | 2017-09-11 | 삼성전자주식회사 | 부분화에 기초한 적응적인 스트리밍 방법 및 장치 |
CA2782825C (en) | 2009-12-04 | 2016-04-26 | Divx, Llc | Elementary bitstream cryptographic material transport systems and methods |
US20110296048A1 (en) * | 2009-12-28 | 2011-12-01 | Akamai Technologies, Inc. | Method and system for stream handling using an intermediate format |
US8805963B2 (en) | 2010-04-01 | 2014-08-12 | Apple Inc. | Real-time or near real-time streaming |
US8560642B2 (en) | 2010-04-01 | 2013-10-15 | Apple Inc. | Real-time or near real-time streaming |
GB201105502D0 (en) | 2010-04-01 | 2011-05-18 | Apple Inc | Real time or near real time streaming |
EP2375680A1 (en) * | 2010-04-01 | 2011-10-12 | Thomson Licensing | A method for recovering content streamed into chunk |
US8892691B2 (en) | 2010-04-07 | 2014-11-18 | Apple Inc. | Real-time or near real-time streaming |
EP2556439A4 (en) | 2010-04-08 | 2015-03-04 | Vasona Networks | CONTINUOUS BANDWIDTH MANAGEMENT FOR MULTIPLE CUSTOMERS |
US20110280311A1 (en) | 2010-05-13 | 2011-11-17 | Qualcomm Incorporated | One-stream coding for asymmetric stereo video |
US9838450B2 (en) * | 2010-06-30 | 2017-12-05 | Brightcove, Inc. | Dynamic chunking for delivery instances |
US8904027B2 (en) * | 2010-06-30 | 2014-12-02 | Cable Television Laboratories, Inc. | Adaptive bit rate for data transmission |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
KR20120034550A (ko) | 2010-07-20 | 2012-04-12 | 한국전자통신연구원 | 스트리밍 컨텐츠 제공 장치 및 방법 |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
US8645562B2 (en) | 2010-09-06 | 2014-02-04 | Electronics And Telecommunications Research Institute | Apparatus and method for providing streaming content |
US9143838B2 (en) | 2010-09-06 | 2015-09-22 | Vasona Networks Inc. | Device and method for quality assessment of encrypted streaming media flows |
US9467493B2 (en) | 2010-09-06 | 2016-10-11 | Electronics And Telecommunication Research Institute | Apparatus and method for providing streaming content |
US9369512B2 (en) * | 2010-10-06 | 2016-06-14 | Electronics And Telecommunications Research Institute | Apparatus and method for providing streaming content |
KR101206698B1 (ko) * | 2010-10-06 | 2012-11-30 | 한국항공대학교산학협력단 | 스트리밍 콘텐츠 제공 장치 및 방법 |
US20120117261A1 (en) * | 2010-11-05 | 2012-05-10 | Nokia Corporation | Method and Apparatus for Rate Adaptation for Adaptive HTTP Streaming |
EP2638682A4 (en) * | 2010-11-12 | 2014-07-23 | Realnetworks Inc | TRAFFIC MANAGEMENT IN ADAPTIVE STREAMING PROTOCOLS |
CN102045351B (zh) * | 2010-12-03 | 2013-06-19 | 中国联合网络通信集团有限公司 | 流媒体发布平台及方法 |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
WO2011150657A1 (zh) * | 2010-12-31 | 2011-12-08 | 华为技术有限公司 | 流媒体中播放时间点跳转后的处理方法及装置 |
WO2012094432A1 (en) * | 2011-01-04 | 2012-07-12 | Related Content Databases, Inc. | System and method for interfacing content playback devices with network sites to supplement content playback |
US9247312B2 (en) * | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
GB2491574B (en) | 2011-06-02 | 2013-11-20 | Nds Ltd | Content insertion in adaptive streams |
US9661104B2 (en) * | 2011-02-07 | 2017-05-23 | Blackberry Limited | Method and apparatus for receiving presentation metadata |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US8775664B2 (en) * | 2011-02-16 | 2014-07-08 | Sony Corporation | Method and apparatus for use in tracking playback of media streams while in stand-by mode |
US20120215890A1 (en) * | 2011-02-22 | 2012-08-23 | International Business Machines Corporation | Network-aware structured content downloads |
US8849950B2 (en) * | 2011-04-07 | 2014-09-30 | Qualcomm Incorporated | Network streaming of video data using byte range requests |
FR2975555A1 (fr) * | 2011-05-18 | 2012-11-23 | Thomson Licensing | Methode d'adaptation dynamique du debit de reception et recepteur associe |
US8843586B2 (en) | 2011-06-03 | 2014-09-23 | Apple Inc. | Playlists for real-time or near real-time streaming |
US8856283B2 (en) * | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
CN102821309A (zh) * | 2011-06-08 | 2012-12-12 | 鸿富锦精密工业(深圳)有限公司 | 基于桌面分享的流媒体传送***及方法 |
TW201251429A (en) * | 2011-06-08 | 2012-12-16 | Hon Hai Prec Ind Co Ltd | System and method for sending streaming of desktop sharing |
US20130191745A1 (en) * | 2012-01-10 | 2013-07-25 | Zane Vella | Interface for displaying supplemental dynamic timeline content |
US20170041649A1 (en) * | 2011-06-14 | 2017-02-09 | Watchwith, Inc. | Supplemental content playback system |
US20170041644A1 (en) * | 2011-06-14 | 2017-02-09 | Watchwith, Inc. | Metadata delivery system for rendering supplementary content |
US9762967B2 (en) | 2011-06-14 | 2017-09-12 | Comcast Cable Communications, Llc | System and method for presenting content with time based metadata |
US8924580B2 (en) * | 2011-08-12 | 2014-12-30 | Cisco Technology, Inc. | Constant-quality rate-adaptive streaming |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP 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 |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
US9591361B2 (en) | 2011-09-07 | 2017-03-07 | Qualcomm Incorporated | Streaming of multimedia data from multiple sources |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US20130091207A1 (en) * | 2011-10-08 | 2013-04-11 | Broadcom Corporation | Advanced content hosting |
US9055136B2 (en) * | 2011-10-13 | 2015-06-09 | Qualcomm Incorporated | Controlling streaming delay in networks |
WO2013090280A2 (en) * | 2011-12-15 | 2013-06-20 | Dolby Laboratories Licensing Corporation | Bandwidth adaptation for dynamic adaptive transferring of multimedia |
US8234350B1 (en) | 2011-12-19 | 2012-07-31 | Seachange International, Inc. | Systems and methods for generating targeted manifest files |
US8977704B2 (en) | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US20130179199A1 (en) | 2012-01-06 | 2013-07-11 | Rovi Corp. | Systems and methods for granting access to digital content using electronic tickets and ticket tokens |
US9401968B2 (en) | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
US20150026711A1 (en) * | 2012-02-27 | 2015-01-22 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for video content distribution |
US20130254417A1 (en) * | 2012-03-21 | 2013-09-26 | Jason Nicholls | System method device for streaming video |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US9438883B2 (en) * | 2012-04-09 | 2016-09-06 | Intel Corporation | Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content |
US9246741B2 (en) * | 2012-04-11 | 2016-01-26 | Google Inc. | Scalable, live transcoding with support for adaptive streaming and failover |
US9712887B2 (en) * | 2012-04-12 | 2017-07-18 | Arris Canada, Inc. | Methods and systems for real-time transmuxing of streaming media content |
RU2629001C2 (ru) * | 2012-04-26 | 2017-08-24 | Квэлкомм Инкорпорейтед | Система улучшенной потоковой передачи блоков по запросу для обработки потоковой передачи с малой задержкой |
US8813117B1 (en) * | 2012-04-27 | 2014-08-19 | Google Inc. | Content subset conditional access framework |
EP2661045A1 (en) * | 2012-05-04 | 2013-11-06 | Thomson Licensing | Method and apparatus for providing a plurality of transcoded content streams |
US9088463B1 (en) * | 2012-05-11 | 2015-07-21 | Amazon Technologies, Inc. | Container contract for data dependencies |
US20130318252A1 (en) * | 2012-05-24 | 2013-11-28 | Rovi Corporation | Systems, methods, and computer products for elementary streams broadcasting |
US9301021B2 (en) * | 2012-06-22 | 2016-03-29 | Vubiquity, Inc. | Workflow optimization in preparing C3 broadcast content for dynamic advertising |
US9197685B2 (en) | 2012-06-28 | 2015-11-24 | Sonic Ip, Inc. | Systems and methods for fast video startup using trick play streams |
US9143812B2 (en) | 2012-06-29 | 2015-09-22 | Sonic Ip, Inc. | Adaptive streaming of multimedia |
KR20170083641A (ko) * | 2012-07-10 | 2017-07-18 | 브이아이디 스케일, 인크. | 품질 주도형 스트리밍 |
WO2014015110A1 (en) | 2012-07-18 | 2014-01-23 | Verimatrix, Inc. | Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution |
US9118744B2 (en) | 2012-07-29 | 2015-08-25 | Qualcomm Incorporated | Replacing lost media data for network streaming |
US9131251B2 (en) * | 2012-09-20 | 2015-09-08 | Google Technology Holdings LLC | Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server |
US9462021B2 (en) | 2012-09-24 | 2016-10-04 | Google Technology Holdings LLC | Methods and devices for efficient adaptive bitrate streaming |
US8914836B2 (en) | 2012-09-28 | 2014-12-16 | Sonic Ip, Inc. | Systems, methods, and computer program products for load adaptive streaming |
US8997254B2 (en) | 2012-09-28 | 2015-03-31 | Sonic Ip, Inc. | Systems and methods for fast startup streaming of encrypted multimedia content |
US9544344B2 (en) * | 2012-11-20 | 2017-01-10 | Google Technology Holdings LLC | Method and apparatus for streaming media content to client devices |
US8904457B2 (en) | 2012-12-28 | 2014-12-02 | Microsoft Corporation | Archiving a live media presentation |
US9344472B2 (en) | 2012-12-28 | 2016-05-17 | Microsoft Technology Licensing, Llc | Seamlessly playing a composite media presentation |
US9264475B2 (en) | 2012-12-31 | 2016-02-16 | 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 |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US9426196B2 (en) * | 2013-01-04 | 2016-08-23 | Qualcomm Incorporated | Live timing for dynamic adaptive streaming over HTTP (DASH) |
CN104956645B (zh) * | 2013-01-16 | 2018-04-27 | 华为技术有限公司 | 自适应流中的url参数***和添加 |
EP2932397B1 (en) * | 2013-01-18 | 2017-08-09 | Huawei Technologies Co., Ltd. | Method and apparatus for performing adaptive streaming on media contents |
US9432426B2 (en) * | 2013-02-04 | 2016-08-30 | Qualcomm Incorporated | Determining available media data for network streaming |
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 |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
BR112015022239B1 (pt) * | 2013-03-15 | 2023-04-04 | Arris Technology, Inc | Método para desviar uma solicitação de arquivo de manifesto em um sistema de taxa de bits adaptativa, reprodutor de taxa de bits adaptativa para realizar a transmissão do conteúdo de transmissão de taxa de bits adaptativa através de uma rede a um cliente e meio de armazenamento legível por computador |
US9344517B2 (en) | 2013-03-28 | 2016-05-17 | Sonic Ip, Inc. | Downloading and adaptive streaming of multimedia content to a device with cache assist |
KR20150143470A (ko) * | 2013-04-08 | 2015-12-23 | 톰슨 라이센싱 | 적어도 하나의 서버에 의해 전송된 매니페스트를 적응시키기 위한 디바이스 및 방법 |
US9973559B2 (en) * | 2013-05-29 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for presenting content streams to a client device |
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 |
EP2819379A1 (en) * | 2013-06-28 | 2014-12-31 | Thomson Licensing | Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal |
EP2822287A1 (en) * | 2013-07-01 | 2015-01-07 | Thomson Licensing | Method and apparatus for frame accurate advertisement insertion |
US9386308B2 (en) | 2013-07-16 | 2016-07-05 | Cisco Technology, Inc. | Quality optimization with buffer and horizon constraints in adaptive streaming |
JP6465541B2 (ja) * | 2013-08-06 | 2019-02-06 | キヤノン株式会社 | 通信装置、再生装置、及びその方法、並びにプログラム |
JP2015043486A (ja) * | 2013-08-26 | 2015-03-05 | ソニー株式会社 | プロキシサーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム |
CN105556922B (zh) * | 2013-09-17 | 2019-06-28 | 瑞典爱立信有限公司 | 网络中的dash表示自适应 |
US9444856B2 (en) * | 2013-09-25 | 2016-09-13 | Ericsson Ab | System and method for managing adjacent channels in an adaptive streaming environment |
US9343112B2 (en) | 2013-10-31 | 2016-05-17 | Sonic Ip, Inc. | Systems and methods for supplementing content from a server |
EP2876890A1 (en) | 2013-11-21 | 2015-05-27 | Thomson Licensing | Method and apparatus for frame accurate synchronization of video streams |
EP2890075B1 (en) * | 2013-12-26 | 2016-12-14 | Telefonica Digital España, S.L.U. | A method and a system for smooth streaming of media content in a distributed content delivery network |
EP3092767A1 (en) * | 2014-01-07 | 2016-11-16 | Thomson Licensing | Method for adapting the behavior of a cache, and corresponding cache |
US9538120B2 (en) * | 2014-01-29 | 2017-01-03 | Google Inc. | Method for improving offline content playback |
CN106462490B (zh) * | 2014-03-26 | 2019-09-24 | TiVo解决方案有限公司 | 多媒体流水线架构 |
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 |
US9722903B2 (en) | 2014-09-11 | 2017-08-01 | At&T Intellectual Property I, L.P. | Adaptive bit rate media streaming based on network conditions received via a network monitor |
US9794604B2 (en) * | 2014-11-14 | 2017-10-17 | Panopto, Inc. | Systems and methods for transmitting segment-quality units of a streaming video session |
US9813477B2 (en) * | 2015-01-26 | 2017-11-07 | T-Mobile Usa, Inc. | Adjusting quality level of media streaming |
CN107534798A (zh) * | 2015-04-22 | 2018-01-02 | Lg 电子株式会社 | 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法 |
KR102353492B1 (ko) * | 2015-12-14 | 2022-01-20 | 삼성전자주식회사 | 스트리밍 서비스를 위한 장치 및 방법 |
US10075292B2 (en) | 2016-03-30 | 2018-09-11 | Divx, Llc | Systems and methods for quick start-up of playback |
US10178171B2 (en) * | 2016-04-21 | 2019-01-08 | Samsung Electronics Company, Ltd. | Content management system for distribution of content |
US10116719B1 (en) | 2016-06-03 | 2018-10-30 | Amazon Technologies, Inc. | Customized dash manifest |
US10104143B1 (en) * | 2016-06-03 | 2018-10-16 | Amazon Technologies, Inc. | Manifest segmentation |
US10432690B1 (en) | 2016-06-03 | 2019-10-01 | Amazon Technologies, Inc. | Manifest partitioning |
GB2552220B (en) | 2016-07-15 | 2018-09-05 | Openwave Mobility Inc | A method for detecting a live adaptive BIT rate stream |
US10218986B2 (en) * | 2016-09-26 | 2019-02-26 | Google Llc | Frame accurate splicing |
US10063612B2 (en) * | 2016-09-30 | 2018-08-28 | Amazon Technologies, Inc. | Request-based encoding for streaming content portions |
US10440085B2 (en) | 2016-12-30 | 2019-10-08 | Facebook, Inc. | Effectively fetch media content for enhancing media streaming |
US10476943B2 (en) * | 2016-12-30 | 2019-11-12 | Facebook, Inc. | Customizing manifest file for enhancing media streaming |
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 |
US10349136B2 (en) | 2017-03-22 | 2019-07-09 | Opentv, Inc. | User-initiated transitioning between media content versions |
CN110945494B (zh) * | 2017-07-28 | 2024-06-21 | 杜比实验室特许公司 | 向客户端提供媒体内容的方法和*** |
EP3815387A1 (en) | 2018-06-28 | 2021-05-05 | Dolby Laboratories Licensing Corporation | Frame conversion for adaptive streaming alignment |
US20200112753A1 (en) * | 2018-10-03 | 2020-04-09 | Qualcomm Incorporated | Service description for streaming media data |
JP7150631B2 (ja) * | 2018-10-17 | 2022-10-11 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 制御装置、サービス提供システム、制御方法、及びプログラム |
FR3098074B1 (fr) * | 2019-06-27 | 2021-10-08 | Tdf | Procédé de transmission d’un contenu audio dans un récepteur hybride en recevant des manifestes émis par un serveur manageur, récepteur et serveur manageur associé |
US10887366B1 (en) * | 2019-07-08 | 2021-01-05 | Cbs Interactive Inc. | Systems, methods, and storage media for managing encoder instances in a serverless content distribution platform |
US11477522B2 (en) * | 2019-12-11 | 2022-10-18 | Arris Enterprises Llc | Trick play and trick rate support for HLS |
CN115152241A (zh) * | 2020-02-04 | 2022-10-04 | 杜比国际公司 | 用于媒体内容的自适应播放的方法和设备 |
US10958947B1 (en) * | 2020-03-12 | 2021-03-23 | Amazon Technologies, Inc. | Content delivery of live streams with playback-conditions-adaptive encoding |
CN113543222B (zh) * | 2020-04-22 | 2024-06-18 | 华为技术有限公司 | 媒体报文的传输方法、装置及*** |
EP3920539A1 (en) * | 2020-06-04 | 2021-12-08 | MK Systems USA Inc. | Systems and methods for providing audio-video streams with alternative content |
CN114205344B (zh) * | 2020-08-31 | 2023-02-28 | 华为技术有限公司 | 媒体文件传输的方法及装置 |
US11962482B2 (en) * | 2022-07-14 | 2024-04-16 | Rovi Guides, Inc. | Systems and methods for maintaining video quality using digital twin synthesis |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2282888C2 (ru) * | 2001-09-26 | 2006-08-27 | Интерэкт Дивайсиз, Инк. | Система и способ для обмена сигналами аудиовизуальной информации |
RU2312390C2 (ru) * | 2003-06-07 | 2007-12-10 | Самсунг Электроникс Ко., Лтд. | Устройство и способ организации и интерпретации мультимедийных данных на записываемом носителе информации |
US7478164B1 (en) * | 2001-06-12 | 2009-01-13 | Netapp, Inc. | Methods and apparatus for pacing delivery of streaming media data |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001236570A1 (en) * | 2000-01-28 | 2001-08-07 | Ibeam Broadcasting Corporation | Method and apparatus for encoder-based distribution of live video and other streaming content |
US7689510B2 (en) * | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US7085842B2 (en) * | 2001-02-12 | 2006-08-01 | Open Text Corporation | Line navigation conferencing system |
US20030018978A1 (en) * | 2001-03-02 | 2003-01-23 | Singal Sanjay S. | Transfer file format and system and method for distributing media content |
US20030014488A1 (en) * | 2001-06-13 | 2003-01-16 | Siddhartha Dalal | System and method for enabling multimedia conferencing services on a real-time communications platform |
US7212574B2 (en) * | 2002-04-02 | 2007-05-01 | Microsoft Corporation | Digital production services architecture |
US7912920B2 (en) * | 2002-12-13 | 2011-03-22 | Stephen Loomis | Stream sourcing content delivery system |
US7409145B2 (en) * | 2003-01-02 | 2008-08-05 | Microsoft Corporation | Smart profiles for capturing and publishing audio and video streams |
WO2005064836A1 (en) * | 2003-12-22 | 2005-07-14 | America Online, Inc | A system and method for using a streaming protocol |
US20050251832A1 (en) * | 2004-03-09 | 2005-11-10 | Chiueh Tzi-Cker | Video acquisition and distribution over wireless networks |
JP2008504793A (ja) * | 2004-06-07 | 2008-02-14 | スリング メディア,インク. | パーソナルメディア放送システム |
US20060184697A1 (en) * | 2005-02-11 | 2006-08-17 | Microsoft Corporation | Detecting clock drift in networked devices through monitoring client buffer fullness |
US20060287912A1 (en) * | 2005-06-17 | 2006-12-21 | Vinayak Raghuvamshi | Presenting advertising content |
US20070162487A1 (en) * | 2005-12-30 | 2007-07-12 | Razorstream, Llc | Multi-format data coding, managing and distributing system and method |
US8214516B2 (en) * | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
US20070177606A1 (en) * | 2006-01-13 | 2007-08-02 | Dilithium Networks Pty Ltd. | Multimedia streaming and gaming architecture and services |
US7860825B2 (en) * | 2006-05-08 | 2010-12-28 | Palm, Inc. | Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks |
US7783773B2 (en) * | 2006-07-24 | 2010-08-24 | Microsoft Corporation | Glitch-free media streaming |
EP2835951B1 (en) * | 2007-01-17 | 2018-08-22 | Intertrust Technologies Corporation | Methods, systems, and apparatus for fragmented file sharing |
US8719375B2 (en) * | 2007-03-22 | 2014-05-06 | Microsoft Corporation | Remote data access techniques for portable devices |
US20080256514A1 (en) * | 2007-04-10 | 2008-10-16 | Microsoft Corporation | Side-by-side application manifests for single-purpose applications |
US7881335B2 (en) * | 2007-04-30 | 2011-02-01 | Sharp Laboratories Of America, Inc. | Client-side bandwidth allocation for continuous and discrete media |
CN101163238B (zh) | 2007-07-20 | 2010-12-01 | 中兴通讯股份有限公司 | 一种平滑实现实时转播/直播的流媒体服务方法 |
US8370520B2 (en) * | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
US20100226444A1 (en) * | 2009-03-09 | 2010-09-09 | Telephoto Technologies Inc. | System and method for facilitating video quality of live broadcast information over a shared packet based network |
-
2009
- 2009-03-16 US US12/405,215 patent/US8621044B2/en active Active
-
2010
- 2010-03-09 IN IN6326CHN2011 patent/IN2011CN06326A/en unknown
- 2010-03-09 RU RU2011137994/08A patent/RU2543568C2/ru active
- 2010-03-09 CN CN201080012702.1A patent/CN102356605B/zh active Active
- 2010-03-09 CA CA2750544A patent/CA2750544C/en not_active Expired - Fee Related
- 2010-03-09 BR BRPI1007814-2A patent/BRPI1007814B1/pt active IP Right Grant
- 2010-03-09 MX MX2011009164A patent/MX2011009164A/es active IP Right Grant
- 2010-03-09 WO PCT/US2010/026707 patent/WO2010107625A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478164B1 (en) * | 2001-06-12 | 2009-01-13 | Netapp, Inc. | Methods and apparatus for pacing delivery of streaming media data |
RU2282888C2 (ru) * | 2001-09-26 | 2006-08-27 | Интерэкт Дивайсиз, Инк. | Система и способ для обмена сигналами аудиовизуальной информации |
RU2312390C2 (ru) * | 2003-06-07 | 2007-12-10 | Самсунг Электроникс Ко., Лтд. | Устройство и способ организации и интерпретации мультимедийных данных на записываемом носителе информации |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2753157C2 (ru) * | 2017-04-21 | 2021-08-12 | Зенимакс Медиа Инк. | Системы и способы выдачи подсказок кодеру на основании оценки предварительно кодированной нагрузки |
US11503313B2 (en) | 2017-04-21 | 2022-11-15 | Zenimax Media Inc. | Systems and methods for rendering and pre-encoded load estimation based encoder hinting |
Also Published As
Publication number | Publication date |
---|---|
CN102356605B (zh) | 2014-02-19 |
US8621044B2 (en) | 2013-12-31 |
CA2750544C (en) | 2016-05-03 |
US20100235472A1 (en) | 2010-09-16 |
BRPI1007814A2 (pt) | 2017-01-17 |
CN102356605A (zh) | 2012-02-15 |
WO2010107625A2 (en) | 2010-09-23 |
WO2010107625A3 (en) | 2011-01-13 |
CA2750544A1 (en) | 2010-09-23 |
IN2011CN06326A (ru) | 2015-08-28 |
MX2011009164A (es) | 2011-09-28 |
RU2011137994A (ru) | 2013-04-20 |
BRPI1007814B1 (pt) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2543568C2 (ru) | Плавная потоковая передача клиентского мультимедиа без фиксации состояния | |
US10257587B2 (en) | Integrating continuous and sparse streaming data | |
US9237387B2 (en) | Low latency cacheable media streaming | |
EP2409475B1 (en) | Delivering cacheable streaming media presentations | |
US10263875B2 (en) | Real-time processing capability based quality adaptation | |
US8392748B2 (en) | Reliable media streaming | |
US9641578B2 (en) | Minimizing unicast bandwidth in an adaptive bit rate system | |
US9749676B2 (en) | Virtual playback speed modification | |
CA2807156C (en) | Trick modes for network streaming of coded video data | |
CN111837403B (zh) | 处理用于以流传送媒体数据的交互性事件 | |
KR102303582B1 (ko) | 웹 콘텐츠에 대한 파일 트랙들을 사용하여 미디어 데이터를 프로세싱 | |
CN112771877A (zh) | 用于流式传输媒体数据的服务描述 | |
US11321516B2 (en) | Processing dynamic web content of an ISO BMFF web resource track | |
Bouzakaria | Advanced contributions in HTTP adaptive streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150410 |