Потоковая передача данных в режиме реального времени или в режиме, близком к реальному времени
Иллюстрации
Показать всеГруппа изобретений относится к области передачи данных. Технический результат заключается в обеспечении выполнения потоковой передачи, используя непотоковые протоколы. В способе и в устройстве для потоковой передачи содержания в режиме реального времени или в режиме, близком к реальному времени, используют протоколы передачи, например, 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. Формат может быть задан при определе