Потоковая передача данных в режиме реального времени или в режиме, близком к реальному времени

Группа изобретений относится к области передачи данных. Технический результат заключается в обеспечении выполнения потоковой передачи, используя непотоковые протоколы. В способе и в устройстве для потоковой передачи содержания в режиме реального времени или в режиме, близком к реальному времени, используют протоколы передачи, например, HTTP совместимый протокол. В одном из вариантов осуществления способа разделяют поток данных и представляют непрерывное содержание программы на основе времени (например, широковещательная передача видеоданных в режиме реального времени) в виде множества различных мультимедийных файлов, и генерируют файл списка воспроизведения, имеющий множество тэгов и универсальных индикаторов ресурса (URI), обозначающих порядок представления множества различных мультимедийных файлов. Множество мультимедийных файлов и файл списка воспроизведения могут быть сделаны доступными для передачи в устройство клиент, которое может получать мультимедийные файлы, используя файл списка воспроизведения. 9 н. и 25 з.п. ф-лы, 17 ил.

 

Область техники, к которой относится изобретение

Варианты осуществления изобретения относятся к технологиям передачи данных. Больше конкретно, варианты осуществления изобретения относятся к технологиям, которые позволяют выполнять потоковую передачу данных, используя непотоковые протоколы, такие как, например, протокол передачи гипертекста (HTTP).

Уровень техники

Потоковая передача содержания, в общем, относится к мультимедийному содержанию, которое постоянно передают из устройства сервера и принимают устройством клиентом. Содержание обычно представляется для конечного пользователя, в то время как его доставляет сервер потоковой передачи данных. Настоящее изобретение относится к способу доставки мультимедийного содержания, а не к самому мультимедийному содержанию.

Современные службы потоковой передачи, в общем, требуют использования специализированных серверов для распределения содержания "прямой передачи" конечным пользователям. При любом развертывании в крупных масштабах это может привести к большим затратам, и требует специальных навыков для установки и эксплуатации. Это приводит к получению менее, чем желательной библиотеки содержания, доступной для потоковой передачи.

Сущность изобретения

В одном варианте осуществления устройство сервера содержит, по меньшей мере, участок содержания, для которого требуется выполнить потоковую передачу. Содержание обычно представляет собой поток на основе времени изображений или звука (например, звука или музыки) или их обоих; пример потока на основе времени представляет собой кинофильм, в котором порядок и представление изображений основаны на времени, и, следовательно, его можно считать потоком на основе времени. Сервер включает в себя агента сегментатора, который предназначен для разделения содержания, для которого требуется выполнить потоковую передачу, на сегменты, предназначенные для передачи через пакеты, в соответствии с сетевым протоколом и агентом индексатором, для генерирования одного или больше файлов списка воспроизведения, которые могут способствовать представлению клиентом сегментированных данных для пользователя. Устройство клиент соединено с устройством сервера (или другим сервером, который содержит сегменты и списки воспроизведения и передает их, но не генерирует их) через сеть. У устройства клиента есть агент сборщик, предназначенный для приема одного или больше файлов списка воспроизведения и упрощения получения сегментированных мультимедийных файлов содержания в соответствии с одним или больше файлами списка воспроизведения. У устройства клиента может также быть агент генератора выходных данных, предназначенный для вывода содержания через один или больше выходных компонентов устройства клиента.

В одном варианте осуществления устройство сервера получает данные, предназначенные для передачи в устройство клиент. Устройство сервера делит данные, предназначенные для передачи, на множество мультимедийных файлов с помощью агента сегментатора. Устройство сервера также содержит множество сегментов, как отдельные мультимедийные файлы в запоминающем устройстве. Устройство сервера, кроме того, генерирует один или больше файлов списков воспроизведения, имеющих ссылки на множество мультимедийных файлов. В ответ на запросы данных из устройства клиента устройство сервера (или другое устройство сервера) передает один или больше файлов списка воспроизведения и, по меньшей мере, поднабор из множества мультимедийных файлов по сети в устройство клиент. Множество мультимедийных файлов могут быть переданы, используя непотоковый протокол передачи, в ответ на запросы из устройства клиента; этот протокол может представлять собой, например, HTTP.

В одном варианте осуществления устройство клиент может принимать и содержать один или больше файлов списка воспроизведения. Клиент затем может запрашивать сегментированные мультимедийные файлы, идентифицированные в файле (файлах) списка воспроизведения, и загружать соединенные мультимедийные файлы. Устройство клиент (или другое устройство клиент) может затем генерировать выход звукового и/или видеосигнала, представляющий поток содержания.

В одном варианте осуществления обновленный список воспроизведения может динамически генерироваться сервером и затем может быть получен клиентом. Обновленный список воспроизведения может включать в себя вспомогательный материал (например, рекламные объявления в интерфейсе пользователя на боковой панели, в сходных материалах, альтернативных версиях, и т.д.), представляемый в дополнение к программе в первоначальном списке воспроизведения, или может включать в себя дополнительные участки программы (например, вторую половину программы, которая находится вне первой половины, идентифицированной в первоначальном списке воспроизведения). В одном варианте выполнения сервер может использовать способ прокрутки, описанный здесь, для обновления списка воспроизведения, который затем клиент получает как обновленный список воспроизведения.

В одном варианте осуществления список воспроизведения может определять множество альтернативных потоков, представляющих то же самое содержание; эти альтернативные потоки могут представлять собой ту же программу, переданную с другим визуальным разрешением (и, следовательно, переданную с другой скоростью передачи битов) или с другими отличающимися атрибутами. Сервер может генерировать множество списков воспроизведения, каждый для одного из альтернативных потоков, и может генерировать вариант списка воспроизведения, который относится к, или иначе определяет альтернативные потоки. Сервер (или другой сервер) может затем передать вариант списка воспроизведения в устройство клиент, и устройство клиент может определить на основании текущих сетевых состояний (например, текущей пропускной способности сети, используемой для передачи мультимедийных файлов), какой список воспроизведения выбрать из варианта списка воспроизведения, и устройство клиент может загрузить выбранный список воспроизведения (и кроме того загрузить мультимедийные файлы, определенные этим выбранным списком воспроизведения).

В одном варианте осуществления устройство клиент может переключаться с первого списка воспроизведения в варианте списка воспроизведения на второй список воспроизведения в этом варианте списка воспроизведения при приеме и при представлении содержания. Например, устройство клиент может принимать программу, используя первый список воспроизведения и первую скорость передачи битов, и может определить путем измерения пропускной способности сети, что оно может принять содержание той же самой программы на более высокой, второй скорости передачи битов, чем у содержания, заданного вторым списком воспроизведения. В этом случае, устройство клиент может запросить второй список воспроизведения, принять второй список воспроизведения и начать отбор мультимедийных файлов, заданных во втором списке воспроизведения, при продолжении представлять содержание, определенное первым списком воспроизведения. Устройство клиент может сохранять мультимедийные файлы и полученное в результате распакованное содержание в буферах для обоих списков воспроизведения, и устройство клиент может выполнять автоматическую операцию для определения, когда и как переключиться или выполнить переход между двумя версиями содержания. Например, устройство клиент может использовать сопоставление по структуре звукового содержания в двух версиях содержания, чтобы найти точку соответствия в этих двух версиях и затем обеспечить переключение после идентификации перехода в новом содержании из второго списка воспроизведения.

В одном варианте осуществления способ включает в себя этап, на котором обеспечивают множество избыточных местоположений, которые предоставляют мультимедийное содержание в устройства клиенты, используя альтернативные потоки. Чтобы реализовывать защиту при обработке обхода отказа, первое устройство сервера или первая услуга распространения содержания создает поток или множество потоков с альтернативной полосой пропускания и генерирует файл (файлы) списка воспроизведения. Второе устройство сервера или вторая услуга распространения содержания создает параллельный поток или набор потоков. Клиент пытается загрузить файл (файлы) списка воспроизведения из первого унифицированного указателя ресурса (URL), используя первый поток, связанный с первым устройством сервера или первой услугой распространения содержания. Если клиент неспособен загрузить файл (файлы) списка воспроизведения из первого URL, клиент пытается переключиться на альтернативный поток, связанный с другим URL.

В одном варианте осуществления способ включает в себя этап, на котором предоставляют запрос списка воспроизведения и определяют в запросе, что список воспроизведения может быть сжат, и принимают, в ответ на запрос, список воспроизведения в сжатой форме, если сервер может предоставлять список воспроизведения в сжатой форме (иначе, список воспроизведения может быть предоставлен сервером в несжатом формате). Список воспроизведения может быть сжатым (также называется кодированным), используя технологии сжатия или формата, поддерживаемого, например, существующей технологией сжатия стандарта HTTP, такой как алгоритмы deflate или gzip. Передача и получение списка воспроизведения в сжатом формате может значительно уменьшить размер передаваемых и принимаемых данных, особенно, когда список воспроизведения растет в течение долгого времени (например, список воспроизведения для длинной игры в бейсбол). В одном варианте осуществления использование сжатия для списка воспроизведения может быть необязательным для обоих клиента (система, запрашивающая список воспроизведения) и сервера (система, отвечающая на запрос при отправке списка воспроизведения). Использование технологии сжатия или формата, которая является частью стандарта HTTP, обеспечивает возможность для любого совместимого веб-сервера подавать сжатый список воспроизведения, и для любого совместимого клиента распаковать и использовать список воспроизведения.

Краткое описание чертежей

Изобретение иллюстрируется посредством примера, а не для ограничения, на прилагаемых чертежах, на которых одинаковые номера ссылочных позиций относятся к аналогичным элементам.

На фиг.1 показана блок-схема одного варианта осуществления сервера и клиентов, которые могут передавать и принимать содержание в режиме реального времени или в режиме, близком к реальному времени.

На фиг.2А показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера для поддержки мультимедийного содержания с использованием непотоковых протоколов.

На фиг.2В показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера, для предоставления динамически обновленного списка воспроизведения в одно или больше устройств клиентов.

На фиг.2С показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера, для предоставления мультимедийного содержания в устройства клиенты, используя множество скоростей передачи битов.

На фиг.3А показана блок-схема последовательности операций одного варианта осуществления технологии для устройства клиента, для поддержки потоковой передачи содержания, используя непотоковые протоколы.

На фиг.3В показана блок-схема последовательности операций одного варианта осуществления технологии для устройства клиента, для поддержки потоковой передачи содержания, используя множество скоростей передачи битов.

На фиг.4 показана блок-схема одного варианта осуществления агента потока сервера.

На фиг.5 показана блок-схема одного варианта осуществления агента потока клиента.

На фиг.6 показан вариант осуществления файла списка воспроизведения с множеством тэгов.

На фиг.7 показана блок-схема последовательности операций одного варианта осуществления технологии воспроизведения для составных потоков как описано выше.

На фиг.8 показана блок-схема одного варианта осуществления электронной системы.

На фиг.9А показана блок-схема последовательности операций, представляющая пример того, как устройство клиент может переключаться между альтернативным содержанием в варианте списка воспроизведения.

На фиг.9В показана дополнительная блок-схема последовательности операций, представляющая, как устройство клиент может переключаться между содержанием в двух списках воспроизведения.

На фиг.9С показана дополнительная блок-схема последовательности операций, представляющая пример того, как устройство клиент может переключаться между содержаниями, используя сопоставление структуры звука.

На фиг.9D схематично показана реализация способа по фиг.9С с сопоставлением структуры звука.

На фиг.10 показана блок-схема последовательности операций одного варианта осуществления технологии для предоставления множества избыточных местоположений, которые предоставляют мультимедийное содержание в устройства клиенты, используя альтернативные потоки.

На фиг.11 показана сеть, в которой клиент 1102 выполняет двунаправленный обмен данными с одним или больше URL в соответствии с одним вариантом осуществления.

Подробное описание изобретения

В следующем описании представлены многочисленные конкретные детали. Однако варианты осуществления изобретения можно выполнить на практике без этих конкретных деталей. В других случаях известные схемы, структуры и технологии не были показаны подробно, чтобы не затенять понимание этого описания.

Настоящее описание включает в себя материал, защищенный авторскими правами, например, иллюстрации изображений графического интерфейса пользователя. Владельцы авторских прав, включая в себя правопреемника настоящего изобретения, тем самым сохраняют свои права, включая в себя авторское право, в этих материалах. Владелец авторского права не возражает против факсимильного воспроизведения любым лицом патентного документа или раскрытия патента, в том виде, как он представлен в файлах или документах Ведомства по патентам и товарным знакам, но в остальном сохраняет за собой все авторские права вообще. Авторское право Apple Inc 2009.

В одном варианте осуществления технологии и компоненты, описанные здесь, могут включать в себя механизмы, предназначенные для создания впечатления потоковой передачи данных, используя непотоковые протоколы (например, HTTP) и другие технологии (например, потоки Экспертной группы по вопросам движущегося изображения (MPEG)). Например, впечатление потоковой передачи данных в режиме, близком к реальному времени, может быть предоставлено, используя HTTP для широковещательной "прямой" передачи музыкального или спортивного события, прямой передачи новостей, передачи данных веб-камеры и т.д. В одном варианте осуществления протокол может сегментировать входящие мультимедийные данные на множество мультимедийных файлов и содержать эти сегментированные мультимедийные файлы на сервере. Протокол может также построить файл списка воспроизведения, который включает в себя универсальные идентификаторы ресурса (URI), которые направляют клиент к сегментированным мультимедийным файлам, содержащимся на сервере. Когда сегментированные мультимедийные файлы воспроизводят в соответствии с файлом (файлами) списка воспроизведения, клиент может представлять пользователю широковещательную передачу в режиме, близком к реальному времени "прямой" передачи события. Записанное заранее содержание может быть предоставлено аналогичным образом.

В одном варианте осуществления сервер может динамически представлять дополнительное или альтернативное мультимедийное содержание (например, рекламные объявления, статистику, относящуюся к спортивному событию, дополнительное мультимедийное содержание для основного представления) в событии широковещательной передачи. Например, во время воспроизведения клиентом мультимедийного содержания, сервер может добавить дополнительные URI к файлу списка воспроизведения, URI могут идентифицировать местоположение, из которого клиент может загрузить дополнительный мультимедийный файл. Клиенту может быть предоставлена инструкция периодически получать из сервера один или больше обновленный файл (файлы) списка воспроизведения, чтобы обращаться к любому дополнительному или вспомогательному (или к обоим) мультимедийному содержанию, которое представил сервер.

В одном варианте осуществления сервер может работать либо в режиме накопления или в режиме прокрутки. В режиме накопления сервер может создавать файл списка воспроизведения и добавлять идентификаторы мультимедийного файла в конце файла списка воспроизведения. У клиента затем есть доступ ко всем деталям потока от одиночного файла списка воспроизведения (например, пользователь может начать в середине представления) после загрузки. В режиме прокрутки сервер может ограничить доступность мультимедийных файлов при удалении идентификаторов мультимедийного файла из начала файла списка воспроизведения на основе прокрутки, таким образом, делая подвижное окно мультимедийного содержания доступным для устройства клиента. Сервер может также добавлять идентификаторы мультимедийного файла к списку воспроизведения, и, в режиме прокрутки, сервер может ограничить доступ к мультимедийным файлам теми, которые были последними добавлены к списку воспроизведения. Клиент затем многократно загружает обновленные копии файла списка воспроизведения, чтобы продолжить просмотр. Основание прокрутки для загрузки списка воспроизведения может быть полезным, когда содержание потенциально неограниченно во времени (например, содержание из постоянно работающей веб-камеры). Клиент может продолжить многократно запрашивать список воспроизведения в режиме прокрутки, пока он не найдет конечный тэг в списке воспроизведения.

В одном варианте осуществления механизм поддерживает переключение скорости передачи битов при обеспечении вариантов потоков того же самого представления. Например, несколько версий представления, которые будут поданы, могут содержаться на сервере. Каждая версия может иметь по существу одинаковое содержание, но может быть кодирована на разных скоростях передачи битов. Это может обеспечить возможность для устройства клиента переключаться между скоростями передачи битов в зависимости от, например, детектирования доступной полосы пропускания, не нарушая непрерывность воспроизведения.

В одном варианте осуществления элементы защиты могут быть предоставлены, чтобы защитить содержание от неавторизованного использования. Например, может использоваться непоследовательная нумерация мультимедийного файла, чтобы предотвратить прогнозирование. Может использоваться шифрование мультимедийных файлов. Могут использоваться частичные списки мультимедийного файла. Также могут быть предоставлены дополнительные и/или другие элементы защиты.

На фиг.1 представлена блок-схема одного варианта осуществления сервера и клиентов, которые могут передавать и принимать содержание в режиме реального времени, или в режиме, близком к реальному времени. В примере на фиг.1 представлено простое соединение клиент - сервер для двух клиентов, соединенных с сервером через сеть. Любое количество клиентов может поддерживаться, используя технологии и механизмы, описанные здесь. Кроме того, множество серверов могут предоставлять содержание и/или могут работать вместе для предоставления содержания в соответствии с технологией и механизмами, описанными здесь. Например, один сервер может создавать содержание, создавать списки воспроизведения и создавать множества мультимедийных данных (например, файлов), и другие серверы содержат и передают созданное содержание.

Сеть 110 может быть сетью любого типа, работающей по проводам, беспроводной сетью (например, IEEE 802.11, 802.16) или любой их комбинацией. Например, сеть 100 может представлять собой сеть Интернет или интранет. В качестве другого примера, сеть 110 может быть сотовой сетью (например, 3G, CDMA). В одном варианте осуществления устройства 150 и 180 клиенты могут быть выполнены с возможностью связи по множеству типов сетей (например, каждое устройство может обеспечивать передачу данных по беспроводной LAN WiFi и также по беспроводной сотовой телефонной сети). Например, устройства 150 и 180 клиенты могут быть смартфонами или карманными персональными компьютерами с поддержкой сотовой связи, которые могут выполнять обмен данными по сетям сотовой связи, а также по сетям передачи данных. Эти устройства могут иметь возможность использовать механизмы потоковой передачи, описанные здесь, либо по типу сети, или даже путем переключения между сетями, в случае необходимости.

Сервер 120 может работать как сервер HTTP любым способом, известным в уровне техники. То есть, сервер 120 включает в себя агента 145 сервера HTTP, который предоставляет содержание, используя протоколы HTTP. В то время как пример на фиг.1 описан со ссылкой на HTTP, другие протоколы могут быть использованы аналогичным образом. Сегментатор 130 и индексатор 135 являются агентами, которые постоянно находятся в сервере 120 (или множестве серверов) для предоставления содержания в мультимедийных файлах с файлом списка воспроизведения, как описано выше. Эти мультимедийные файлы и файлы списка воспроизведения могут быть предоставлены по сети 110 через агента 145 сервера HTTP (или через другие серверы), используя протоколы HTTP. Агенты, описываемые здесь, могут быть реализованы как аппаратные средства, программное обеспечение, встроенное программное обеспечение или их комбинация.

Сегментатор 130 может функционировать для разделения потоков мультимедийных данных на множество мультимедийных файлов, которые могут быть переданы через протоколы HTTP. Индексатор 135 может функционировать для формирования файла списка воспроизведения, соответствующего сегментированным мультимедийным файлам так, чтобы устройства клиенты могли повторно собрать мультимедийные файлы, чтобы обеспечить передачу в режиме реального времени, или в режиме, близком к реальному времени, содержания, предоставленного сервером 120. В ответ на один или больше запросов из устройства клиента агент 145 сервера HTTP (или другие серверы) может передать один или больше файлов списка воспроизведения по мере их генерирования индексатором 135, и мультимедийные файлы содержания, генерируемые сегментатором 130. Сервер 120 может, кроме того, включать в себя необязательный агент 140 безопасности, который обеспечивает одну или больше функций безопасности (например, шифрование), описанных здесь. Сервер 120 может также включать в себя дополнительные компоненты, не показанные на фиг.1.

Устройства 150 и 180 клиенты могут принимать файлы списка воспроизведения и мультимедийные файлы из сервера 120 по сети 110. Устройства клиенты могут представлять собой электронные устройства любого типа, которые выполнены с возможностью приема данных, переданных по сети, и генерирования выхода, используя данные, принятые по сети, например, беспроводные мобильные устройства, карманные персональные компьютеры, устройства для развлечения, потребительские электронные устройства и т.д. Выход может быть любым типом мультимедийной информации, представляющей собой комбинацию типов информации, включающей в себя, например, звук, видео или любую их комбинацию.

Устройство 150 клиент может включать в себя агент 160 сборщик и агент 165 генератор выходных данных. Точно так же устройство 180 клиент может включать в себя агент 190 сборщик и агент 195 генератор выходных данных. Агенты 160 и 180 сборщики принимают файлы списка воспроизведения из сервера 120 и используют файлы списка воспроизведения для доступа и загрузки мультимедийных файлов из сервера 120. Агенты 165 и 195 генераторы выходных данных используют загруженные мультимедийные файлы, чтобы сгенерировать выход устройств 150 и 160 клиентов, соответственно. Выход может быть обеспечен одним или больше громкоговорителями, одним или больше экранами дисплея, комбинацией громкоговорителей и экранов дисплея или любым другим устройством входа или выхода. Устройства клиенты могут также включать в себя запоминающее устройство (например, флэш-память или DRAM, и т.д.), действующее как буфер для содержания мультимедийных файлов (например, сжатых мультимедийных файлов или распакованных мультимедийных файлов), по мере их приема; буфер может обеспечивать воспроизведение в течение множества секунд представительного содержания, помимо времени содержания, представляемого в настоящий момент так, чтобы помещенное в буфер содержание могло позже быть отображено, в то время как загружается новое содержание. Этот буфер может предоставлять представительное содержание, в то время как устройство клиент пытается получить содержание через периодически становящееся медленным сетевое соединение, и, следовательно, буфер может скрывать проблемы, связанные с соединением или задержками сети.

Устройства 150 и 180 клиенты могут кроме того включать в себя необязательные агенты 170 и 185 безопасности, соответственно, которые обеспечивают одну или больше функций безопасности, описанных здесь. Устройства 150 и 180 клиенты могут также включать в себя дополнительные компоненты, не показанные на фиг.1.

В одном варианте осуществления могут использоваться технологии, которые описаны в этой заявке, для передачи неограниченного потока мультимедийных данных по непотоковому протоколу (например, HTTP). Варианты осуществления могут также включать в себя шифрование мультимедийных данных и/или предоставление альтернативных версий потока (например, для предоставления альтернативной скорости передачи битов). Поскольку мультимедийные данные могут быть переданы вскоре после создания, данные могут быть приняты в режиме, близком к реальному времени. Здесь представлены, в качестве примера, форматы данных для файлов, а также действия, которые будут предприняты сервером (передатчиком) и клиентом (приемником) потока мультимедийных данных; однако, также могут поддерживаться другие форматы.

Мультимедийное представление, которое может быть передано как имитированный поток в режиме реального времени (или поток в режиме, близком к реальному времени), задано универсальным индикатором ресурса (URI), который обозначает файл списка воспроизведения. В одном варианте осуществления файл списка воспроизведения представляет собой упорядоченный список дополнительных URI. Каждый URI в файле списка воспроизведения относится к мультимедийному файлу, который является сегментом потока, который может быть одиночным непрерывным потоком мультимедийных данных для конкретной программы.

Чтобы воспроизвести поток мультимедийных данных, устройство клиент получает файл списка воспроизведения из сервера. Клиент также получает и воспроизводит каждый файл мультимедийных данных, обозначенный файлом списка воспроизведения. В одном варианте осуществления клиент может динамически или многократно перезагружать файл списка воспроизведения, чтобы обнаружить дополнительные и/или другие сегменты мультимедийных данных.

Файлы списка воспроизведения могут представлять собой, например, файлы списка воспроизведения Extended M3U. В одном варианте осуществления используются дополнительные тэги, которые эффективно расширяют формат M3U. M3U относится к унифицированному указателю ресурса уровня 3 аудиоданных Экспертной группы по вопросам движущегося изображения (МР3 URL) и представляет собой формат, используемый, чтобы содержать списки воспроизведения мультимедийных данных. Файл M3U представляет собой текстовый файл, который содержит местоположения одного или больше мультимедийных файлов для их воспроизведения с помощью мультимедийного проигрывателя.

Файл списка воспроизведения, в одном варианте осуществления, является текстовым файлом в формате Extended M3U, который состоит из отдельных строк. Строки могут быть закончены либо одиночным знаком LF или знаком CR, сопровождаемым знаком LF. Каждая строка может быть URI, пустой строкой, или может начинаться со знака комментария (например, '#'). URI идентифицируют предназначенные для воспроизведения мультимедийные файлы. Пустые строки могут быть проигнорированы.

Строки, которые начинаются со знака комментария, могут быть либо комментариями, или тэгами. Тэги могут начинаться с #ЕХТ, в то время как строки комментария могут начинаться с #. Строки комментария обычно игнорируются сервером и клиентом. В одном варианте осуществления файлы списка воспроизведения кодированы в формате UTF-8. UTF-8 (8-битовый формат преобразования Unicode) представляет собой формат кодирования символов переменной длины. В альтернативных вариантах осуществления могут использоваться другие форматы кодирования символов.

В следующих примерах используется формат Extended M3U, который включает в себя два тэга: EXTM3U и EXTINF. Файл Extended M3U можно отличить от основного файла M3U по первой строке, которая включает в себя "#EXTM3U".

EXTINF представляет собой маркер записи, который описывает мультимедийный файл, идентифицированный по URI, который следует за тэгом. В одном варианте осуществления каждому мультимедийному файлу URI предшествует тэг EXTINF, например:

#EXTINF:<duration>,<title>

где "duration" (длительность) определяет длительность мультимедийного файла, и "title" (название) представляет название целевого мультимедийного файла.

В одном варианте осуществления могут использоваться следующие тэги, чтобы управлять передачей и воспроизведением мультимедийных файлов:

EXT-X-TARGETDURATION

EXT-X-MEDIA-SEQUENCE

EXT-X-KEY

EXT-X-PROGRAM-DATE-TIME

EXT-X-ALLOW-CACHE

EXT-X-STREAM-INF

EXT-X-ENDLIST

Каждый из этих тэгов будет более подробно описан ниже. В то время как определенные форматы и атрибуты описываются для каждого нового тэга, альтернативные варианты осуществления могут также поддерживаться с другими атрибутами, названиями, форматами, и т.д.

Тэг EXT-X-TARGETDURATION может обозначить приблизительную длительность следующего мультимедийного файла, который будет добавлен к представлению. Он может быть включен в файл воспроизведения, и формат может быть следующим:

#EXT-X-TARGETDURATION:<seconds>

где "seconds" (секунды) обозначают длительность мультимедийного файла. В одном варианте осуществления фактическая длительность может немного отличаться от целевой длительности, обозначенной тэгом. В одном варианте осуществления каждый URI, обозначающий сегмент, будет связан с приблизительной длительностью сегмента; например, URI для сегмента может содержать префикс с тэгом, обозначающим приблизительную длительность этого сегмента.

У каждого мультимедийного файла URI в файле списка воспроизведения может быть уникальный порядковый номер. Порядковый номер, если он присутствует, равен порядковому номеру URI, который предшествовал ему, плюс один в одном варианте осуществления. Тэг EXT-X-MEDIA-SEQUENCE может обозначать порядковый номер первого URI, который появляется в файле списка воспроизведения, и формат может быть следующим:

#EXT-X-MEDIA-SEQUENCE:<number>

где "number" (номер) представляет собой порядковый номер UPI. Если файл списка воспроизведения не включает в себя тэг #EXT-X-MEDIA-SEQUENCE, порядковый номер первого URI в списке воспроизведения можно считать равным 1. В одном варианте осуществления нумерация последовательности может быть непоследовательной; например, такая непоследовательная нумерация последовательности, как 1, 5, 7, 17, и т.д. может затруднять прогнозирование следующего номера в последовательности, и это может помочь защитить содержание от пиратских действий. Другой вариант, помогающий защитить содержание, состоит в представлении только части списка воспроизведения в любой момент времени.

Некоторые мультимедийные файлы могут быть зашифрованы. Тэг EXT-X-KEY предоставляет информацию, которая может использоваться для дешифрования мультимедийных файлов, которые следуют за ним, и формат может быть таким:

#EXT-X-KEY:METHOD=<method>[URI="<URI>"]

Параметр METHOD определяет способ шифрования и параметр URI, если присутствует, определяет, как получить ключ.

Способ шифрования NONE обозначает отсутствие шифрования. Различные способы шифрования могут использоваться, например электронное AES-128, которое обозначает шифрование в соответствии с Advance Encryption Standard со 128-битовым ключом, и заполнение PKCS7, [см. RFC3852]. Новый тэг EXT-X-KEY заменяет любые предшествующие тэги EXT-X-KEY.

Тэг EXT-X-KEY с параметром UPI идентифицирует ключевой файл. Ключевой файл может содержать ключ шифра, который должен использоваться, чтобы дешифровать последующие мультимедийные файлы, перечисленные в файле списка воспроизведения. Например, в способе шифрования AES-128 используются ключи с 16 октетами. Формат файла ключей может представлять собой массив пакетов из 16 октетов в двоичном формате.

Использование AES-128 обычно требует, чтобы тот же самый вектор инициализации (IV) с 16 октетами был подан при шифровании и при дешифровании. Изменение IV может использоваться, чтобы увеличить устойчивость шифра. При использовании шифрования AES-128 порядковый номер мультимедийного файла может использоваться как IV при шифровании или при дешифровании мультимедийных файлов.

Тэг EXT-X-PROGRAM-DATE-TIME может ассоциировать начало следующего мультимедийного файла с абсолютной датой и/или временем и может включать в себя или обозначать часовой пояс. В одном варианте осуществления представление даты/времени представляет собой ISO/IEC 8601:2004. Формат тэга может быть представлен следующим образом:

EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>

Тэг EXT-X-ALLOW-CACHE может использоваться для обозначения, может ли клиент кэшировать загруженные мультимедийные файлы для более позднего воспроизведения. Формат тэга может быть представлен следующим образом:

EXT-X-ALLOW-CACHE:<YES|NO>

Тэг EXT-X-ENDLIST обозначает в одном варианте осуществления, что к файлу списка воспроизведения больше не будут добавлены мультимедийные файлы. Формат тэга может быть представлен следующим образом:

EXT-X-ENDLIST

В одном варианте осуществления, если список воспроизведения содержит конечный сегмент или мультимедийный файл, тогда у списка воспроизведения будет тэг EXT-X-ENDLIST.

Тэг EXT-X-STREAM-INF может использоваться для обозначения, что следующий URI в файле списка воспроизведения идентифицирует другой файл списка воспроизведения. Формат тэга, в одном варианте осуществления может быть представлен следующим образом:

EXT-X-STREAM-INF: [attribute=value][attribute=value]*<URI>

где могут использоваться следующие атрибуты. Атрибут BANDWIDTH=<n> является приблизительной верхней границей скорости передачи потока битов, выраженной как множество бит в секунду. Атрибут PROGRAM-ID=<i> представляет собой номер, который однозначно определяет конкретное представление в рамках файла списка воспроизведения. Файл списка воспроизведения может включать в себя множество URI EXT-X-STREAM-INF с тем же самым PROGRAM-ID для описания вариантов потоков того же самого представления. Варианты потоков и варианты списков воспроизведения описаны дополнительно в этом раскрытии (например, см. фиг.9A-9D).

Представленные выше тэги и атрибуты могут использоваться устройством сервера, чтобы организовать, передать и обработать мультимедийные файлы, которые представляют первоначальное мультимедийное содержание. Устройства клиенты используют эту информацию, чтобы повторно собрать и представить мультимедийные файлы таким образом, чтобы обеспечить в режиме реального времени или в режиме, близком к реальному времени, впечатление потоковой передачи (например, просмотр прямой передачи, например, музыки или спортивного события) для пользователя устройства клиента.

Каждый URI мультимедийного файла в файле списка воспроизведения идентифицирует мультимедийный файл, который является сегментом первоначального представления (то есть, первоначальное мультимедийное содержание). В одном варианте осуществления каждый мультимедийный файл отформатирован как транспортный поток MPEG-2, программный поток MPEG-2, или звуковой элементарный поток MPEG-2. Формат может быть задан при определении кодировщика-декодировщика, и список воспроизведения может определять формат при определении кодировщика-декодировщика. В одном варианте осуществления у всех мультимедийных файлов в представлении есть одинаковый формат; однако, в других вариантах осуществления могут поддерживаться множества форматов. Файл транспортного потока, в одном варианте осуществления, должен содержать одиночную программу MPEG-2, и должна присутствовать таблица ассоциации программы и таблица карты программы в начале каждого файла. В файле, который содержит видеоданные, ДОЛЖНЫ присутствовать, по меньшей мере, один ключевой кадр и достаточно информации, чтобы полностью инициализировать видеодекодер. Клиенты ДОЛЖНЫ быть подготовлены к обработке множества дорожек определенного типа (например, звуковых или видеоданных) путем выбора обоснованного поднабора. Клиенты, в одном варианте осуществления, должны игнорировать частные потоки внутри транспортных потоков, которые они не распознают. Параметры кодирования для выборок в пределах потока в мультимедийном файле и между соответствующими потоками через множество мультимедийных файлов ДОЛЖНЫ оставаться согласованными. Однако клиенты ДОЛЖНЫ иметь возможность работать с изменениями кодирования, когда они возникают, например, при масштабировании видеосодержания, чтобы отработать изменение разрешения.

На фиг.2А показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера для поддержки мультимедийного содержания с использованием непотоковых протоколов. Пример фиг.2А предоставлен со ссылкой на HTTP; однако, другие непотоковые протоколы могут быть использованы аналогичным образом. Пример на фиг.2А показан для одиночного сервера, выполняющего некоторые задачи. Однако может быть использовано любое количество серверов. Например, сервер, который предоставляет мультимедийные файлы в устройства клиенты, может представлять собой другое устройство, чем сервер, который сегментирует содержание во множество мультимедийных файлов.

Устройство сервера принимает содержание, которое будет предоставлено во время операции 200. Содержание может представлять звук и/или видеоизображения прямой передачи (например, спортивное событие, прямая передача новостей, передача веб-камеры). Содержание может также представлять записанное заранее содержание (например, записанный концерт, учебный семинар, и т.д.). Содержание может быть принято сервером в соответствии с любым форматом и протоколом, известным в уровне техники, при выполнении потоковой передачи или нет. В одном варианте осуществления содержание принимается сервером в форме потока MPEG-2; однако, также могут поддерживаться другие форматы.

Сервер может затем временно содержать, по меньшей мере, части содержания в операции 210. Содержание или, по меньшей мере, части содержания могут временно содержаться, например, в устройстве-накопителе (например, на жестком диске в сети области сохранения, и т.д.) или в запоминающем устройстве. В качестве альтернативы, содержание может быть принято через носитель информации (например, компакт-диск, привод типа флэш), с которого содержание может быть передано в устройство накопитель или в запоминающее устройство. В одном варианте осуществления у сервера есть кодер, который преобразует, в случае необходимости, содержание в один или больше потоков (например, MPEG-2). Это преобразование может происходить без постоянного сохранения принятого содержания, и в некоторых вариантах осуществления, операция 210 сохранения может быть пропущена, или сохранение может быть сохранением на более длительный срок (например, архивное сохранение) в других вариантах осуществления.

Предоставляемое содержание сегментируют на множество мультимедийных файлов во время операции 220. В одном варианте осуществления сервер преобразует поток в отдельные и различные мультимедийные файлы (то есть, сегменты), которые могут быть распределены, используя стандартный веб-сервер. В одном варианте осуществления сервер сегментирует мультимедийный поток в точках, которые поддерживают эффективное декодирование отдельных мультимедийных файлов (например, по границам пакетов и границам ключевых кадров, например, по границам пакета PES и границам внутрикадрового кодирования). Мультимедийные файлы могут представлять собой участки первоначального потока с приблизительно равной длительностью. Сервер также создает URI для каждого мультимедийного файла. Эти URI позволяют устройствам клиентам обращаться к мультимедийным файлам.

Поскольку сегменты обслуживаются, используя серверы HTTP, которые, по сути, доставляют целые файлы, сервер должен иметь в наличии полный сегментированный мультимедийный файл прежде, чем он сможет передать его клиентам. Таким образом, клиент может изолировать (по времени) широковещательную передачу, по меньшей мере, одной длиной мультимедийного файла. В одном варианте осуществления размер мультимедийного файла основан на балансе между временем задержки и наличием слишком большого количества файлов.

В одном варианте осуществления поддерживаются два типа сеансов (сеанс прямой передачи и сеанс события). Для сеанса прямой передачи сохраняется только участок фиксированного размера потока. В одном варианте осуществления устаревшие файлы мультимедийного содержания удаляют из файла списка воспроизведения программы, и могут быть удалены из сервера. Второй тип сеанса - сеанс события, где клиент может настроиться на любую точку широковещательной передачи (например, начать с начала, начать со средней точки). Этот тип сеанса может использоваться, например, для ретрансляции.

Мультимедийные файлы сохраняют в запоминающем устройстве сервера во время операции 230. Мультимедийные файлы могут быть защищены средством защиты, например, путем шифрования, перед сохранением файлов во время операции 230. Мультимедийные файлы сохраняют как файлы, которые готовы для передачи, с использованием сетевого протокола (например, HTTP или HTTPS), поддерживаемого приложением веб-сервера в устройстве сервера (или поддерживаемого другим устройством, которое выполняет передачу).

Один или больше файлов списка воспроизведения генерируют, чтобы обозначить порядок, в котором мультимедийные файлы должны быть собраны, чтобы воссоздать оригинальное содержание во время операции 240. Файл (файлы) списка воспроизведения может использовать тэги Extended M3U и тэги, описанные здесь для предоставления информации для устройства клиента, чтобы обратиться и повторно собрать мультимедийные файлы для обеспечения впечатления потоковой передачи в устройстве клиенте. URI для каждого мультимедийного файла включен в файл (файлы) списка воспроизведения в порядке, в котором мультимедийные файлы предназначены для воспроизведения. Сервер может также создавать один или больше URI для файла (файлов) списка воспроизведения, чтобы позволить устройствам клиентам обращаться к файлу (файлам) списка воспроизведения.

Файл списка воспроизведения может храниться на сервере во время операции 250. Хотя создание и содержание мультимедийных файлов и файла (файлов) списка воспроизведения представлено в конкретном порядке на фиг.2А, также может использоваться другой порядок. Например, файл (файлы) списка воспроизведения может быть создан прежде, чем будут созданы и сохранены мультимедийные файлы. В качестве другого примера, могут быть созданы файл (файлы) списка воспроизведения и мультимедийные файлы до сохранения любого из них.

Если мультимедийные файлы должны быть зашифрованы, файл (файлы) списка воспроизведения может определять URI который позволяет авторизованным устройствам клиентам получать ключевой файл, содержащий ключ шифрования, чтобы дешифровать мультимедийные файлы. Ключ шифрования может быть передан, используя защищенное соединение (например, HTTP). В качестве другого примера, файл (файлы) списка воспроизведения может быть передан, используя HTTP. Как дополнительный пример, мультимедийные файлы могут быть расположены в непредсказуемом порядке так, чтобы клиент не мог обновить поток без файла (файлов) списка воспроизведения.

Если способ шифрования представляет собой AES-128, например, шифрование AES-128 СВС можно применять к отдельным мультимедийным файлам. В одном варианте осуществления шифруется весь файл. Цепочка блоков зашифрованного текста обычно не применяется через мультимедийные файлы в одном варианте осуществления. Последовательность мультимедийных файлов используется как IV, описанный выше. В одном варианте осуществления сервер добавляет тэг EXT-X-KEY с ключом URI в конце файла списка воспроизведения. Сервер затем шифрует все последующие мультимедийные файлы с этим ключом, пока не произойдет изменение в конфигурации шифрования.

Чтобы переключиться на новый ключ шифрования, сервер может сделать новый ключ доступным через новый URI, который отличается от всех предыдущих URI ключей, используемых в представлении. Сервер также добавляет тэг EXT-X-KEY с новым ключом URI в конец файла списка воспроизведения, и шифрует все последующие мультимедийные файлы с новым ключом.

Чтобы закончить шифрование, сервер может добавить тэг EXT-X-KEY со способом шифрования NONE в конец файла списка воспроизведения. Тэг (с "NONE" в качестве способа) не включает в себя параметр URI в одном варианте осуществления. Все последующие мультимедийные файлы не шифруются, пока изменение в конфигурации шифрования не будет выполнено, как описано выше. Сервер не удаляет тэг EXT-X-KEY из файла списка воспроизведения, если файл списка воспроизведения содержит URI мультимедийного файла, зашифрованного с этим ключом. Сервер может передать файл (файлы) списка воспроизведения и мультимедийные файлы по сети в ответ на запросы клиентов во время операции 270, как более подробно описано со ссылкой на фиг.3А.

В одном варианте осуществления сервер передает файл списка воспроизведения в устройство клиент в ответ на прием запроса из устройства клиента на файл списка воспроизведения. Устройство клиент может обратиться/запросить к файлу списка воспроизведения, используя URI, который был предоставлен устройству клиенту. URI обозначает местоположение файла списка воспроизведения на сервере. В отклике сервер может предоставлять файл списка воспроизведения в устройство клиент. Устройство клиент может использовать тэги и URI (или другие идентификаторы) в файле списка воспроизведения, чтобы получить доступ к множеству мультимедийных файлов.

В одном варианте осуществления сервер может ограничить доступность мультимедийных файлов теми, которые были в последний раз добавлены к файлу (файлам) списка воспроизведения. С этой целью, каждый файл списка воспроизведения может включать в себя только один тэг EXT-X-MEDIA-SEQUENCE, и значение может последовательно увеличиваться на единицу для каждого URI мультимедийного файла, который удаляют из файла списка воспроизведения. URI мультимедийного файла могут быть удалены из файла (файлов) списка воспроизведения в порядке, в котором они были добавлены. В одном варианте осуществления, когда сервер удаляет URI мультимедийного файла из файла (файлов) списка воспроизведения, мультимедийный файл остается доступным для клиентов сроком на время, равное длительности мультимедийного файла плюс длительность самого длинного файла списка воспроизведения, в котором появился мультимедийный файл.

Длительность файла списка воспроизведения представляет собой сумму длительностей мультимедийных файлов в пределах данного файла списка воспроизведения. Другая длительность может также использоваться. В одном варианте осуществления сервер может всегда поддерживать, по меньшей мере, три основных мультимедийных файла представления в списке воспроизведения, если не присутствует тэг EXT-X-ENDLIST.

На фиг.2В показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера, для предоставления динамически обновленного списка воспроизведения в одно или больше устройств клиентов. Списки воспроизведения могут быть обновлены, используя либо режим накопления или режим прокрутки, описанные здесь. Пример на фиг.2В представлен со ссылкой на HTTP; однако, другие непотоковые протоколы (например, HTTP, и т.д.), могут использоваться аналогичным способом. Пример на фиг.2В представлен со ссылкой на сервер, выполняющий некоторые задачи. Однако любое количество серверов может быть использовано. Например, сервер, который предоставляет мультимедийные файлы в устройства клиентов, может быть другим устройством, чем сервер, который сегментирует содержание во множество мультимедийных файлов.

Устройство сервера принимает содержание, которое будет предоставлено во время операции 205. Сервер может затем временно содержать, по меньшей мере, участки содержания во время операции 215. Операция 215 может быть аналогичной операции 210, показанной на фиг.2А. Содержание, которое будет предоставлено, сегментируют в множество мультимедийных файлов во время операции 225. Мультимедийные файлы могут содержаться в запоминающем устройстве сервера во время операции 235. Мультимедийные файлы могут быть защищены средством защиты, например, шифрованием, до сохранения файлов во время операции 235.

Один или больше файлов списка воспроизведения генерируют, чтобы обозначить порядок, в котором мультимедийные файлы должны быть собраны, чтобы воссоздать оригинальное содержание во время операции 245. Файл списка воспроизведения может храниться на сервере во время операции 255. В то время как создание и сохранение мультимедийных файлов и файла (файлов) списка воспроизведения представлены в конкретном порядке на фиг.2В, также может использоваться другой порядок.

Сервер (или другой сервер) может передавать файл (файлы) списка воспроизведения и мультимедийные файлы по сети в ответ на запросы клиентов во время операции 275, как более подробно описано со ссылкой на фиг.3А-3В.

Файл (файлы) списка воспроизведения может быть обновлен сервером по различным причинам. Сервер может принять дополнительные данные, которые будут предоставлены в устройства клиенты во время операции 285. Дополнительные данные могут быть приняты после сохранения файла (файлов) списка воспроизведения во время операции 255. Дополнительные данные могут представлять собой, например, дополнительные участки прямого представления, или дополнительную информацию для существующего представления. Дополнительные данные могут включать в себя рекламные объявления или статистику (например, счета или данные, относящиеся к спортивному событию). Дополнительные данные могут быть представлены с наложением (используя полупрозрачность) на представлении или могут быть представлены в интерфейсе пользователя на боковой панели. Дополнительные данные могут быть сегментированы тем же самым способом, как первоначально принятые данные. Если дополнительные данные составляют рекламные объявления, или другое содержание, которое будет вставлено в программу, представленную списком воспроизведения, дополнительные данные могут быть сохранены (по меньшей мере, временно) во время операции 215, сегментированы во время операции 225 и могут содержаться во время операции 235; перед сохранением сегментированных дополнительных данных, сегменты дополнительных данных могут быть зашифрованы. Затем во время операции 245 может быть сгенерирован обновленный список воспроизведения, содержащий программу и дополнительные данные. Список воспроизведения обновляется на основе дополнительных данных и сохраняется снова во время операции 255. Изменения файла (файлов) списка воспроизведения должны быть произведены на самом мелком уровне с точки зрения устройства клиента. Обновленный список воспроизведения заменяет, в одном варианте осуществления, предыдущий список воспроизведения. Как более подробно описано ниже, устройства клиенты могут запрашивать список воспроизведения множество раз. Эти запросы обеспечивают возможность устройствам клиентам использовать новый список воспроизведения. В одном варианте осуществления дополнительные данные могут быть метаданными; в этом случае, список воспроизведения не должен быть обновлен, но сегменты могут быть обновлены, чтобы включать в себя метаданные. Например, метаданные могут содержать временные штампы, которые могут быть согласованы с временными штампами на сегментах, и метаданные могут быть добавлены к сегментам, имеющим временные штампы соответствия.

Обновленный список воспроизведения может также привести к удалению мультимедийных файлов. В одном варианте осуществления сервер должен удалить URI для мультимедийных файлов из списка воспроизведения в порядке, в котором они были добавлены к списку воспроизведения. В одном варианте осуществления, если сервер удаляет все представление, он делает файл (файлы) списка воспроизведения недоступным для устройств клиентов. В одном варианте осуществления сервер поддерживает мультимедийные файлы и файл (файлы) списка воспроизведения на протяжении самого длинного файла (файлов) списка воспроизведения, содержащего мультимедийный файл, который будет удален, чтобы позволить текущим устройствам клиентам закончить обращение к представлению. Соответственно, каждый URI мультимедийного файла в файле списка воспроизведения может содержать префикс с тэгом EXT-X-STREAM-INF, чтобы обозначать приблизительную совместную длительность мультимедийных файлов, обозначенных файлом списка воспроизведения. В альтернативных вариантах осуществления мультимедийные файлы и файл (файлы) списка воспроизведения могут быть немедленно удалены.

Последующие запросы списка воспроизведения из устройств клиентов заканчиваются сервером, предоставляющим обновленный список воспроизведения, во время операции 275. В одном варианте осуществления списки воспроизведения обновляются на обычной основе, например, через период времени, относящийся к целевой длительности. Периодические обновления файла списка воспроизведения позволяют серверу предоставлять доступ к серверам, к динамически изменяющимся представлениям.

На фиг.2С показана блок-схема последовательности операций одного варианта осуществления технологии для одного или больше устройств сервера, для предоставления мультимедийного содержания устройств клиентов, используя множество скоростей передачи битов, что является одной формой использования альтернативных потоков. Пример фиг.2С представлена со ссылкой на HTTP; однако, другие непотоковые протоколы могут быть использованы аналогичным способом. Пример на фиг.2С представлен со ссылкой на сервер, выполняющий некоторые задачи. Однако может быть использовано любое количество серверов. Например, сервер, который предоставляет мультимедийные файлам устройства клиентов, может быть другим устройством, чем сервер, который сегментирует содержание на множество мультимедийных файлов.

В одном варианте осуществления сервер может предложить множество файлов списка воспроизведения или одиночный файл списка воспроизведения с множеством списков мультимедийных файлов в одном файле списка воспроизведения, чтобы обеспечить другое кодирование того же самого представления. Если другое кодирование будет обеспечено, каждый файл (файлы) списка воспроизведения может включать в себя различный поток, предоставляющий другие скорости передачи битов, чтобы обеспечить возможность для устройств клиентов динамически переключаться между кодированием (это описывается, кроме того, со ссылкой на фиг.9A-9D). Файлы списка воспроизведения, имеющие варианты потоков, могут включать в себя тэг EXT-X-STREAM-INF для каждого различного потока. У каждого тэга EXT-X-STREAM-INF для того же самого представления может быть одинаковое значение атрибута PROGRAM-ID. Значение PROGRAM-ID для каждого представления уникально в пределах вариантов потоков.

В одном варианте осуществления сервер удовлетворяет следующим ограничениям при производстве вариантов потоков. Каждый вариант потока может состоять из одинакового содержания, включая в себя необязательное содержание, которое не является частью основного представления. Сервер может сделать один и тот же период содержания доступным для всех вариантов потоков в пределах точности самой малой целевой длительности потоков. Мультимедийные файлы вариантов потоков представляют собой, в одном варианте осуществления, либо транспортный поток и MPEG-2, или потоки программы MPEG-2 с типовыми временными штампами, которые соответствуют соответствующему содержанию во всех различных потоках. Кроме того, все варианты потоков, в одном варианте осуществления, должны содержать одинаковое кодирование звука. Это позволяет устройствам клиентам переключаться между различными потоками, не теряя содержание.

Как показано на фиг.2С, устройство сервер принимает содержание, которое будет предоставлено во время операции 202. Сервер может затем, по меньшей мере, временно содержать содержание во время операции 212. Содержание, которое будет предоставлено, сегментируют на множество мультимедийных файлов во время операции 222. Каждый мультимедийный файл кодирован для выбранной скорости передачи битов (или выбранного значения других параметров кодирования) и содержится на сервере во время операции 232. Например, мультимедийные файлы могут быть предназначены для соединения с широкой, средней и узкой полосой пропускания. Мультимедийные файлы могут быть зашифрованы до сохранения. Кодирование мультимедийных файлов, предназначенных для различных типов соединений, может быть выбрано для предоставления впечатления потоковой передачи на целевом уровне полосы пропускания.

В одном варианте осуществления вариант списка воспроизведения генерируется во время операции 242 с тэгами, как описано выше, которые обозначают различные уровни кодирования. Тэги могут включать в себя, например, тэг EXT-X-STREAM-INF для каждого уровня кодирования с URI для соответствующего мультимедийного файла списка воспроизведения.

Этот вариант списка воспроизведения может включать в себя URI для мультимедийных файлов списка воспроизведения для различных уровней кодирования. Таким образом, устройство клиент может выбрать целевую скорость передачи битов среди альтернативных вариантов, предоставленных в варианте списка воспроизведения, обозначающем уровни кодирования, и найти соответствующий файл списка воспроизведения. В одном варианте осуществления устройство клиент может изменять скорости передачи битов во время воспроизведения (например, как описано со ссылкой на фиг.9A-9D). Вариант списка воспроизведения, обозначающий различные уровни кодирования, содержится на сервере во время операции 252. Во время операции 242 каждый из списков воспроизведения, упомянутых в варианте списка воспроизведения, может быть также сгенерирован и затем сохранен во время операции 252.

В ответ на запрос из устройства клиента сервер может передать вариант списка воспроизведения, который обозначает различные уровни кодирования, во время операции 272. Сервер может принять запрос на один из мультимедийных списков воспроизведения, заданных в варианте списка воспроизведения, соответствующем выбранной скорости передачи битов во время операции 282. В ответ на запрос сервер передает мультимедийный файл списка воспроизведения, соответствующий запросу, из устройства клиента во время операции 292. Устройство клиент может затем использовать мультимедийный список воспроизведения, чтобы запросить мультимедийные файлы из сервера. Сервер предоставляет мультимедийные файлы в устройство клиент в ответ на запросы во время операции 297.

На фиг.3А показана блок-схема последовательности операций одного варианта осуществления технологии для устройства клиента, для поддержки потоковой передачи содержания, используя непотоковые протоколы. Пример фиг.3А представлен со ссылкой на HTTP; однако, другие непотоковые протоколы могут быть использованы аналогичным образом. Способы, показанные на фиг.3А-3В, могут быть выполнены одним устройством клиентом или несколькими отдельными устройствами клиентами. Например, в случае любого из этих способов, одиночное устройство клиент может выполнять все операции (например, запрашивать файл списка воспроизведения, запрашивать мультимедийные файлы, используя URI в файле списка воспроизведения, собирать мультимедийные файлы, чтобы сгенерировать и предоставить представление/выход), или несколько различных устройств клиентов могут выполнять некоторые, но не все, операции (например, первое устройство клиент может запрашивать файл списка воспроизведения и запрашивать мультимедийные файлы, используя URI в файле списка воспроизведения, и может предоставлять эти мультимедийные файлы для использования вторым устройством клиентом, которое может обрабатывать мультимедийные файлы, чтобы генерировать и предоставлять представление/выход).

Устройство клиент может запрашивать файл списка воспроизведения из сервера во время операции 300. В одном варианте осуществления запрос выполняют в соответствии с HTTP совместимым протоколом. В запросе используют URI исходного файла списка воспроизведения, сохраненного на сервере. В альтернативных вариантах осуществления могут быть поддержаны другие непотоковые протоколы. В ответ на запрос сервер передает соответствующий файл списка воспроизведения клиенту по сети. Как описано выше, сеть может быть проводной или беспроводной, и может быть любой комбинацией проводной или беспроводной сетей. Кроме того, сеть может быть сетью передачи данных (например, IEEE 802.11, IEEE 802.16) или сотовой телефонной сетью (например, 3G).

Устройство клиент может принимать файл списка воспроизведения во время операции 310. Файл списка воспроизведения может храниться в запоминающем устройстве устройства клиента во время операции 320. Запоминающее устройство может представлять собой, например, жесткий диск, флэш-память, оперативное запоминающее устройство. В одном варианте осуществления каждый раз, когда файл списка воспроизведения загружается или перезагружается из URI списка воспроизведения, клиент проверяет, чтобы определить, что файл списка воспроизведения начинается с тэга #EXTM3U, и не продолжает операцию, если тэг отсутствует. Как описано выше, файл списка воспроизведения включает в себя один или больше тэгов, а также один или больше URI мультимедийным файлов.

Устройство клиент может включать в себя агент сборщик, который использует файл списка воспроизведения для повторной сборки оригинального содержания путем запроса мультимедийных файлов, обозначенных URI в файле списка воспроизведения во время операции 330. В одном варианте осуществления агент сборщик представляет собой сменный модуль, который является частью стандартного приложения веб-браузера. В другом варианте осуществления агент сборщик может представлять собой автономную систему, которая взаимодействует с веб-браузером для приема и сборки мультимедийных файлов, используя файл (файлы) списка воспроизведения. В качестве дополнительного примера, агент сборщик может быть выполнен как аппаратные средства специального назначения или как компонент встроенного программного обеспечения, который встроен в устройство клиент.

Сборщик обеспечивает загрузку мультимедийных файлов из файла списка воспроизведения из сервера, обозначенного URI. Если файл списка воспроизведения содержит тэг EXT-X-ENDLIST, любой мультимедийный файл, обозначенный файлом списка воспроизведения, может быть воспроизведен первым. Если тэг EXT-X-ENDLIST не присутствует, любой мультимедийный файл за исключением последнего и предпоследнего мультимедийных файлов может быть воспроизведен первым. Как только первый мультимедийный файл для воспроизведения будет выбран, загружаются последующие мультимедийные файлы из файла списка воспроизведения, в одном варианте осуществления, в порядке, в котором они представлены в файле списка воспроизведения (иначе, содержание будет представлено не по порядку). В одном варианте осуществления устройство клиент пытается загрузить мультимедийные файлы перед тем, когда они потребуются (и содержит их в буфере), чтобы обеспечить непрерывное воспроизведение и компенсировать временные изменения задержки в сети и пропускной способности.

Загруженный мультимедийный файл (файлы) может быть сохранен в запоминающем устройстве устройства клиента во время операции 340. Запоминающее устройство, в котором может быть сохранено содержание, может быть запоминающим устройством любого типа в устройстве клиенте, например, оперативным запоминающим устройством, жестким диском или видеобуфером. Сохранение может быть временным, чтобы обеспечить возможность воспроизведения, или может быть постоянным. Если файл списка воспроизведения содержит тэг EXT-X-ALLOW-CACHE, и его значение - НЕТ, клиент не сохраняет загруженные мультимедийные файлы после их воспроизведения. Если список воспроизведения содержит тэг EXT-X-ALLOW-CACHE, и его значение ДА, устройство клиент может сохранять мультимедийные файлы неопределенно долго для более позднего повторного воспроизведения. Устройство клиент может использовать значение тэга EXT-X-PROGRAM-DATE-TIME для отображения времени происхождения программы для пользователя. В одном варианте осуществления клиент может поместить в буфер множество мультимедийных файлов так, чтобы он был менее восприимчивым к сетевым пульсациям для предоставления лучшего впечатления для пользователя.

В одном варианте осуществления, если способ дешифрования представляет собой AES-128, то AES-128 СВС дешифрование применяют к отдельным мультимедийным файлам. Весь файл дешифруют. В одном варианте осуществления цепочка блоков зашифрованного текста не применяется в мультимедийных файлах. Порядковый номер мультимедийного файла может использоваться как вектор инициализации, как описано выше.

Из запоминающего устройства содержание может быть выведено из устройства клиента во время операции 350. Выход или представление могут быть, например, выходом звукового сигнала через встроенные громкоговорители или головные телефоны. Выход может включать в себя видеоизображение, которое выводят через экран или проецируют из устройства клиента. Любой тип выхода, известный в уровне техники, может быть использован. Во время операции 351 устройство клиент определяет, есть ли еще мультимедийные файлы в сохраненном, текущем списке воспроизведения, которые не были воспроизведены или иначе представлены. Если такие мультимедийные файлы существуют (и если они не были запрошены), обработка возвращается к операции 330, в которой запрашивают один или больше мультимедийных файлов, и процесс повторяют. Если таких мультимедийных файлов нет (то есть, все мультимедийные файлы в текущем списке воспроизведения были воспроизведены), то обработка переходит к операции 352, которая определяет, включает ли в себя файл списка воспроизведения конечный тэг.

Если список воспроизведения включает в себя конечный тэг (например, EXT-X-ENDLIST) во время операции 352, воспроизведение прекращается, после воспроизведения мультимедийных файлов, обозначенных файлом списка воспроизведения. Если конечный тэг не находится в списке воспроизведения, то устройство клиент снова запрашивает список воспроизведения из сервера и возвращается назад к операции 300, чтобы получить дальнейший или обновленный список воспроизведения для программы.

Как описано более подробно со ссылкой на фиг.2В, сервер может обновлять файл списка воспроизведения для представления дополнительного содержания (например, дополнительных идентификаторов мультимедийного файла, соответствующих дополнительному мультимедийному содержанию при прямой передаче) или дополнительного содержания (например, содержания далее по потоку). Чтобы обратиться к вспомогательному содержанию или дополнительному содержанию, клиент может перезагрузить обновленный список воспроизведения из сервера. Это может предоставлять механизм, с помощью которого файлы списка воспроизведения могут быть динамически обновлены, даже во время воспроизведения мультимедийного содержания связанного с файлом списка воспроизведения. Клиент может запросить перезагрузку файла списка воспроизведения на основе множества триггеров. Отсутствие конечного тэга представляет собой один такой триггер.

В одном варианте осуществления устройство клиент периодически перезагружает файл (файлы) списка воспроизведения, если только файл списка воспроизведения не содержит тэг EXT-X-ENDLIST. Когда устройство клиент загружает файл списка воспроизведения впервые, или перезагружает файл списка воспроизведения и находит, что файл списка воспроизведения изменился с последнего раза, когда он был загружен, клиент может ожидать в течение определенного периода, перед попыткой повторной загрузки файла списка воспроизведения. Этот период называется исходной минимальной задержкой перезагрузки. Он измеряется от времени, когда клиент начал загружать файл списка воспроизведения.

В одном варианте осуществления исходная минимальная задержка перезагрузки составляет длительность последнего мультимедийного файла в файле списка воспроизведения или трехкратную целевую длительность, в зависимости от того, которая из них меньше. Длительность мультимедийного файла задана тэгом EXTINF. Если клиент перезагружает файл списка воспроизведения и находит, что он не изменился, тогда клиент может ожидать в течение определенного периода времени до повторения попытки. Минимальная задержка в одном варианте осуществления составляет трехкратную целевую длительность или кратное исходной минимальной задержки перезагрузки, в зависимости от того, которая из них меньше. В одном варианте осуществления эта кратность составляет 0,5 для первой попытки, 1,5 для второй попытки и 3,0 для последующих попыток; однако, другие кратности могут использоваться.

Каждый раз, когда файл списка воспроизведения загружается или перезагружается, устройство клиент исследует файл списка воспроизведения, чтобы определить следующий мультимедийный файл для загрузки. Первый файл, который будет загружен, представляет собой мультимедийный файл, выбранный для воспроизведения первым, как описано выше. Если первый предназначенный для воспроизведения мультимедийный файл был загружен, и файл списка воспроизведения не содержит тэг EXT-X-MEDIA-SEQUENCE, тогда клиент может проверить, что текущий файл списка воспроизведения содержит URI последнего загруженного мультимедийного файла со смещением относительно места, где он был первоначально найден, останавливая воспроизведение, если файл не будет найден. Следующий мультимедийный файл, который будет загружен, может представлять собой первый мультимедийный файл URI после последнего загруженного URI в файле списка воспроизведения.

Если первый, предназначенный для воспроизведения файл был загружен, и файл списка воспроизведения содержит тэг EXT-X-MEDIA-SEQUENCE, то следующий мультимедийный файл, который будет загружен, может представлять собой файл с самым малым порядковым номером, который больше, чем порядковый номер последнего загруженного мультимедийного файла. Если файл списка воспроизведения содержит тэг EXT-X-KEY, который определяет ключевой файл URI, устройство клиент получает ключевой файл и использует ключ из ключевого файла, чтобы дешифровать мультимедийные файлы после тэга EXT-X-KEY, пока не появится другой тэг EXT-X-KEY.

В одном варианте осуществления устройство клиент использует тот же самый URI, который использовался ранее для загрузки файла списка воспроизведения. Таким образом, если в файле списка воспроизведения были произведены изменения, устройство клиент может использовать обновленный файл списка воспроизведения, чтобы найти мультимедийные файлы и обеспечить выход на основе мультимедийных файлов.

Изменения файла списка воспроизведения могут включать в себя, например, удаление URI мультимедийного файла, добавление URI нового мультимедийного файла, замену URI замененного мультимедийного файла. Когда изменения выполняют в файле списка воспроизведения, один или больше тэгов могут быть обновлены, чтобы отразить изменение (изменения). Например, тэг длительности может быть обновлен, если изменения мультимедийных файлов приводят к изменениям длительности воспроизведения мультимедийных файлов, обозначенных файлом списка воспроизведения.

На фиг.3В показана блок-схема последовательности операций одного варианта осуществления технологии для устройства клиента, для поддержки потоковой передачи содержания, используя множество скоростей передачи битов, которая является одной формой альтернативных потоков. Пример на фиг.3В представлен со ссылкой на HTTP; однако, другие непотоковые протоколы могут быть использованы аналогичным образом.

Устройство клиент может запросить файл списка воспроизведения во время операции 370. Как описано выше, файл списка воспроизведения может быть найден, используя UPI, предоставленный устройству клиенту. В одном варианте осуществления файл списка воспроизведения включает в себя списки вариантов потоков мультимедийных файлов для предоставления одного и того же содержания с разными скоростями передачи битов; другими словами, одиночный файл списка воспроизведения включает в себя UPI для мультимедийных файлов каждого из вариантов потоков. В примере, показанном на фиг.3В, используется этот вариант осуществления. В другом варианте осуществления варианты потоков могут быть представлены множеством различных файлов списка воспроизведения, отдельно предоставленных клиенту, каждый из которых предоставляет одно и то же содержание с разными скоростями передачи битов, и вариант списка воспроизведения может предоставлять URI для каждого из отдельных файлов списка воспроизведения. Это позволяет устройству клиенту выбирать скорость передачи битов на основании состояния клиента.

Файл (файлы) списка воспроизведения может быть найден устройством клиентом во время операции 375. Файл списка воспроизведения может быть сохранен в запоминающем устройстве устройства клиента во время операции 380. Устройство клиент может выбирать скорость передачи битов, которая будет использоваться во время операции 385, на основании текущей скорости сетевого соединения. Мультимедийные файлы запрашиваются из сервера, используя URI, включенный в файл списка воспроизведения, соответствующий выбранной скорости передачи битов, во время операции 390. Найденные мультимедийные файлы могут содержаться в запоминающем устройстве устройства клиента. Выход предоставляется устройством клиентом, использующим мультимедийные файлы, во время операции 394, и устройство клиент определяет, следует ли изменить скорость передачи битов.

В одном варианте осуществления устройство клиент первоначально выбирает самую низкую доступную скорость передачи. При воспроизведении мультимедийных данных устройство клиент может выполнять мониторинг доступной полосы пропускания (например, текущей скорости передачи битов сетевого соединения), чтобы определить, может ли доступная полоса пропускания поддерживать использование больше высокой скорости передачи битов для воспроизведения. Если так, устройство клиент может выбирать более высокую скорость передачи битов и обращаться к мультимедийным файлам, обозначенным мультимедийным файлом списка воспроизведения с более высокой скоростью передачи битов. Обратный подход также может поддерживаться. Если для воспроизведения употребляется слишком много полосы пропускания, устройство клиент может выбрать более низкую скорость передачи битов и может обращаться к мультимедийным файлам, обозначенным мультимедийным файлом списка воспроизведения, с более низкой скоростью передачи битов.

Если устройство клиент изменяет скорость передачи битов во время операции 394, например, в ответ на изменение доступной полосы пропускания или в ответ на входную команду пользователя, устройство клиент может выбрать другую скорость передачи битов во время операции 385. В одном варианте осуществления чтобы выбрать другую скорость передачи битов устройство клиент может использовать другой список URI, включенных в файл списка воспроизведения, который соответствует новой выбранной скорости передачи битов. В одном варианте осуществления устройство клиент может изменять скорость передачи битов во время доступа к мультимедийным файлам, содержащимся в списке воспроизведения.

Если скорость передачи битов не изменяется во время операции 394, то устройство клиент определяет, имеются ли еще не воспроизведенные мультимедийные файлы в текущем списке воспроизведения, которые не были найдены и представлены. Если такие мультимедийные файлы существуют, то обработка возвращается к операции 390, и один или больше мультимедийных файлов получают, используя URI для этих файлов в списке воспроизведения. Если такие мультимедийные файлы отсутствуют (то есть все мультимедийные файлы в текущем списке воспроизведения были воспроизведены), то обработка переходит к операции 396, на которой определяют, включает ли в себя список воспроизведения конечный тэг. Если это так, воспроизведение программы закончилось, и процесс закончен; если это не так, то обработка возвращается к операции 370, и устройство клиент запрашивает перезагрузку списка воспроизведения для программы, и процесс повторяется в соответствии со способом, показанным на фиг.3В.

На фиг.4 показана блок-схема одного варианта осуществления агента потока сервера. Следует понимать, что элементы агента 400 потока сервера могут быть распределены в нескольких устройствах сервера. Например, первое устройство сервера может включать в себя сегментатор 430, индексатор 440 и блок 450 безопасности, но не включать в себя файловый сервер 460, и второе устройство сервера может включать в себя файловый сервер 450, но не включать в себя сегментатор 430, индексатор 440 и блок 450 безопасности. В этом примере первое устройство сервера может подготавливать списки воспроизведения и мультимедийные файлы, но не передает их устройствам клиентам, в то время как одно или больше вторых устройств сервера могут принимать и, в случае необходимости, сохранять списки воспроизведения и мультимедийные файлы и передавать списки воспроизведения и мультимедийные файлы в устройства клиенты. Агент 400 потока сервера включает в себя управляющую логику 410, которая реализует логическое функциональное управление, чтобы направить операцию агента 400 потока сервера, и аппаратные средства, связанные с направлением операции агента 400 потока сервера. Логика может быть представлена аппаратными логическими схемами или программными процедурами или встроенным программным обеспечением. В одном варианте осуществления агент 400 потока сервера включает в себя одно или больше приложений 412, которые представляют кодовую последовательность и/или программы, которые передают инструкции в управляющую логику 410.

Агент 400 потока сервера включает в себя запоминающее устройство 414, которое представляет запоминающее устройство или доступ к ресурсу запоминающего устройства для сохранения данных или инструкций. Запоминающее устройство 414 может включать в себя запоминающее устройство, локальное для агента 400 потока сервера, а также, или в качестве альтернативы, может включать в себя запоминающее устройство хост-системы, в которой постоянно находится агент 400 потока сервера. Агент 400 потока сервера также включает в себя один или больше интерфейсов 416, которые представляют интерфейсы доступа в/из (интерфейс ввода-вывода данных) агента 400 потока сервера относительно объектов (электронных или человека), внешних для агента 400 потока сервера.

Агент 400 потока сервера также может включать в себя механизм потока сервера 420, который представляет одну или больше функций, которые обеспечивают возможность для агента 400 потока сервера выполнять потоковую передачу в режиме реального времени или в режиме, близком к реальному времени, как описано выше. В примере по фиг.4 представлены несколько компонентов, которые могут быть включены в механизм потока сервера 420; однако, другие или дополнительные компоненты могут также быть включены в него. Приведенные в качестве примера компоненты, которые могут использоваться при предоставлении среды потоковой передачи, включают в себя сегментатор 430, индексатор 440, блок 450 безопасности и файловый сервер 460. Каждый из этих компонентов может, кроме того, включать в себя другие компоненты для предоставления других функций. Как используется здесь, компонент относится к процедуре, подсистеме, и т.д., реализованный либо в аппаратных средствах, в программном обеспечении, во встроенном программном обеспечении или в некоторой их комбинации.

Сегментатор 430 делит содержание, которое будет предоставлено, на мультимедийные файлы, которые могут быть переданы как файлы, используя протокол веб-сервера (например, HTTP). Например, сегментатор 430 может разделять содержание на заданные блоки данных фиксированного размера в заданном формате файла.

Индексатор 440 может предоставлять один или больше файлов списка воспроизведения, которые предоставляют адрес или URI для мультимедийных файлов, созданных сегментатором 430. Индексатор 440 может, например, создавать один или больше файлов с порядковым списком идентификаторов, соответствующих каждому файлу, созданному сегментатором 430. Идентификаторы могут быть созданы или назначены либо сегментатором 430, или индексатором 440. Индексатор 440 может также включать в себя один или больше тэгов в файлы списка воспроизведения, чтобы поддерживать доступ и/или использование мультимедийных файлов.

Блок 450 безопасности может предоставлять средство защиты (например, шифрование), например, такое как описано выше. Веб-сервер 460 может предоставлять функции веб-сервера, которые относятся к предоставлению файлов, хранящихся в хост-системе, удаленному устройству клиенту. Веб-сервер 460 может поддерживать, например, HTTP совместимые протоколы.

На фиг.5 показана блок-схема одного варианта осуществления агента потока клиента. Следует понимать, что элементы агента потока клиента могут быть распределены в нескольких устройствах клиентах. Например, первое устройство клиент может включать в себя сборщик 530 и блок 550 безопасности и может предоставлять дешифрованный поток мультимедийных файлов во второе устройство клиент, которое включает в себя генератор 540 выходных данных (но не включает в себя сборщик 530 и блок 550 безопасности). В другом примере первичное устройство клиент может получать списки воспроизведения и предоставлять их во вторичное устройство клиент, которое получает мультимедийные файлы, заданные в списке воспроизведения, и генерирует выход, чтобы представить эти мультимедийные файлы. Агент 500 потока клиента включает в себя управляющую логику 510, которая реализует логическое функциональное управление, чтобы направить операцию агента 500 потока клиента, и аппаратные средства, связанные с направлением операции агента 500 потока клиента. Логика может представлять собой аппаратные логические схемы или программные процедуры, или встроенное программное обеспечение. В одном варианте осуществления агент 500 потока клиента включает в себя одно или больше приложений 512, которые представляют кодовую последовательность или программы, которые предоставляют инструкции для управляющей логики 510.

Агент 500 потока клиента включает в себя запоминающее устройство 514, которое представляет собой запоминающее устройство или доступ к ресурсу запоминающего устройства для сохранения данных и/или инструкций. Запоминающее устройство 514 может включать в себя запоминающее устройство, локальное для агента 500 потока клиента, а также, или в качестве альтернативы, включать в себя запоминающее устройство хост-системы, в которой постоянно находится агент 500 потока клиента. Агент 500 потока клиента также включает в себя один или больше интерфейсов 516, которые представляют интерфейсы доступа в/из (интерфейс ввода-вывода данных) агента 500 потока клиента относительно объектов (электронных или человека), внешних для агента 500 потока клиента.

Агент 500 потока клиента также может включать в себя механизм 520 потока клиента, который представляет одну или больше функций, которые обеспечивают возможность для агента 500 потока клиента выполнить потоковую передачу в режиме реального времени или в режиме, близком к реальному времени, как описано выше. В примере на фиг.5 представлено несколько компонентов, которые могут быть включены в механизм 520 потока клиента; однако, другие или дополнительные компоненты могут также быть включены. Приведенные в качестве примера компоненты, которые могут использоваться при предоставлении среды потоковой передачи, включают в себя сборщик 530, генератор 540 выходных данных и блок 550 безопасности. Каждый из этих компонентов может, кроме того, включать в себя другие компоненты для предоставления других функций. Как используется здесь, компонент относится к процедуре, подсистеме, и т.д., реализованным либо в виде аппаратных средств, в программном обеспечении, во встроенном программном обеспечении или в некоторой их комбинации.

Сборщик 530 может использовать файл списка воспроизведения, принятый из сервера, чтобы обратиться к мультимедийным файлам через протокол веб-сервера (например, HTTP) из сервера. В одном варианте осуществления сборщик 530 может обеспечивать загрузку мультимедийных файлов, обозначенных UPI в файле списка воспроизведения. Сборщик 530 может отвечать на тэги, включенные в файл списка воспроизведения.

Генератор 540 выходных данных может предоставлять полученные мультимедийные файлы как звуковой или визуальный выход (или одновременно звук и видеоизображения) в хост-системе. Генератор 540 выходных данных может, например, обеспечивать выход звука в один или больше громкоговорителей и выход видеоизображения в устройство дисплея. Блок 550 безопасности может предоставлять средства защиты, например, описанные выше.

На фиг.6 иллюстрируется один вариант осуществления списка воспроизведения с множеством тэгов. Приведенный в качестве примера на фиг.6 список воспроизведения включает в себя определенное количество и порядок тэгов. Он предусмотрен только в целях описания. Некоторые файлы списка воспроизведения могут включать в себя больше, меньше или другие комбинации тэгов, и тэги могут быть расположены в другом порядке, чем показанный на фиг.6.

Начальный тэг 610 может обозначать начало файла списка воспроизведения. В одном варианте осуществления начальный тэг 610 представляет собой тэг #EXTM3U. Тэг 620 длительности может обозначать длительность списка воспроизведения. Таким образом, длительность воспроизведения мультимедийных файлов обозначается списком 600 воспроизведения. В одном варианте осуществления тэг 620 длительности представляет собой тэг EXT-X-TARGETDURATION; однако, другие тэги также могут использоваться.

Тэг 625 даты/времени может предоставлять информацию, относящуюся к дате и времени содержания, предоставленного мультимедийными файлами, обозначенными списком 600 воспроизведения. В одном варианте осуществления тэг 625 даты/времени представляет собой тэг EXT-X-PROGRAM-DATE-ТIМЕ; однако, другие тэги также могут использоваться. Тэг 630 последовательности может обозначать последовательность файла 600 списка воспроизведения в последовательности списков воспроизведения. В одном варианте осуществления тэг 630 последовательности представляет собой тэг EXT-X-MEDIA-SEQUENCE; однако, другие тэги также могут использоваться.

Тэг 640 безопасности может предоставлять информацию, относящуюся к безопасности и/или шифрованию, применяемому к мультимедийным файлам, обозначенным файлом 600 списка воспроизведения. Например, тэг 640 безопасности может определять ключ дешифрования для дешифрования файлов, определенных индикаторами мультимедийного файла. В одном варианте осуществления тэг 640 безопасности представляет собой тэг EXT-X-KEY; однако, другие тэги также могут использоваться. Тэг 645 варианта списка может обозначать, предоставляются ли варианты потоков списком воспроизведения 600, а также информацию, относящуюся к различным потокам (например, каково их количество, скорость передачи битов). В одном варианте осуществления тэг 645 варианта списка представляет собой тэг EXT-X-STREAM-INF.

Индикаторы 650 мультимедийного файла могут предоставлять информацию, относящуюся к предназначенным для воспроизведения мультимедийным файлам. В одном варианте осуществления индикаторы 650 мультимедийного файла включают в себя URI, предназначенных для воспроизведения множества мультимедийных файлов. В одном варианте осуществления порядок URI в списке 600 воспроизведения соответствует порядку, в котором к мультимедийным файлам следует обращаться и/или их воспроизводить. Следующие индикаторы 660 списка воспроизведения могут предоставлять информацию, относящуюся к одному или больше файлам воспроизведения, которые будут использоваться после файла 600 воспроизведения. В одном варианте осуществления последующие индикаторы 660 списка воспроизведения могут включать в себя URI одного или больше файлов списка воспроизведения, которые будут использоваться после воспроизведения мультимедийных файлов списка 600 воспроизведения.

Тэг 670 сохранения может обозначать, может ли и/или как долго устройство клиент может сохранять мультимедийные файлы после воспроизведения содержания мультимедийного файла. В одном варианте осуществления тэг 670 сохранения представляет собой тэг EXT-X-ALLOW-CACHE. Конечный тэг 680 обозначает, является ли файл 600 списка воспроизведения последним файлом списка воспроизведения для представления. В одном варианте осуществления конечный тэг 680 представляет собой тэг EXT-X-ENDLIST.

Следующий раздел содержит несколько приведенных в качестве примера файлов списка воспроизведения в соответствии с одним вариантом выполнения.

Простой файл списка воспроизведения

#EXTM3U

#EXT-X-TARGETDURATION: 10

#EXTINF:5220,

http://media.example.com/entire.ts

#EXT-X-ENDLIST

Список воспроизведения для подвижного окна, используя HTTP

#EXTM3U

#EXT-X-TARGETDURATION:8

#EXT-X-MEDIA-SEQUENCE:2680

#EXTINF:8,

https://priv.example.com/fileSequence2680.ts

#EXTINF:8,

https://priv.example.com/fileSequence2681.ts

#EXTINF:8,

https://priv.example.com/fileSequence2682.ts

Файл списка воспроизведения с зашифрованными мультимедийными файлами

#EXTM3U

#EXT-X-MEDIA-SEQUENCE:7794

#EXT-X-TARGETDURATION:15

#EXT-X-KEY:METHOD=AES-128,URI="

https://priv.example.com/key.php?r=52"

#EXTINF:15,

http://media. example/com/fileSequence7794.ts

#EXTINF:15,

http://media.example.com/fileSequence7795,ts

#EXTINF:15,

http://media.example.com/fileSequence7796.ts

#EXT-X-KEY:METHOD=AES-128,URI="

https://priv.example.com/key.php?r=53"

#EXTINF:15,

http://media.example.com/fileSequence7797.ts

Вариант файла списка воспроизведения

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000

http://example.com/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

http://example.com/mid.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

http://example.com/hi.m3u8

#EXT-X-STREAM-INF:PROGRAM-

ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"

http://example.com/audio-only.m3u8

На фиг.7 показана блок-схема последовательности операций одного варианта осуществления технологии воспроизведения для составных потоков, как описано выше. В одном варианте осуществления пользователь может управлять воспроизведением принятых мультимедийных файлов для начала, остановки, перемотки и т.д. Устройство клиент принимает файл списка воспроизведения во время операции 700. Мультимедийные файлы, обозначенные файлом списка воспроизведения, получают во время операции 710. Выход генерируют на основе принятых мультимедийных файлов во время операции 720. Прием и генерирование выхода на основе мультимедийных файлов могут быть выполнены, как описано выше.

Если ввод сигнала управления детектируется во время операции 730, устройство клиент может определять, обозначает ли входной сигнал остановку во время операции 740. Если входной сигнал обозначает остановку, процесс заканчивается и воспроизведение останавливается. Если входной сигнал обозначает запрос на перемотку назад или вперед во время операции 750, устройство клиент может генерировать выход на основе ранее воспроизведенных мультимедийных файлов, все еще содержащихся в запоминающем устройстве, во время операции 760. Если эти файлы больше не находятся в кэш, то обработка возвращается к операции 710, чтобы получить мультимедийные файлы, и процесс повторяют. В альтернативном варианте осуществления воспроизведение может поддерживать элемент паузы, который останавливает воспроизведение, не заканчивая воспроизведение как при входной команде остановки.

Способы для перехода от одного потока к другому потоку, кроме того, описываются со ссылкой на фиг.9A-9D. Одно устройство клиент может выполнять каждый из этих способов, или операции каждого из этих способов могут быть распределены среди множества устройств клиентов, как описано выше; например, в случае распределения, одно устройство клиент может получать вариант списка воспроизведения и два мультимедийных списка воспроизведения и предоставить их в другое устройство клиент, которое получает мультимедийные файлы, определенные двумя мультимедийными списками воспроизведения, и переключается между двумя потоками, предоставленными полученными мультимедийными файлами. Также следует понимать, что в альтернативных вариантах осуществления порядок показанных операций может быть модифицирован, или может использоваться больше или меньше операций, чем показано на этих чертежах. Способы могут использовать вариант списка воспроизведения, чтобы выбрать другие потоки. Вариант списка воспроизведения может быть получен и обработан во время операции 901, чтобы определить доступные потоки для программы (например, спортивное событие). Операция 901 может быть выполнена устройством клиентом. Первый поток может быть выбран из варианта списка воспроизведения во время операции 903, и устройство клиент может затем получить мультимедийный список воспроизведения для первого потока. Устройство клиент может обрабатывать мультимедийный список воспроизведения для первого потока во время операции 905 и также измерять или иначе определять скорость передачи битов сетевого соединения для первого потока во время операции 907. Следует понимать, что последовательность операций может быть выполнена в порядке, который является другим, чем показанный на фиг.9А; например, операция 907 может быть выполнена во время операции 903, и т.д. Во время операции 911 устройство клиент выбирает альтернативный мультимедийный список воспроизведения для варианта списка воспроизведения на основе измеренной скорости передачи битов во время операции 907; этот альтернативный мультимедийный список воспроизведения может быть передан на второй скорости передачи битов, которая выше чем существующая скорость передачи битов первого потока. Это обычно означает, что у альтернативного потока будет более высокое разрешение, чем у первого потока. Альтернативный мультимедийный список воспроизведения может быть выбран, если он лучше соответствует, чем текущий список воспроизведения, для первого потока, на основании текущих состояний (например, скорость передачи битов, измеренная во время операции 907). Во время операции 913 альтернативный мультимедийный список воспроизведения для альтернативного потока получают и обрабатывают. Это обычно означает, что устройство клиент может принимать и обрабатывать и первый поток, и альтернативный поток, таким образом, они оба доступны для представления; каждый из которых представляют, в то время как другой готов быть представленным. Устройство клиент затем выбирает точку перехода для переключения между версиями потоков во время операции 915, и прекращает представлять первый поток и начинает представлять альтернативный поток. Примеры того, как выполняют это переключение, представлены со ссылкой на фиг.9B-9D. В некоторых вариантах осуществления устройство клиент может прекращать принимать первый поток перед выполнением переключения.

На фиг.9В показано, что устройство клиент получает, сохраняет и представляет содержание, определенное первым мультимедийным списком воспроизведения (например, первый поток) в операциях 921 и 923, и в то время как содержание, определенное первым списком воспроизведения, представляемое устройством клиентом во время операции 925, оно также получает и сохраняет содержание, определенное вторым мультимедийным списком воспроизведения (например, второй поток). Поиск и сохранение (например, во временном буфере) содержания, определенного вторым мультимедийным списком воспроизведения при представлении содержания, полученного из первого мультимедийного списка воспроизведения, создает наложение 955 во время сохранения программы (показано на фиг.9D), которое позволяет устройству клиенту переключаться между версиями программы без существенного прерывания программы. Таким образом, переключение между версиями программы может быть выполнено во многих случаях так, что пользователь не замечает, что произошло переключение (хотя, в некоторых случаях, пользователь может обратить внимание, что изображение получило более высокое разрешение после переключения), или без существенного прерывания при представлении программы. Во время операции 927 устройство клиент определяет точку перехода для переключения содержания, определенную первым мультимедийным списком воспроизведения, на содержание, определенное вторым мультимедийным списком воспроизведения; пример точки перехода (точки 959 перехода) показан на фиг.9D. Содержание, определенное вторым мультимедийным списком воспроизведения, затем представляют во время операции 931 после переключения.

Способ, показанный в фиг.9С и 9D, представляет один вариант осуществления для определения точки перехода; этот вариант осуществления основан на сопоставлении по структуре аудиовыборок из этих двух потоков 951 и 953, чтобы определить точку перехода. Следует понимать, что в альтернативных вариантах осуществления может использоваться сопоставление по структуре видеовыборок или могут использоваться временные штампы в этих двух потоках и т.д. для определения точки перехода. Способ может включать в себя, во время операции 941, сохранение в буфере содержания (например, поток 951), определенного первым мультимедийным списком воспроизведения; буфер может использоваться для представления содержания, а также для операции сопоставления со структурой. Поток 951 включает в себя как аудиовыборки 951А, так и видеовыборки 951В. Для видеовыборок может использоваться технология сжатия, которая основана на способах внутрикадрового кодирования (i-кадры) или на ключевых кадрах, в которых содержится все необходимое содержание, чтобы отобразить одиночный видеокадр. Содержание в потоке 951 может включать в себя временные штампы, определяющие время (например, время, прошедшее от начала программы), и эти временные штампы могут отмечать начало каждой из выборок (например, начало каждой из аудиовыборок 951А и начало каждой из видеовыборок 951В). В некоторых случаях, сравнение временных штампов между этими двумя потоками не может быть полезным для определения точки перехода, потому что они не могут быть достаточно точными, или из-за различия в границах выборок в этих двух потоках; однако, сравнение диапазонов временных штампов может использоваться, чтобы проверить, что имеется наложение 955 по времени между этими двумя потоками. Во время операции 943 устройство клиент сохраняет в буфере содержание, определенное вторым мультимедийным списком воспроизведения; это содержание предназначено для той же самой программы, что и содержание, полученное из первого мультимедийного списка воспроизведения, и оно также может включать в себя временные штампы. В одном варианте осуществления временные штампы, если они не присутствуют в потоке, могут быть добавлены к списку воспроизведения для потока; например, в одном варианте осуществления тэг ID3, который включает в себя один или больше временных штампов, может быть добавлен в точке входа в список воспроизведения, например, в варианте списка воспроизведения или в мультимедийном списке воспроизведения. Точка входа может, например, представлять собой URI для первой выборки звукового потока. На фиг.9D показан пример содержания 953, полученного из второго мультимедийного списка воспроизведения, и оно включает в себя аудиовыборки 953А и видеовыборки 953В. Во время операции 945 устройство клиент может выполнять сопоставление по структуре для аудиовыборок в этих двух потоках 951 и 953, чтобы выбрать по наложению 955 точку перехода 959, которая может быть, в одном варианте осуществления, следующим отдельным видеокадром (например, i-кадром 961) после согласованных звуковых сегментов (например, сегментов 957). Начиная с i-кадра 961 (и его ассоциированной аудиовыборки), при представлении программы используется второй поток, полученный из второго мультимедийного списка воспроизведения. Предшествующий способ может использоваться в одном варианте осуществления и для изменения с медленной на более быструю скорость передачи битов, и для изменения с высокой на более медленную скорость передачи битов, но в другом варианте осуществления способ может использоваться только для изменения с медленной на более быструю скорость передачи битов, и другой способ (например, в котором не делают попытку найти точки перехода, но делают попытку как можно скорее сохранить и представить содержание из более медленного потока скорости передачи битов) может использоваться для изменения с более быстрого на более медленный поток битов.

На фиг.10 показана блок-схема последовательности операций одного варианта осуществления технологии для предоставления множества избыточных местоположений, которые предоставляют списки воспроизведения или мультимедийное содержание, или их оба в устройства клиенты, используя альтернативные потоки. Если список воспроизведения содержит альтернативные потоки, как описано выше, то альтернативные потоки могут не только использоваться как альтернатива для полосы пропускания или устройства, но также и как запасной вариант в случае отказа. Например, если клиент не может перезагрузить файл списка воспроизведения для потока (например, из-за ошибки 404 или ошибки сетевого соединения), клиент может попытаться переключиться на альтернативный поток. Как показано на фиг.10, чтобы реализовать защиту, как запасной вариант в случае отказа, первое устройство сервера или первая услуга распространения содержания выполнены с возможностью создавать поток или множество потоков с альтернативной полосой пропускания во время операции 1002, как описано со ссылкой на фиг.2С. Во время операции 1004, первое устройство сервера или первая услуга распространения содержания генерирует файл (файлы) списка воспроизведения из потока (потоков), генерируемого во время операции 1002. Второе устройство сервера или вторая услуга распространения содержания могут создать параллельный поток, или набор потоков, во время операции 1006 и также создать список воспроизведения. Этот параллельный поток (потоки), можно рассматривать как резервный поток. Затем, список резервных потоков добавляют к файлу (файлам) списка воспроизведения во время операции 1008 так, чтобы резервный поток (потоки) в каждой полосе пропускания был перечислен после первичного потока. Например, если первичный поток поступает из сервера ALPHA, и резервный поток получают на сервере BETA, то файл списка воспроизведения мог бы быть следующим:

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000

http://ALPHA.mycompany.com/low/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000

http://BETA.mycompany.com/low/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=500000

http://ALPHA.mycompany.com/mid/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=500000

http://BETA.mycompany.com/mid/prog_index.m3u8

Следует отметить, что резервные потоки смешаны с первичными потоками в списке воспроизведения, при этом резервная копия в каждой полосе пропускания представлена после основного содержания для этой полосы пропускания. Клиент не ограничен одиночным установленным резервным потоком. В представленном выше примере ALPHA и BETA могут сопровождаться, например, GAMMA. Точно так же нет необходимости обеспечивать полный параллельный набор потоков. Один поток с узкой полосой пропускания может быть предоставлен, например, в сервере резервного копирования.

Во время операции 1010 клиент пытается загрузить файл (файлы) списка воспроизведения из первого URL, используя первый поток, связанный с первым устройством, сервера или первой услугой распространения содержания. На фиг.11 показана сеть, в которой клиент 1102 общается двунаправлено с одним или больше URL, устройствами сервера или услугами распространения содержания, в соответствии с одним вариантом осуществления. Файл (файлы) списка воспроизведения может быть передан от первого URL, устройства сервера или услуги распространения содержания во время операции 1012 клиенту 1102. Если клиент неспособен загрузить файл (файлы) списка воспроизведения от первого URL, устройства сервера, или услуги распространения содержания (например, из-за ошибки при перезагрузке индексного файла для потока), клиент пытается переключиться на альтернативный поток. В случае отказа (например, отказа загрузки индекса) в одном потоке (например, при операции 1010), клиент выбирает поток замены самой широкой полосы пропускания, который поддерживает сетевое соединение, во время операции 1014. Если существует множество альтернатив в той же самой полосе пропускания, клиент выбирает среди них в порядке, перечисленном в списке воспроизведения. Например, если клиент 1102 не в состоянии успешно выполнить загрузку из URL 1, он может выполнить загрузку из URL 2 или из другого URL, когда файл (файлы) списка воспроизведения передают из альтернативного URL в клиент. Эта особенность предоставляет избыточные потоки, которые позволяют передавать мультимедийные файлы в клиенты в случае серьезных локальных отказов, например, при аварии сервера или отключения узла - дистрибьютора содержания.

Защита с обходом отказа обеспечивает возможности предоставить множество избыточных местоположений, из которых клиенты могут получать списки воспроизведения и мультимедийные файлы. Таким образом, если клиент не может получить поток из первого местоположения, он может попытаться обратиться к потоку из вторичного, третичного и т.д. местоположений.

В одном варианте осуществления, чтобы обозначить дополнительные местоположения, из которых клиент может получить список воспроизведения, тот же тэг варианта списка воспроизведения может быть предоставлен с той же полосой пропускания, но с новым URI избыточного местоположения. Клиент первоначально может попытаться обратиться к первому URL, связанному с желательной полосой пропускания. Если он не может загрузить список воспроизведения из первого URL, он затем может попытаться обратиться к следующему URL, представленному для полосы пропускания, и так далее, пока не будут использованы все возможности.

Пример, представленный ниже, включает в себя 1 избыточное местоположение для полосы пропускания 2560000 и 2 избыточных местоположения для полосы пропускания 7680000.

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000

http://example.com/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

http://example. com/mid.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

http://example1.com/mid-redundant2.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

http://example.com/hi.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

http://example2.com/hi-redudant2.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

http://example3.com/hi-redudant3.m3u8

#EXT-X-STREAM-INF:PROGRAM-

ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"

http://example.com/audio-only.m3u8

Следует отметить, что в этом примере оба названия файла (например, mid-redundant2.m3u8) и фактический URL (например, <http://example2.com><<http://example2.com/>>, <http://example3.com><<http://example3.com/>>) изменяются. Однако в одном варианте осуществления, в избыточном местоположении может быть изменено только название файла или только вебсайта.

В одном варианте осуществления список воспроизведения может быть сжат устройством сервера и отправлен в устройство клиент в сжатой форме. Сжатый список воспроизведения обычно требует меньшего количества битов, чтобы представить список воспроизведения, чем несжатый список воспроизведения, и, следовательно, для сжатого списка воспроизведения используется меньшая доступная полоса пропускания сети, например, беспроводной сотовой телефонной сети, при передаче или приеме. В одном варианте осуществления список воспроизведения может быть сжат веб-сервером в соответствии со встроенной технологией сжатия, или средством, которое используется веб-сервером, которое соответствует или совместимо с протоколом передачи, например, стандартным протоколом HTTP 1.1; пример такой технологии сжатия или средства представляет собой средство сжатия deflate или gzip HTTP 1.1. Другие средства сжатия, основанные на стандартах, которые являются частью протокола передачи на основе стандартов, могут использоваться в других вариантах осуществления. Использование сжатых списков воспроизведения может представлять собой, в одном варианте осуществления, необязательную особенность устройств сервера и устройств клиентов. В одном варианте осуществления список воспроизведения может представлять собой текстовое содержание (например, текстовый файл), и может быть эффективно сжат с помощью средства сжатия deflate или gzip веб-сервером на основе стандартов и затем автоматически распакован устройством клиентом. Описание версии средства сжатия gzip может быть получено по адресу www.ietf.org/rfc/rfc1952.txt<http://www.ietf.org/rfc/rfc1952.txt>; описание версии средства сжатия deflate может быть получено по www.ietf.org/rfc/rfcl951.txt<http://www.ietf.org/rfc/rfc1951.txt>. Много вебсерверов и много веб-браузеров в устройстве клиенте могут автоматически поддерживать средства сжатия deflate или gzip.

В одном варианте осуществления устройство клиент может периодически запрашивать обновленный список воспроизведения; например, устройство клиент может запрашивать из сервера обновленный список воспроизведения каждые несколько секунд (например, каждые 10, 20 или 30 секунд или через некоторый другой промежуток времени). Растущий список воспроизведения, например, список воспроизведения для прямой передачи продолжающейся игры в бейсбол, который обеспечивает для клиента возможность начать просмотр с начала прямой передачи игры в любое время во время прямой передачи игры, может стать настолько большим, что использование сжатия может ограничить потребление полосы пропускания сети, поскольку растущий список воспроизведения многократно передают через сеть.

В одном варианте осуществления устройство клиент может, в случае необходимости, определять, когда оно запрашивает список воспроизведения (например, обновленный список воспроизведения), какие технологии сжатия оно может поддерживать (например, deflate или gzip); поддержка этих технологий означает, что устройство клиент может распаковать или декодировать сжатое или кодированное содержание. Запрос устройства клиента списка воспроизведения, с необязательным описанием технологии сжатия, принимается веб-сервером, который, в одном варианте осуществления, не обязательно должен поддерживать технологию сжатия для списка воспроизведения, но может отправлять несжатый список воспроизведения. Веб-сервер может ответить на запрос устройства клиента, посылая в устройство клиент несжатый список воспроизведения или список воспроизведения, сжатый при использовании одной из технологий сжатия, заданных в запросе устройства клиента списка воспроизведения. Устройство клиент принимает список воспроизведения и использует его, как описано выше; если список воспроизведения сжат, его декодируют, используя декодер в устройстве клиенте, например, декодер веб-браузера в устройстве клиенте.

На фиг.8 показана блок-схема одного варианта осуществления электронной системы. Электронная система, представленная на фиг.8, предназначена для представления диапазона электронных систем (проводных или беспроводных), включающих в себя, например, настольные компьютерные системы, системы портативного компьютера, мобильные телефоны, персональные информационные устройства, включая в себя карманные компьютеры с поддержкой сотовой связи, телевизионные приставки, системы развлечений или другие потребительские электронные устройства. Альтернативные электронные системы могут включать в себя больше, меньше и/или другие компоненты. Электронная система на фиг.8 может использоваться для предоставления устройства клиента и/или устройства сервера.

Электронная система 800 включает в себя шину 805 или другое устройство передачи данных для выполнения обмена данными и процессор 810, соединенный с шиной 805, который может обрабатывать информацию. В то время как электронная система 800 представлена с одним процессором, электронная система 800 может включать в себя множество процессоров и/или сопроцессоров. Электронная система 800 дополнительно может включать в себя оперативное запоминающее устройство (RAM) или другое динамическое устройство 820 накопитель (называемое основной памятью), соединенное с шиной 805 и может сохранять информацию и инструкции, которые могут быть выполнены процессором 810. Основная память 820 может также использоваться, чтобы содержать временные переменные или другую промежуточную информацию во время выполнения инструкций процессором 810.

Электронная система 800 может также включать в себя постоянное запоминающее устройство (ROM) и/или другое статическое устройство 830 накопитель, соединенное с шиной 805, которое может хранить статическую информацию и инструкции для процессора 810. Запоминающее устройство 840 может быть соединено с шиной 805, чтобы сохранять информацию и инструкции. Запоминающее устройство 840, например, флэш-память или магнитный или оптический диск и соответствующий привод может быть соединено с электронной системой 800.

Электронная система 800 может также быть соединена через шину 805 с устройством 850 дисплея, например, на электронно-лучевой трубке (CRT) или жидкокристаллическим дисплеем (LCD), для отображения информации для пользователя. Электронная система 800 может также включать в себя алфавитно-цифровое устройство 860 ввода, включающее в себя алфавитно-цифровые и другие клавиши, которое может быть соединено с шиной 805 для выполнения обмена данными и выбора команды для процессора 810. Другой тип устройства ввода данных пользователя представляет собой модуль 870 управления курсором, например, сенсорная панель, мышь, шаровой указатель, или управляющие клавиши курсора для выполнения обмена данными о направлении и выбора команды для процессора 810 и управления перемещением на дисплее 850.

Электронная система 800, кроме того, может включать в себя один или больше сетевых интерфейсов 880 для предоставления доступа к сети, например, локальной вычислительной сети. Сетевой интерфейс (интерфейсы) 880 может включать в себя, например, беспроводный сетевой интерфейс, имеющий антенну 885, которая может представлять собой одну или больше антенну (антенн). Электронная система 800 может включать в себя множество беспроводных сетевых интерфейсов, таких как комбинация WiFi, Bluetooth и интерфейсов сотовой телефонной связи. Сетевой интерфейс (интерфейсы) 880 может также включать в себя, например, проводной сетевой интерфейс для обмена данными с удаленными устройствами через сетевой кабель 887, который может представлять собой, например, кабель Ethernet, коаксиальный кабель, волоконно-оптический кабель, последовательный кабель или параллельный кабель.

В одном варианте осуществления сетевой интерфейс (интерфейсы) 880 может предоставлять доступ к локальной вычислительной сети, например, при соответствии стандартам IEEE 802.11b и/или IEEE 802.11g, и/или беспроводный сетевой интерфейс может предоставлять доступ к персональной сети, например, при соответствии стандартам Bluetooth. Другие беспроводные сетевые интерфейсы и/или протоколы также могут поддерживаться.

В дополнение к, или вместо, обмену данными, используя беспроводные стандарты LAN, сетевой интерфейс (интерфейсы) 880 может обеспечивать беспроводную передачу данных, используя, например, протоколы множественного доступа с временным разделением (TDMA), протоколы Глобальной системы мобильной связи (GSM), протоколы множественного доступа с кодовым разделением (CDMA) и/или любой другой тип протокола беспроводной передачи данных.

Ссылка в описании на "один вариант осуществления" или "вариант осуществления" означает, что конкретная особенность, структура или характеристика, описанная в связи с вариантом осуществления, включена, по меньшей мере, в один вариант осуществления изобретения. Появление фразы "в одном варианте осуществления" в различных местах в описании не обязательно относится к тому же самому варианту осуществления.

В представленном выше описании изобретение было описано со ссылкой на определенные варианты его осуществления, однако, очевидно, что различные модификации и изменения могут быть выполнены в нем без выхода за пределы широко понимаемой сущности и объема изобретения. Описание и чертежи, соответственно, следует рассматривать в иллюстративном, а не ограничительном смысле.

ПРИЛОЖЕНИЕ

Следующее Приложение представляет собой проект описания протокола в соответствии с конкретным вариантом осуществления изобретения. Следует понимать, что использование некоторых ключевых слов (например, ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ и т.д.) в этом Приложении относится к этому конкретному варианту осуществления и не относится к другим вариантам осуществления, описанным в данном раскрытии.

Оглавление

1. Введение

2. Краткое изложение

3. Файл списка воспроизведения

3.1. Новые тэги

3.1.1. EXT-X-TARGETDURATION

3.1.2. EXT-X-MEDIA-SEQUENCE

3.1.3. EXT-X-KEY

3.1.4. EXT-X-PROGRAM-DATE-TIME

3.1.5. EXT-X-ALLOW-CACHE

3.1.6. EXT-X-ENDLIST

3.1.7. EXT-X-STREAM-INF

3.1.8. EXT-X-DISCONTINUITY

4. Мультимедийные файлы

5. Ключевые файлы

5.1. IV для AES-128

6. Действия клиента/сервера

6.1. Процесс сервера

6.1.1. Списки воспроизведения для подвижного окна

6.1.2. Шифрование мультимедийных файлов

6.1.3. Предоставление вариантов потоков

6.2. Процесс клиента

6.2.1. Загрузка файла списка воспроизведения

6.2.2. Воспроизведение файла списка воспроизведения

6.2.3. Перезагрузка файла списка воспроизведения

6.2.4. Определение следующего файла для загрузки

6.2.5. Воспроизведение зашифрованных мультимедийных файлов

7. Примеры

7.1. Простой файл списка воспроизведения

7.2. Список воспроизведения для подвижного окна, используя HTTP

7.3. Файл списка воспроизведения с зашифрованными мультимедийными файлами

7.4. Вариант файла списка воспроизведения

8. Вопросы безопасности

9. Ссылки

Нормативные ссылки

Информативные ссылки

1. Введение

В данном документе описан протокол для передачи не связанных потоков мультимедийных данных по HTTP [RFC2616]. Протокол поддерживает

шифрование мультимедийных данных, и предоставление альтернативных версий (например, скоростей передачи битов) потока. Мультимедийные данные могут быть переданы вскоре после их формирования, что позволяют принимать их в режиме, близком к реальному времени.

Внешние ссылки, которые описывают родственные стандарты, например, HTTP, перечислены в Разделе 9.

2. Краткое изложение

Мультимедийное представление определено по URI [RFC3986] для файла списка воспроизведения, который представляет собой упорядоченный список дополнительных URI. Каждый URI в файле списка воспроизведения относится к мультимедийному файлу, который является сегментом одиночного непрерывного потока.

Чтобы воспроизвести поток, клиент сначала получает файл списка воспроизведения и затем получает и воспроизводит каждый мультимедийный файл в списке воспроизведения. Он перезагружает файл списка воспроизведения, как описано в этом документе, чтобы обнаружить дополнительные сегменты.

Ключевые слова "ДОЛЖЕН", "НЕ ДОЛЖЕН", "ТРЕБУЕМЫЙ", "БУДЕТ", "НЕ БУДЕТ", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕМЫЙ", "МОЖЕТ" и "НЕОБЯЗАТЕЛЬНЫЙ" в этом документе должны интерпретироваться, как описано в RFC 2119 [RFC2119].

3. Файл списка воспроизведения

Списки воспроизведения ДОЛЖНЫ представлять собой файлы списка воспроизведения Extended M3U [M3U]. Этот документ расширяет формат файла M3U путем определения дополнительных тэгов.

Список воспроизведения M3U представляет собой текстовый файл, который состоит из отдельных строк.

Строки заканчиваются либо одиночным знаком LF или знаком CR, после которого следует знак LF. Каждая строка представляет собой URI, пустую строку, или начинается со знака '#' комментария. URI идентифицируют мультимедийные файлы, предназначенные для воспроизведения. Пустые строки игнорируются.

Строки, которые начинаются со знака '#' комментария, представляют собой либо комментарии или тэги. Тэги начинаются с #ЕХТ. Все другие строки, которые начинаются с '#', представляют собой комментарии и ДОЛЖНЫ быть проигнорированы.

Файлы списка воспроизведения M3U, названия которых заканчиваются .m3u8 и/или имеют содержание HTTP типа "application/vnd.apple.mpegurl", кодированы в UTF-8 [RFC3629]. Файлы, названия которых заканчиваются .m3u и/или имеют содержание HTTP типа [RFC2616] "audio/mpegurl", кодированы в US-ASCII [US_ASCII].

Варианты выполнения ДОЛЖНЫ формировать файлы списка воспроизведения, названия которых заканчиваются на .m3u8 или, если их передают по HTTP, имеют содержание типа "application/vnd.apple.mpegurl". Для совместимости, варианты выполнения МОГУТ формировать файлы списка воспроизведения, названия которых заканчиваются на .m3u и/или имеют содержание типа HTTP "audio/mpegurl".

Формат файла Extended M3U определяет два тэга: EXTM3U и EXTINF.

Файл Extended M3U отличается от основного файла M3U его первой строкой, которая ДОЛЖНА быть #EXTM3U.

EXTINF представляет собой маркер записи, который описывает мультимедийный файл, идентифицированный URI, который следует за ним. Каждому мультимедийному файлу URI ДОЛЖЕН предшествовать тэг EXTINF. Его формат представляет собой:

#EXTINF:<duration>,<title>

"duration" представляет целое число, которое мгновенно определяет длительность мультимедийного файла. Длительность СЛЕДУЕТ округлять до ближайшего целого числа.

Остальная часть строки после запятой представляет собой название мультимедийного файла.

3.1. Новые тэги

Этот документ определяет семь новых тэгов: EXT-X-TARGETDURATION, ЕХТ-Х-MEDIA-SEQUENCE, EXT-X-KEY, EXT-X-PROGRAM-DATE-TIME, EXT-X-ALLOW-САСНЕ, EXT-X-STREAM-INF, и ЕХТ-Х-ENDLIST.

3.1.1. EXT-X-TARGETDURATION

Тэг EXT-X-TARGETDURATION обозначает приблизительную длительность следующего мультимедийного файла, который будет добавлен к основному представлению. Он ДОЛЖЕН появиться в файле списка воспроизведения. Его формат представляет собой:

#EXT-X-TARGETDURATION:<seconds>

Фактическая длительность мультимедийного файла МОЖЕТ немного отличаться от целевой длительности.

3.1.2. EXT-X-MEDIA-SEQUENCE

У каждого URI мультимедийного файла в списке воспроизведения есть уникальный порядковый номер. Порядковый номер URI равен порядковому номеру предшествующего ему URI, плюс единица. Тэг EXT-X-MEDIA-SEQUENCE обозначает порядковый номер первого URI, который появляется в файле списка воспроизведения.

Его формат представляет собой:

#EXT-X-MEDIA-SEQUENCE:<number>

Если файл списка воспроизведения не содержит тэг EXT-X-MEDIA-SEQUENCE, тогда порядковый номер первого URI в списке воспроизведения должен рассматриваться как 1.

См. в Разделе 6.2.1 и Разделе 6.2.4 информацию об обработке тэга EXT-X-MEDIA-SEQUENCE.

3.1.3. EXT-X-KEY

Мультимедийные файлы МОГУТ быть зашифрованы. Тэг EXT-X-KEY предоставляет информацию, необходимую для дешифрования мультимедийных файлов, которые следуют за ним. Его формат представляет собой:

#EXT-X-KEY:METHOD=<method>[URI="<URI>"]

Параметр METHOD определяет способ шифрования. Параметр URI, если присутствует, определяет, как получить ключ.

Версия 1.0 протокола определяет два способа шифрования: NONE и AES-128. Способ шифрования NONE означает, что мультимедийные файлы не зашифрованы.

Способ шифрования AES-128 означает, что мультимедийные файлы шифруют, используя усовершенствованный стандарт шифрования [AES_128] с 128-битовым ключом и заполнением PKCS7 [RFC3852].

Новый EXT-X-KEY заменяет любой предшествующий EXT-X-KEY.

Если тэг EXT-X-KEY отсутствует, тогда мультимедийные файлы не шифруют.

См. формат файла ключей в Разделе 5 и Разделе 5.1 и дополнительную информацию о шифровании мультимедийного файла в Разделе 6.1.2 и Разделе 6.2.5.

3.1.4. EXT-X-PROGRAM-DATE-TIME

EXT-X-PROGRAM-DATE-TIME ассоциирует начало следующего мультимедийного файла с абсолютной датой и/или временем. Представление даты/времени соответствует ISO/IEC 8601:2004 [ISO_8601] и ДОЛЖНО обозначить часовой пояс. Например:

#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>

3.1.5. EXT-X-ALLOW-CACHE

Тэг EXT-X-ALLOW-CACHE обозначает, может ли клиент кэшировать загруженные мультимедийные файлы для более позднего повторного воспроизведения. Его формат представляет собой:

#EXT-X-ALLOW-CACHE:<YES|NO>

3.1.6. EXT-X-ENDLIST

Тэг EXT-X-ENDLIST обозначает, что мультимедийные файлы больше не будут добавлены к файлу списка воспроизведения. Его формат представляет собой:

#EXT-X-ENDLIST

3.1.7. EXT-X-STREAM-INF

Тэг EXT-X-STREAM-INF обозначает, что следующий URI в файле списка воспроизведения идентифицирует другой файл списка воспроизведения. Его формат представляет собой:

#EXT-X-STREAM-INF:[attribute=value][attribute=value]*<URI>

Следующие атрибуты определены для тэга EXT-X-STREAM-INF:

BANDWIDTH=<n

где n - приблизительная верхняя граница скорости передачи битов потока, выраженной как множество битов в секунду.

PROGRAM-ID=<i>

где i представляет собой число, которое однозначно определяет конкретное представление в файле списка воспроизведения.

Файл списка воспроизведения МОЖЕТ содержать множество URI EXT-X-STREAM-INF с одинаковыми PROGRAM-ID для описания вариантов потоков того же самого представления.

CODECS=" [format][,format]*"

где каждый формат определяет тип мультимедийной выборки, который присутствует в мультимедийном файле, в файле списка воспроизведения.

Действительные идентификаторы формата представляют собой те в пространстве названия формата файла ISO, которые определены RFC 4281 [RFC4281].

3.1.8. EXT-X-DISCONTINUITY

Тэг EXT-X-DISCONTINUITY обозначает, что мультимедийный файл после него имеет другие характеристики, чем у файла, который предшествовал ему. Набор характеристик, которые МОГУТ измениться представляет собой:

- формат файла

- количество и тип дорожек

- кодирование параметров

- кодирование последовательности

- последовательность временного штампа

Его формат представляет собой:

#EXT-X-DISCONTINUITY

4. Мультимедийные файлы

Каждый URI мультимедийного файла в файле списка воспроизведения ДОЛЖЕН идентифицировать мультимедийный файл, который представляет собой сегмент общего представления. Каждый мультимедийный файл ДОЛЖЕН быть отформатирован как транспортный поток MPEG-2, поток программы MPEG-2 или элементарный звуковой поток MPEG-2 [ISO_13818]. Все мультимедийные файлы в представлении ДОЛЖНЫ иметь одинаковый формат.

Файлы транспортного потока ДОЛЖНЫ содержать одиночную программу MPEG-2. В начале каждого файла ДОЛЖНА присутствовать таблица ассоциации программы и таблица карты программы. Файл, который содержит видеоданные, ДОЛЖЕН иметь, по меньшей мере, один ключевой кадр и достаточно информации, чтобы полностью инициализировать видеодекодер.

Клиенты ДОЛЖНЫ быть подготовлены к обработке множества дорожек конкретного типа (например, звука или видеоданных) при выборе обоснованного поднабора. Клиенты ДОЛЖНЫ игнорировать частные потоки в транспортных потоках, которые они не распознают.

Параметры кодирования для выборок в пределах потока в мультимедийном файле и между соответствующими потоками через множество мультимедийных файлов ДОЛЖНЫ оставаться согласованным. Однако клиенты ДОЛЖНЫ иметь возможность работы с изменениями кодирования, с которыми они встречаются, например, при масштабировании видеосодержания для размещения при изменении разрешения.

5. Ключевые файлы

Тэг EXT-X-KEY с параметром URI идентифицирует ключевой файл. Ключевой файл содержит ключ шифра, который ДОЛЖЕН использоваться для дешифрования последующих мультимедийных файлов в списке воспроизведения.

В способе шифрования AES-128 используются ключи с 16 октетами. Формат ключевого файла представляет собой просто упакованный массив этих 16 октетов в двоичном формате.

5.1. IV для AES-128

128-битовое AES-128 требует подачи одинакового вектора (IV) инициализации с 16 октетами при шифровании и при дешифровании. Изменение этого IV увеличивает устойчивость шифра.

При использовании METHOD AES-128 шифрования, варианты выполнения ДОЛЖНЫ использовать порядковый номер мультимедийного файла как IV при шифровании или дешифровании мультимедийных файлов. Двоичное представление с обратным порядком байтов порядкового номера ДОЛЖНО быть помещено в буфер с 16 октетами и с заполнением (слева) нулями.

6. Действия клиента/сервера

В этом разделе описано, как сервер генерирует список воспроизведения и мультимедийные файлы, и как клиент должен загружать и воспроизводить их.

6.1. Процесс сервера

Формирование потока MPEG-2 находится за рамками этого документа, в котором просто предполагается источник непрерывного потока, содержащий основное представление.

Сервер ДОЛЖЕН разделять поток на отдельные мультимедийные файлы с приблизительно равной длительностью. Сервер ДОЛЖЕН пытаться разделять поток в точках, которые поддерживают эффективное декодирование отдельных мультимедийных файлов, например, в границах пакета и ключевого кадра.

Сервер ДОЛЖЕН создавать URI для каждого мультимедийного файла, который позволяет клиентам получить файл.

Сервер ДОЛЖЕН создавать файл списка воспроизведения. Файл списка воспроизведения ДОЛЖЕН соответствовать формату, описанному в Разделе 3. URI для каждого мультимедийного файла, который сервер желает сделать доступным, ДОЛЖЕН присутствовать в списке воспроизведения в порядке, в котором он предназначен для воспроизведения. Весь мультимедийный файл ДОЛЖЕН быть доступным для клиентов, если его URI присутствует в файле списка воспроизведения.

Файл списка воспроизведения ДОЛЖЕН содержать тэг EXT-X-TARGETDURATION. Он ДОЛЖЕН обозначать приблизительную длительность следующего мультимедийного файла, который будет добавлен к основному представлению. Это значение ДОЛЖНО оставаться постоянным для всего представления. Типичная целевая длительность составляет 10 секунд.

Сервер ДОЛЖЕН создавать URI для файла списка воспроизведения, который позволяет его клиентам получить файл.

Изменения файла списка воспроизведения ДОЛЖНЫ быть произведены на самом мелком уровне с точки зрения клиентов.

Каждый URI мультимедийного файла в списке воспроизведения ДОЛЖЕН содержать префикс с тэгом EXTINF, обозначающим приблизительную длительность мультимедийного файла.

Сервер МОЖЕТ ассоциировать абсолютную дату и время с мультимедийным файлом, приписывая его URI к тэгу EXT-X-PROGRAM-DATE-TIME. Значение даты и времени при этом являются произвольными.

Если список воспроизведения содержит конечный мультимедийный файл представления, тогда файл списка воспроизведения ДОЛЖЕН содержать тэг EXT-X-ENDLIST.

Если сервер желает удалить все представление, он ДОЛЖЕН сделать файл списка воспроизведения недоступным клиентам. Он ДОЛЖЕН гарантировать, что все мультимедийные файлы в файле списка воспроизведения остаются доступными для клиентов, по меньшей мере, в течение длительности файла списка воспроизведения во время удаления.

6.1.1. Списки воспроизведения для подвижного окна

Сервер МОЖЕТ ограничивать доступность мультимедийных файлов теми, которые были последними добавлены к списку воспроизведения. С этой целью файл списка воспроизведения ДОЛЖЕН ВСЕГДА содержать точно один тэг EXT-X-MEDIA-SEQUENCE. Его значение ДОЛЖНО последовательно увеличиваться на 1 для каждого URI мультимедийного файла, который был удален из файла списка воспроизведения.

URI мультимедийного файла ДОЛЖНЫ быть удалены из файла списка воспроизведения в порядке, в котором они были добавлены.

Когда сервер удаляет URI мультимедийного файла из списка воспроизведения, мультимедийный файл ДОЛЖЕН оставаться доступным для клиентов в течение времени, равного длительности мультимедийного файла плюс длительность самого длинного файла списка воспроизведения, в котором появился мультимедийный файл. Длительность файла списка воспроизведения равна сумме длительностей мультимедийных файлов, входящих в него.

Если сервер планирует удалить мультимедийный файл, он ДОЛЖЕН гарантировать что заголовок HTTP Expires отражает запланированное время работы, когда его доставляют клиентам.

Сервер ДОЛЖЕН поддерживать, по меньшей мере, три основных мультимедийных файла представления в списке воспроизведения, если только отсутствует тэг EXT-X-ENDLIST.

6.1.2. Шифрование мультимедийных файлов

Если мультимедийные файлы должны быть зашифрованы, сервер ДОЛЖЕН определить URI, который позволяет авторизованным клиентам получать ключевой файл, содержащий ключ дешифрования. Ключевой файл ДОЛЖЕН соответствовать формату, описанному в Разделе 5.

Сервер МОЖЕТ устанавливать заголовок Expires в ответе с ключом, который обозначает, что ключ может быть помещен в кэш.

Если СПОСОБ шифрования представляет собой AES-128, шифрование AES-128 СВС должно БЫТЬ применено к отдельным мультимедийным файлам. Весь файл ДОЛЖЕН быть зашифрован. Цепочка разделов зашифрованного текста НЕ ДОЛЖНА применяться в мультимедийных файлах. Порядковый номер мультимедийного файла ДОЛЖЕН использоваться как IV, как описано в Разделе 5.1.

Сервер ДОЛЖЕН шифровать каждый мультимедийный файл в списке воспроизведения, используя способ, определенный тэгом EXT-X-KEY, который непосредственно предшествует его URI в файле списка воспроизведения. Мультимедийные файлы, которым предшествует тэг EXT-X-KEY, СПОСОБ которых представляет собой NONE, или которым не предшествует никакой тэг EXT-X-KEY, НЕ ДОЛЖНЫ быть зашифрованы.

URI каждого тэга EXT-X-KEY должен быть отличным от URI каждого другого тэга EXT-X-KEY, который появляется или появился в файле списка воспроизведения, если только его СПОСОБ не представляет собой NONE. Тэг EXT-X-KEY со СПОСОБОМ NONE НЕ ДОЛЖЕН содержать параметр URI.

Сервер НЕ ДОЛЖЕН удалять тэг EXT-X-KEY из файла списка воспроизведения, если файл списка воспроизведения содержит URI мультимедийного файла, зашифрованного с этим ключом.

6.1.3. Предоставление вариантов потоков

Сервер МОЖЕТ предложить множество файлов списков воспроизведения, чтобы обеспечить другое кодирование того же самого представления. Если это так, он ДОЛЖЕН обеспечить вариант файла списка воспроизведения, в котором перечислен каждый вариант потока, что позволяет клиентам динамически переключаться между кодированиями.

Различные списки воспроизведения ДОЛЖНЫ содержать тэг EXT-X-STREAM-INF для каждого варианта потока. Каждый тэг EXT-X-STREAM-INF для того же самого представления ДОЛЖЕН иметь одинаковый атрибут со значением PROGRAM-ID. Значение PROGRAM-ID для каждого представления ДОЛЖНО быть уникальным в пределах варианта списка воспроизведения.

Если тэг EXT-X-STREAM-INF содержит атрибут CODECS, значение атрибута ДОЛЖНО включать в себя каждый формат, определенный [RFC4281], который присутствует в любом мультимедийном файле, который появляется или появится в файле списка воспроизведения.

Сервер ДОЛЖЕН соответствовать следующим ограничениям при производстве вариантов потоков:

Каждый вариант потока ДОЛЖЕН состоять из того же самого содержания, включая в себя содержание, которое не является частью основного представления.

Сервер ДОЛЖЕН сделать доступным одинаковый период содержания для всех вариантов потоков, в пределах точности самой малой целевой длительности потоков.

Соответствие содержания в различных потоках ДОЛЖНО включать в себя соответствие временных штампов.

Это позволяет клиентам синхронизировать потоки.

Элементарные файлы звукового потока ДОЛЖНЫ содержать сигнал с временным штампом первой выборки в файле путем предварительной задержки тэга ID3 PRIV tag [ID3] с идентификатором владельца "com.apple.streaming.transportStreamTimestamp". Двоичные данные ДОЛЖНЫ представлять собой 33-битовый временной штамп MPEG-2 Элементарного потока программы, выраженный как число с восьмью октетами, с обратным порядком байтов.

Кроме того, все варианты потоков ДОЛЖНЫ содержать кодированный одинаковый звуковой поток битов. Это позволяет клиентам переключаться между потоками без слышимых помех.

6.2. Процесс клиента

То, как клиент получает URI файла списка воспроизведения, находится вне объема данного документа; предполагается, что это выполнено.

Клиент ДОЛЖЕН получить файл списка воспроизведения из UPI. Если файл списка воспроизведения, полученный таким образом, представляет собой вариант списка воспроизведения, клиент ДОЛЖЕН получить файл списка воспроизведения из варианта списка воспроизведения.

Этот документ не устанавливает обработку вариантов потоков клиентами.

6.2.1. Загрузка файла списка воспроизведения

Каждый раз файл списка воспроизведения загружают или перезагружают из URI списка воспроизведения.

Клиент ДОЛЖЕН проверить, что файл списка воспроизведения начинается с #EXTM3U и отказывается от продолжения, если это не так. Клиент ДОЛЖЕН игнорировать любые тэги, которые он не распознает.

Клиент ДОЛЖЕН определить следующий мультимедийный файл для загрузки, как описано в Разделе 6.2.4.

Если список воспроизведения содержит тэг EXT-X-MEDIA-SEQUENCE, клиент ДОЛЖЕН предположить, что каждый мультимедийный файл в нем станет недоступным в момент времени, когда файл списка воспроизведения был загружен плюс длительность файла списка воспроизведения. Длительность файла списка воспроизведения равна сумме длительностей мультимедийных файлов, содержащихся в нем.

6.2.2. Воспроизведение файла списка воспроизведения

Клиент ДОЛЖЕН выбрать, который мультимедийный файл следует воспроизвести первым из списка воспроизведения, когда начинается воспроизведение. Если файл списка воспроизведения содержит тэг EXT-X-ENDLIST, любой файл в списке воспроизведения МОЖЕТ быть воспроизведен первым. Если тэг EXT-X-ENDLIST не присутствует, никакой файл, за исключением последнего и предпоследнего файлов, в списке воспроизведения не МОЖЕТ быть воспроизведен первым.

Как только будет выбран первый мультимедийный файл, предназначенный для воспроизведения, следующие мультимедийные файлы в списке воспроизведения ДОЛЖНЫ быть загружены в порядке, в каком они появляются, и воспроизведены в порядке, в котором их загружают.

Клиент ДОЛЖЕН попытаться загрузить мультимедийные файлы до того момента, когда они потребуются для непрерывного воспроизведения, чтобы компенсировать временные изменения времени задержки и пропускной способности.

Если файл списка воспроизведения содержит тэг EXT-X-ALLOW-CACHE, и его значение равно НЕТ, клиент НЕ ДОЛЖЕН помещать в кэш загружаемые мультимедийные файлы после их воспроизведения. Иначе клиент МОЖЕТ хранить в кэш загруженные мультимедийные файлы неопределенно долго для последующего повторного воспроизведения.

Клиент МОЖЕТ использовать значение тэга EXT-X-PROGRAM-DATE-TIME для отображения для пользователя времени составления программы. Если это значение включает в себя информацию о часовом поясе, клиент должен учесть ее, но если это не так, клиент НЕ ДОЛЖЕН выводить оригинальный часовой пояс.

Клиент НЕ ДОЛЖЕН зависеть от правильности или согласованности значения тэга EXT-X-PROGRAM-DATE-TIME.

6.2.3. Перезагрузка файла списка воспроизведения

Клиент ДОЛЖЕН периодически перезагружать файл списка воспроизведения, если он не содержит тэг EXT-X-ENDLIST.

Однако клиент НЕ ДОЛЖЕН пытаться перезагружать файл списка воспроизведения более часто, чем задано в этом разделе.

Когда клиент загружает файл списка воспроизведения в первый раз или перезагружает файл списка воспроизведения и определяет, что он изменился после того, как он в последний раз был загружен, клиент ДОЛЖЕН ожидать некоторый период времени до попытки снова перезагрузить файл списка воспроизведения. Этот период называется исходной минимальной задержкой перезагрузки. Он измеряется от момента времени, когда клиент начал загружать файл списка воспроизведения.

Исходная минимальная задержка перезагрузки представляет собой длительность последнего мультимедийного файл в списке воспроизведения или 3 целевых длительности, в зависимости от того, какая из них меньше. Длительность мультимедийного файла задана тэгом EXTINF.

Если клиент перезагружает файл списка воспроизведения и определяет, что он не изменился, тогда он ДОЛЖЕН ожидать в течение некоторого периода времени перед повторением. Минимальная задержка составляет три целевых длительности или кратное исходных минимальных задержек перезагрузки, в зависимости от того, которая из них меньше. Это кратное составляет 0,5 для первой попытки, 1,5 для второй и 3,0 после этого.

6.2.4. Определение следующего файла для загрузки

Клиент ДОЛЖЕН исследовать файл списка воспроизведения каждый раз, когда он загружается или перезагружается, чтобы определить следующий мультимедийный файл, предназначенный для загрузки.

Первый файл, предназначенный для загрузки, ДОЛЖЕН представлять собой файл, который клиент выбрал для первого воспроизведения, как описано в Разделе 6.2.2.

Если первый предназначенный для воспроизведения файл был загружен, и файл списка воспроизведения не содержит тэг EXT-X-MEDIA-SEQUENCE, тогда клиент ДОЛЖЕН проверить, что текущий файл списка воспроизведения содержит URI последнего загруженного мультимедийного файла со смещением от того места, где он был первоначально найден, останавливая воспроизведение, если это не так. Следующий мультимедийный файл, предназначенный для загрузки, ДОЛЖЕН представлять собой первый URI мультимедийного файла, следующего после последнего загруженного URI в списке воспроизведения.

Если первый предназначенный для воспроизведения файл был загружен и файл списка воспроизведения содержит тэг EXT-X-MEDIA-SEQUENCE, тогда следующий мультимедийный файл, предназначенный для загрузки, должен представлять собой файл с самым малым порядковым номером, который больше, чем порядковый номер последнего загруженного мультимедийного файла.

6.2.5. Воспроизведение зашифрованных мультимедийных файлов

Если файл списка воспроизведения содержит тэг EXT-X-KEY, который определяет URI ключевого файла, клиент ДОЛЖЕН получить этот ключевой файл и использовать ключ внутри себя, чтобы дешифровать все мультимедийные файлы после тэга ЕХТ-Х-KEY до другого появившегося тэга EXT-X-KEY.

Если СПОСОБ шифрования будет представлять собой AES-128, дешифрование AES-128 СВС должно БЫТЬ применено к отдельным мультимедийным файлам. Весь файл ДОЛЖЕН быть дешифрован. Цепочка разделов зашифрованного текста НЕ ДОЛЖНА примяться в мультимедийных файлах. Порядковый номер мультимедийного файла ДОЛЖЕН использоваться как IV, как описано в Разделе 5.1.

Если СПОСОБ шифрования представляет собой NONE, клиент ДОЛЖЕН обработать все мультимедийные файлы, следующие после EXT-X-KEY, как свободно читаемый (не зашифрованный) текст, пока не появится другой тэг EXT-X-KEY.

7. Примеры

Этот раздел содержит несколько приведенных в качестве примера файлов списка воспроизведения.

7.1. Простой файл списка воспроизведения

#EXTM3U

#ЕХТ-Х-ТARGETDURATION:10

#EXTINF:5220,

http://media.example.com/entire.ts

#EXT-X-ENDLIST

7.2. Список воспроизведения для подвижного окна, используя HTTP

#EXTM3U

#EXT-X-TARGETDURATION:8

#EXT-X-MEDIA-SEQUENCE:2680

#EXTINF:8,

https://priv.example.com/fileSequence2680.ts

#EXTINF:8,

https://priv.example.com/fileSequence2681.ts

#EXTINF:8,

https://priv.example.com/fileSequence2682.ts

7.3. Файл списка воспроизведения с зашифрованными мультимедийными файлами

#EXTM3U

#EXT-X-MEDIA-SEQUENCE:7794

#EXT-X-TARGETDURATION:15

7GN5DSEXT-X-KEY:METHOD=AES-

128, URI="https://priv.example.com/key.php?r=52"

#EXTINF:15,

http://media.example.com/fileSequence7794.ts

#EXTINF:15,

http://media.example.com/fileSequence7795.ts

#EXTINF:15,

http://media.example.com/fileSequence7796.ts

7GN5DSEXT-X-KEY:METHOD=AES-

128, URI="https://priv.example.com/key.php?r=53"

#EXTINF:15,

http://media.example.com/fileSequence7797.ts

7.4. Вариант файла списка воспроизведения

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1280000

http://example.com/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2560000

http://example.com/mid.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=7680000

http://example.com/hi.m3u8

7GN5DSEXT-X-STREAM-INF:PROGRAM-

ID=1, BANDWIDTH=65000, КОДЕКА="mp4a.40.5"

http://example.com/audio-only.m3u8

8. Вопросы безопасности

Поскольку в качестве протокола обычно используют HTTP, чтобы передать данные, применимо большинство тех же самых аспектов безопасности. См. раздел 15 RFC 2616 [RFC2616].

Синтаксические анализаторы мультимедийного файла обычно подвергают атакам "фаззинга".

Клиенты ДОЛЖНЫ заботиться, чтобы при синтаксическом анализе файлов, принятых из сервера, несовместимые файлы были отбракованы.

Файлы списка воспроизведения содержат URI, которые клиенты будут использовать для запросов по сети произвольных объектов. Клиенты ДОЛЖНЫ проверять диапазоны ответов, чтобы предотвратить переполнение буфера. См. также раздел Вопросы безопасности RFC 3986 [RFC3986].

Клиенты ДОЛЖНЫ слабо загружать ресурсы, идентифицированные URI, чтобы не способствовать организации атак типа "отказ в обслуживании".

Запросы HTTP часто включают в себя состояние сеанса ("куки"), которое может содержать закрытые данные пользователя. Варианты выполнения ДОЛЖНЫ следовать правилам ограничения и истечения куки-файла, определенным RFC 2965 [RFC2965]. См. также раздел Вопросы безопасности RFC 2965, и RFC 2964 [RFC2964].

Ключи шифрования заданы URI. Файл этих ключей ДОЛЖЕН быть защищен механизмом, таким как HTTP по TLS [RFC5246] (бывший SSL) вместе с защищенным куки-файлом области или сеанса.

9. Ссылки

Нормативные ссылки

[AES_128] U.S. Department of Commerce/National Institute of Standards and Technology, "Advanced Encryption Standard (AES), FIPS PUB 197", November 2001, <http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>.

[ISO_13818] International Organization for Standardization, "ISO/IEC International Standard 13818; Generic coding of moving pictures and associated audio information", November 1994, <http://www.iso.org/iso/catalogue_detail?csnumber=44169>.

[ISO_8601] International Organization for Standardization, "ISO/IEC International Standard 8601:2004; Data elements and interchange formats - Information interchange - Representation of dates and times", December 2004,

<http://www.iso.org/iso/catalogue_detail?csnumber=40874>.

[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996.

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1", RFC 2616, June 1999.

[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003.

[RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, My 2004.

[RFC3986] Berners-Lee, Т., Fielding, R., and L. Masinter, "Uniform Resource Identifier (UPI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC4281] Gellens, R, Singer, D., and P. Frojdh, "The Codecs Parameter for "Bucket" Media Types", RFC 4281, November 2005.

[US_ASCII] American National Standards Institute, "ANSI X3.4-1986, Information Systems -- Coded Character Sets 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)", December 1986.

Информативные ссылки

[ID3] ID3.org, "The ID3 audio file data tagging format", <http://www.id3. org/Developer_Information>.

[M3U] Nullsoft, Inc., "The M3U Playlist format, originally invented for the Winamp media player", <http://wikipedia.org/wiki/M3U>.

1. Способ разделения потока данных, содержащий:
разделяют поток данных на множество мультимедийных файлов, в котором множество мультимедийных файлов содержит первую группу мультимедийных файлов и вторую группу мультимедийных файлов, в котором первая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием с первой скоростью передачи битов в формате, совместимом с протоколом передачи, и в котором вторая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием со второй скоростью передачи битов в формате, совместимом с протоколом передачи;
генерируют первый файл списка воспроизведения, имеющий множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов для восстановления потока данных;
генерируют второй файл списка воспроизведения, имеющий множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов для восстановления потока данных; и
генерируют вариант файла списка воспроизведения, имеющий множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения.

2. Способ по п.1, в котором протокол передачи содержит протокол, совместимый с протоколом передачи гипертекста (HTTP), и в котором кодирование с первой скоростью передачи битов и кодирование со второй скоростью передачи битов отличаются друг от друга тем, что они представляют собой одно из: кодирования с тем же кодеком, но с разными скоростями передачи данных, или кодирования с разными кодеками на тех же самых или на других скоростях передачи данных.

3. Способ по п.1, дополнительно содержащий:
генерируют обновленный первый файл списка воспроизведения или обновленный второй файл списка воспроизведения, в котором обновленный первый файл списка воспроизведения или обновленный второй файл списка воспроизведения включают в себя, по меньшей мере, один обновленный URI, обозначающий, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов.

4. Способ по п.3, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит добавление одного или больше мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения включает в себя URI мультимедийных файлов и добавленный один или больше мультимедийных файлов.

5. Способ по п.3, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит модификации в одном или больше мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения содержит URI мультимедийных файлов, и один или больше тэгов во множестве тэгов обновляют для отражения модификаций в одном или больше мультимедийных файлов.

6. Способ по п.3, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит удаление одного или больше выбранных мультимедийных файлов из мультимедийных файлов и добавляют один или больше дополнительных мультимедийных файлов для получения одного или больше оставшихся мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения содержит URI оставшихся мультимедийных файлов, и в котором поток данных представляет собой непрерывный поток на основе времени содержания для одиночной программы.

7. Считываемый компьютером носитель информации, в котором содержатся исполняемые инструкции, которые, при их выполнении, обеспечивают с помощью одного или больше процессоров выполнение способа:
разделение потока данных на множество мультимедийных файлов, в котором множество мультимедийных файлов содержит первую группу мультимедийных файлов и вторую группу мультимедийных файлов, в котором первая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием с первой скоростью передачи битов в формате, совместимом с протоколом передачи, и в котором вторая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием со второй скоростью передачи битов в формате, совместимом с протоколом передачи;
генерирование первого файла списка воспроизведения, имеющего множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов, для восстановления потока данных;
генерирование второго файла списка воспроизведения, имеющего множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов для восстановления потока данных;
генерирование варианта файла списка воспроизведения, имеющего множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения.

8. Считываемый компьютером носитель информации по п.7, в котором протокол передачи содержит протокол, совместимый с протоколом передачи гипертекста (HTTP), и в котором кодирование с первой скоростью передачи битов и кодирование со второй скоростью передачи битов отличаются друг от друга тем, что они представляют собой одно из: кодирования с тем же самым кодеком, но на других скоростях передачи данных, или кодирования с другими кодеками на тех же самых или других скоростях передачи данных.

9. Считываемый компьютером носитель информации но п.7, дополнительно содержащее инструкции, которые при их выполнении обеспечивают с помощью одного или больше процессоров:
генерирование обновленного первого файла списка воспроизведения или обновленного второго файла списка воспроизведения, в котором обновленный первый файл списка воспроизведения или обновленный второй файл списка воспроизведения включают в себя, по меньшей мере, один обновленный URI, обозначающий, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов.

10. Считываемый компьютером носитель информации по п.9, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит добавление одного или больше мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения включает в себя URI мультимедийных файлов и добавленный один или больше мультимедийных файлов.

11. Считываемый компьютером носитель информации по п.9, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит модификации в одном или больше мультимедийных файлах, и обновленный первый или второй файл списка воспроизведения содержит URI мультимедийных файлов, и один или больше тэгов во множестве тэгов обновляют для отражения модификаций в одном или больше мультимедийных файлов.

12. Считываемый компьютером носитель информации по п.9, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит удаление одного или больше выбранных мультимедийных файлов из мультимедийных файлов и добавление одного или больше дополнительных мультимедийных файлов для получения одного или больше оставшихся мультимедийных файлов, и обновленный первый или второй файлы списка воспроизведения содержат URI оставшихся мультимедийных файлов, и в котором поток данных представляет собой непрерывный поток на основе времени содержания для одиночной программы.

13. Устройство для разделения потока данных, содержащее:
средство для разделения потока данных на множество мультимедийных файлов, в котором множество мультимедийных файлов содержит первую группу мультимедийных файлов и вторую группу мультимедийных файлов, в котором первая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием с первой скоростью передачи битов в формате, совместимом с протоколом передачи, и в котором вторая группа мультимедийных файлов выполнена с возможностью сохранения с кодированием со второй скоростью передачи битов в формате, совместимом с протоколом передачи;
средство для генерирования первого файла списка воспроизведения, имеющего множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов для восстановления потока данных;
средство для генерирования второго файла списка воспроизведения, имеющего множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов для восстановления потока данных; и
средство для генерирования варианта файла списка воспроизведения, имеющего множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения.

14. Способ для приема потока данных, воплощенный в устройстве, содержащий:
запрашивают из устройства клиента файл списка воспроизведения по сети, используя протокол передачи;
принимают в ответ на запрос вариант списка воспроизведения, содержащий множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения, в котором один или больше из множества тэгов обозначает первый параметр полосы пропускания, ассоциированный с первым файлом списка воспроизведения, и второй параметр полосы пропускания, ассоциированный со вторым файлом списка воспроизведения, в котором первый параметр полосы пропускания меньше, чем второй параметр полосы пропускания;
выбирают с помощью устройства клиента первый файл списка воспроизведения или второй файл списка воспроизведения;
используя протокол передачи, запрашивают выбранный первый или второй файл списка воспроизведения с помощью устройства клиента, в котором в запросе используют URI из варианта файла списка воспроизведения, соответствующего выбранному файлу списка воспроизведения;
принимают с помощью устройства клиента запрашиваемый файл списка воспроизведения, запрашиваемый файл списка воспроизведения, имеющий URI, обозначающие множество мультимедийных файлов и множество тэгов, имеющих параметры, относящиеся к воспроизведению множества мультимедийных файлов;
используют протокол передачи, запрашивая один или больше мультимедийных файлов в порядке, обозначенном запрашиваемым файлом списка воспроизведения;
принимают один или больше запрашиваемых мультимедийных файлов по сети, используя протокол передачи.

15. Способ по п.14, дополнительно содержащий:
генерируют выход звукового и/или видеосигнала, представляющего поток содержания, при воспроизведении мультимедийных файлов устройством клиента в порядке, обозначенном файлом списка воспроизведения, и в котором выбор, с помощью устройства клиента, первого файла списка воспроизведения или второго файла списка воспроизведения содержит выбор первого файла списка воспроизведения, имеющего ассоциированный параметр малой полосы пропускания.

16. Способ по п.14, дополнительно содержащий:
выполняют мониторинг доступной полосы пропускания в устройстве клиента при приеме одного или больше запрашиваемых мультимедийных файлов по сети, в котором один или больше запрашиваемых мультимедийных файлов принимают по протоколу передачи;
сравнивают доступную полосу пропускания и первый параметр полосы пропускания, ассоциированный с выбранным файлом списка воспроизведения;
в котором запрос первого или второго файла списка воспроизведения содержит запрос второго файла списка воспроизведения, если второй параметр полосы пропускания находится в пределах доступной полосы пропускания, и доступная полоса пропускания превышает первый параметр полосы пропускания;
в котором запрос одного или больше мультимедийных файлов содержит запрос мультимедийных файлов, использующих URI в файле списка воспроизведения второй полосы пропускания.

17. Считываемый компьютером носитель информации, в котором содержатся исполняемые инструкции, которые при их выполнении обеспечивают с помощью одного или больше процессоров выполнение способа, содержащего:
запрашивают из устройства клиента файл списка воспроизведения по сети, используя протокол передачи;
принимают в ответ на запрос вариант списка воспроизведения, содержащий множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения, в котором один или больше из множества тэгов обозначает первый параметр полосы пропускания, ассоциированный с первым файлом списка воспроизведения, и второй параметр полосы пропускания, ассоциированный со вторым файлом списка воспроизведения, в котором первый параметр полосы пропускания меньше, чем второй параметр полосы пропускания;
выбирают с помощью устройства клиента первый файл списка воспроизведения или второй файл списка воспроизведения;
используя протокол передачи, запрашивают выбранный первый или второй файл списка воспроизведения с помощью устройства клиента, в котором в запросе используют URI из варианта файла списка воспроизведения, соответствующего выбранному файлу списка воспроизведения;
принимают с помощью устройства клиента запрашиваемый файл списка воспроизведения, запрашиваемый файл списка воспроизведения, имеющий URI, обозначающие множество мультимедийных файлов, и множество тэгов, имеющих параметры, относящиеся к воспроизведению множества мультимедийных файлов;
используют протокол передачи при запросе одного или больше мультимедийных файлов в порядке, обозначенном запрашиваемым файлом списка воспроизведения;
принимают один или больше запрашиваемых мультимедийных файлов по сети, используя протокол передачи.

18. Считываемый компьютером носитель информации по п.17, дополнительно содержащий, генерирование выхода звукового и/или видеосигнала, представляющего поток содержания, при воспроизведении мультимедийных файлов устройством клиента в порядке, обозначенном файлом списка воспроизведения, и в котором выбор с помощью устройства клиента первого файла списка воспроизведения или второго файла списка воспроизведения содержит выбор первого файла списка воспроизведения, имеющего малый ассоциированный параметр полосы пропускания.

19. Считываемый компьютером носитель информации по п.17, дополнительно содержащий инструкции, которые при их выполнении обеспечивают с помощью одного или больше процессоров выполнение дополнительного способа, содержащего:
выполняют мониторинг доступной полосы пропускания в устройстве клиента при приеме одного или больше запрашиваемых мультимедийных файлов по сети, в котором один или больше запрашиваемых мультимедийных файлов принимают по протоколу передачи;
сравнивают доступную полосу пропускания и первый параметр полосы пропускания, ассоциированный с выбранным файлом списка воспроизведения;
в котором запрос первого или второго файла списка воспроизведения содержит запрос второго списка воспроизведения, если второй параметр полосы пропускания находится в пределах доступной полосы пропускания, и доступная полоса пропускания превышает первый параметр полосы пропускания;
в котором запрос одного или больше мультимедийных файлов содержит запрос мультимедийных файлов, использующих URI в файле списка воспроизведения второй полосы пропускания.

20. Устройство для приема потока данных, содержащее:
средство для запроса с помощью устройства клиента файла списка воспроизведения по сети, используя протокол передачи;
средство для приема в ответ на запрос варианта списка воспроизведения, содержащего множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения, в котором один или больше из множества тэгов обозначают первый параметр полосы пропускания, ассоциированный с первым файлом списка воспроизведения, и второй параметр полосы пропускания, ассоциированный со вторым файлом списка воспроизведения, в котором первый параметр полосы пропускания меньше, чем второй параметр полосы пропускания;
средство для выбора, с помощью устройства клиента, первого файла списка воспроизведения или второго файла списка воспроизведения;
средство для запроса, используя протокол передачи, выбранного первого или второго файла списка воспроизведения с помощью устройства клиента, в котором в запросе используют URI из варианта файла списка воспроизведения, соответствующего выбранному файлу списка воспроизведения;
средство для приема с помощью устройства клиента запрашиваемого файла списка воспроизведения, запрашиваемый файл списка воспроизведения, имеющий URI, обозначающие множество мультимедийных файлов, и множество тэгов, имеющих параметры, относящиеся к воспроизведению множества мультимедийных файлов;
средство для запроса, используя протокол передачи, одного или больше мультимедийных файлов в порядке, обозначенном запрашиваемым файлом списка воспроизведения;
средство для приема одного или больше запрашиваемых мультимедийных файлов по сети, используя протокол передачи;
средство для генерирования выхода звукового и/или видеосигнала, представляющее поток содержания при воспроизведении мультимедийных файлов устройством клиента в порядке, обозначенном запрашиваемым файлом списка воспроизведения.

21. Устройство по п.20, дополнительно содержащее:
средство для выполнения мониторинга доступной полосы пропускания в устройстве клиента при приеме одного или больше запрашиваемых мультимедийных файлов по сети, в котором один или больше запрашиваемых мультимедийных файлов принимают через непотоковый протокол передачи;
средство для сравнения доступной полосы пропускания и первого параметра полосы пропускания, ассоциированного с выбранным файлом списка воспроизведения;
средство для запроса второго списка воспроизведения, если второй параметр полосы пропускания находится в пределах доступной полосы пропускания, и доступная полоса пропускания превышает первый параметр полосы пропускания;
средство для запроса мультимедийных файлов, использующее URI в файле списка воспроизведения второй полосы пропускания.

22. Способ для передачи файлов в устройство клиент, содержащий:
передают вариант файла списка воспроизведения в устройство клиент используя протокол передачи, вариант файла списка воспроизведения, имеющий множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения и, в котором у первого файла списка воспроизведения имеется множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов, имеющих первое кодирование, для восстановления потока данных, для непрерывного на основе времени потока содержания программы, и в котором у второго файла списка воспроизведения имеется множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов, имеющих второе кодирование, для восстановления потока данных;
передают, используя протокол передачи, либо первый файл списка воспроизведения, или второй файл списка воспроизведения в устройство клиента в ответ на запрос из устройства клиента, использующего URI из варианта файла списка воспроизведения;
пересылают при использовании протокола передачи, по меньшей мере, один из: (а) мультимедийных файлов из первой группы мультимедийных файлов в устройство клиента, в ответ на один или больше запросов из устройства клиента, использующего URI из первого файла списка воспроизведения, или (b) мультимедийных файлов из второй группы мультимедийных файлов в устройство клиента, в ответ на один или больше запросов из устройства клиента, использующего URI из второго файла списка воспроизведения.

23. Способ по п.22, в котором протокол передачи содержит протокол, совместимый с протоколом передачи гипертекста (HTTP).

24. Способ по п.22, дополнительно содержащий: передают обновленный файл списка воспроизведения в устройство клиента, обновленный файл списка воспроизведения включает в себя обновления первого файла списка воспроизведения или второго файла списка воспроизведения, и в котором обновленный первый файл списка воспроизведения включает в себя, по меньшей мере, один обновленный URI, обозначающий, по меньшей мере, одно изменение первой группы или второй группы мультимедийных файлов.

25. Способ по п.24, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит добавление одного или больше мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения включает в себя URI мультимедийных файлов и добавленный один или больше мультимедийных файлов.

26. Способ по п.24, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит модификации в одном или больше мультимедийных файлов, и обновленный первый или второй файл списка воспроизведения содержит URI мультимедийных файлов, и один или больше тэгов во множестве тэгов обновляют для отражения модификаций в одном или больше мультимедийных файлов.

27. Способ по п.24, в котором, по меньшей мере, одно изменение первой или второй группы мультимедийных файлов содержит удаление одного или больше выбранных мультимедийных файлов из мультимедийных файлов и добавление одного или больше дополнительных мультимедийных файлов для получения одного или больше оставшихся мультимедийных файлов, и обновленный первый файл списка воспроизведения содержит URI оставшихся мультимедийных файлов.

28. Считываемый компьютером носитель информации, в котором содержатся исполняемые инструкции, которые при их выполнении обеспечивают с помощью одного или больше процессоров выполнение способа: передачу варианта файла списка воспроизведения в устройство клиента, используя протокол передачи, вариант файла списка воспроизведения, имеющий множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения, и в котором у первого файла списка воспроизведения имеется множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов, имеющих первое кодирование, для восстановления потока данных, для непрерывного на основе времени потока содержания программы, и в котором у второго файла списка воспроизведения имеется множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов, имеющих второе кодирование, для восстановления потока данных;
передачу, используя протокол передачи, либо первого файла списка воспроизведения, или второго файла списка воспроизведения в устройство клиента, в ответ на запрос из устройства клиента, использующего URI из варианта файла списка воспроизведения;
пересылку, используя протокол передачи, по меньшей мере, одного из (а) мультимедийных файлов из первой группы мультимедийных файлов в устройство клиента, в ответ на один или больше запросов из устройства клиента, использующего URI из первого файла списка воспроизведения; или (b) мультимедийных файлов из второй группы мультимедийных файлов в устройство клиент, в ответ на один или больше запросов из устройства клиента, использующего URI из второго файла списка воспроизведения.

29. Считываемый компьютером носитель информации по п.28, в котором протокол передачи содержит протокол, совместимый с протоколом передачи гипертекста (HTTP).

30. Считываемый компьютером носитель информации по п.28, дополнительно содержащий инструкции, которые при их выполнении обеспечивают с помощью одного или больше процессоров:
передачу обновленного файла списка воспроизведения в устройство клиента, обновленный файл списка воспроизведения включает в себя обновления первого файла списка воспроизведения или обновления второго файла списка воспроизведения, и в котором обновления первого файла списка воспроизведения включают в себя множество обновленных URI, обозначающих изменения первой группы мультимедийных файлов, сохраненных с первым кодированием в формате, совместимом с протоколом передачи, и обновления второго файла списка воспроизведения включают в себя изменения второй группы мультимедийных файлов, сохраненных с первым кодированием в формате, совместимом с протоколом передачи.

31. Считываемый компьютером носитель информации по п.30, в котором изменения мультимедийных файлов содержат добавление одного или больше мультимедийных файлов, и обновления первого файла списка воспроизведения включают в себя URI мультимедийных файлов и добавленный один или больше мультимедийных файлов.

32. Считываемый компьютером носитель информации по п.30, в котором изменения мультимедийных файлов содержат модификации в одном или больше мультимедийных файлов, и обновления первого файла списка воспроизведения содержат URI мультимедийных файлов, и один или больше тэгов во множестве тэгов обновляют для отражения модификаций в одном или больше мультимедийных файлов.

33. Считываемый компьютером носитель информации по п.30, в котором изменения мультимедийных файлов содержат удаление одного или больше выбранных мультимедийных файлов из мультимедийных файлов и добавление одного или больше дополнительных мультимедийных файлов для получения одного или больше оставшихся мультимедийных файлов, и обновления первого файла списка воспроизведения содержат URI остающихся мультимедийных файлов.

34. Устройство для передачи файлов в устройство клиент, содержащее:
средство для передачи варианта файла списка воспроизведения в устройство клиента, используя протокол передачи, вариант файла списка воспроизведения, имеющий множество тэгов и множество URI, обозначающих первый файл списка воспроизведения и второй файл списка воспроизведения, и в котором у первого файла списка воспроизведения имеется множество тэгов и множество универсальных индикаторов ресурса (URI), обозначающих порядок первой группы мультимедийных файлов, имеющих первое кодирование, для восстановления потока данных для непрерывного на основе времени потока содержания программы, и в котором у второго файла списка воспроизведения имеется множество тэгов и множество URI, обозначающих порядок второй группы мультимедийных файлов, имеющих второе кодирование, для восстановления потока данных;
средство для передачи либо первого файла списка воспроизведения, или второго файла списка воспроизведения в устройство клиента, в ответ на запрос из устройства клиента, использующего URI из варианта файла списка воспроизведения, используя протокол передачи;
средство для пересылки, по меньшей мере, одного из (а) мультимедийных файлов из первой группы мультимедийных файлов в устройство клиента, в ответ на один или больше запросов из устройства клиента, использующего URI из первого файла списка воспроизведения, используя протокол передачи; или (b) мультимедийных файлов из второй группы мультимедийных файлов в устройство клиента в ответ на один или больше запросов из устройства клиента, использующего URI из второго файла списка воспроизведения, используя протокол передачи.



 

Похожие патенты:

Изобретение относится к системе беспроводной передачи с возможностью группировки множества устройств-получателей и управления функционированием устройств-получателей применительно к каждой группе.

Изобретение относится к системам для определения распределенных сетевых атак за счет анализа поведенческого взаимодействия пользователей с защищаемым ресурсом. .

Изобретение относится к беспроводной связи, а именно к системам и способам для распределения и управления групповыми ключами для защиты широковещательного сообщения.

Изобретение относится к системам связи. .

Изобретение относится к способу и системе для сети связи в области компьютерных приложений, основанным на стеке сетевых протоколов Linux, для осуществления передачи потоковых мультимедийных данных с нулевым копированием.

Изобретение относится к системам доставки звуковой и видеоинформации с условным доступом. .

Изобретение относится к области беспроводной связи. .

Изобретение относится к системам беспроводной связи. .

Изобретение относится к вычислительной технике. .

Изобретение относится к программируемым элементам памяти, к способам и устройствам для их считывания, записи и программирования. .

Изобретение относится к устройству изготовления носителя записи информации. .

Изобретение относится к вычислительной технике. .

Изобретение относится к вычислительной технике приборостроения и может быть использовано для стирания записей с неоднородных полупроводниковых носителей информации, в частности устройств энергонезависимой памяти, флэш-памяти и т.п.

Изобретение относится к технике защиты информации, более конкретно к технике защиты информации на накопителе на жестких магнитных дисках (НЖМД). .

Изобретение относится к области цифровой техники и может быть использовано при записи разноскоростных цифровых потоков на носители информации и последующем считывании на скорости, требуемой для последующей обработки.

Изобретение относится к конструктивным элементам цифровых запоминающих устройств и может быть использовано для ввода данных в ЭВМ. .

Изобретение относится к управлению адресом для псевдо двухпортовой памяти
Наверх