RU2543568C2 - Плавная потоковая передача клиентского мультимедиа без фиксации состояния - Google Patents

Плавная потоковая передача клиентского мультимедиа без фиксации состояния Download PDF

Info

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
Application number
RU2011137994/08A
Other languages
English (en)
Other versions
RU2011137994A (ru
Inventor
Вишал СООД
Джек Э. ФРИЛЭНДЕР
Анирбан РОЙ
Линь ЛЮ
Гэцян ЧЖАН (Сэм)
Кришна ДУГГАРАДЖУ
Судхир СИРИВАРА
Джон А. БОЧАРОВ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42731571&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2543568(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2011137994A publication Critical patent/RU2011137994A/ru
Application granted granted Critical
Publication of RU2543568C2 publication Critical patent/RU2543568C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols 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-ответа, принятого с запрошенной порцией, не включает в себя кодек, с помощью которого закодирована часть упомянутой порции, относящаяся к мультимедийным данным;
добавляют метаданные упомянутой порции в текущий манифест мультимедиа, который описывает информацию, касающуюся большего мультимедийного элемента, которому принадлежит данная порция мультимедиа; и
воспроизводят мультимедийные данные с использованием кодека, идентифицируемого посредством метаданных упомянутой порции, и аппаратных средств клиента,
при этом предыдущие этапы выполняются посредством по меньшей мере одного процессора.
2. Способ по п.1, в котором при упомянутом приеме в клиенте запрошенной порции принимают порцию из Интернет-кэша до того, как упомянутый запрос достигнет сервера, и сохраняют порцию в клиентском кэше.
3. Способ по п.1, в котором упомянутый разбор дополнительно содержит этап, на котором идентифицируют метаданные, которые описывают кодирование порции, и мультимедийные данные, подходящие для воспроизведения с использованием кодека и надлежащих аппаратных средств.
4. Способ по п.1, в котором клиент сохраняет в запоминающем устройстве манифест, который содержит метаданные из каждой порции мультимедийного файла.
5. Способ по п.1, в котором часть порции, относящаяся к метаданным, включает в себя информацию, касающуюся по меньшей мере одной последующей порции, доступной с сервера.
6. Способ по п.1, дополнительно содержащий этап, на котором определяют битовую скорость последующей порции для запрашивания, при этом определяемая битовая скорость основывается на подсчете информации, касающейся последующих порций, в части порции, относящейся к метаданным.
7. Компьютерная система для плавной обработки мультимедиа от передаваемого вживую события, содержащая:
процессор и запоминающее устройство, выполненные с возможностью исполнять программные инструкции;
компонент запросов порций, выполненный с возможностью осуществлять запросы из клиента на предмет отдельных порций мультимедиа с исходного сервера, причем эти порции представляют части мультимедийного файла, доступные по отдельности с сервера, при этом каждый запрос содержит стандартный запрос протокола передачи гипертекста (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 является слишком низким и соединение клиента с сервером не может обрабатывать текущее кодирование, выбирать второе кодирование кодируемого мультимедиа, причем в соответствии со вторым кодированием кодируемое мультимедиа кодируется с более низкой битовой скоростью, чем в соответствии с начальным кодированием.
19. Машиночитаемый носитель по п.18, при этом выбор начальной битовой скорости содержит изначальный выбор наименьшей доступной битовой скорости.
20. Машиночитаемый носитель по п.18, в котором инструкции при их исполнении дополнительно предписывают процессору, по определению того, что показатель QoS является высоким, выбирать третье кодирование кодируемого мультимедиа, причем в соответствии с третьим кодированием кодирование выполняется с более высокой битовой скоростью, чем в соответствии с начальным кодированием.
RU2011137994/08A 2009-03-16 2010-03-09 Плавная потоковая передача клиентского мультимедиа без фиксации состояния RU2543568C2 (ru)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2753157C2 (ru) * 2017-04-21 2021-08-12 Зенимакс Медиа Инк. Системы и способы выдачи подсказок кодеру на основании оценки предварительно кодированной нагрузки

Families Citing this family (184)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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