О HTTP живая потоковая передача

HTTP Live Streaming (HLS) является технологией Apple для потоковой передачи живого и по требованию аудио/видеоконтент к iPhone, iPad, iPod touch, Apple TV и Mac. Центральный к HLS поставка содержания с помощью протокола HTTP — тот же протокол, это приводит в действие сеть. HTTP позволяет Вам легко развернуть мультимедийный контент в потоках с помощью банальных веб-серверов, а не специализированных серверов потоковой передачи. Потоки HLS ведут себя как регулярный веб-трафик. Они работают с существующим ранее, кэшируя инфраструктуру, такую как Сети доставки контента (CDNs), и надежно проходят через типичные брандмауэры и маршрутизаторы. HLS адаптируется к переменному состоянию сети, динамично корректируя воспроизведение для соответствия доступной скорости проводных и беспроводных соединений.

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

Этот документ описывает ключевые аспекты HLS включая упомянутые выше функции. Полный HTTP Живая спецификация Потоковой передачи доступен как Интернет-проект IETF в http://tools .ietf.org/html/draft-pantos-http-live-streaming.

Поток операций HLS

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

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

Участки среды

Кодер создает участки среды путем деления данных о событии на короткие транспортные потоковые файлы MPEG 2 (.ts). Как правило, файлы содержат видео H.264 или аудио AAC с продолжительностью 5 - 10 секунд каждый. Кодер позволяет Вам установить кодирование и продолжительность участков среды.

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

Кодер создает списки воспроизведения носителей, поскольку текстовые файлы сохранили в формате M3U (.m3u8). Списки воспроизведения носителей содержат URLs к участкам среды и другой информации, необходимой для воспроизведения. Тип списка воспроизведения — живой, событие или видео по требованию (VOD) — определяет, как можно переместиться по потоку.

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

Живой и списки воспроизведения носителей события

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

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

Перечисление 1  простой живой список воспроизведения носителей

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts

Список воспроизведения события, показанный в Перечислении 2, имеет тот же формат как живой список воспроизведения носителей выше, за исключением дополнительной строки: #EXT-X-PLAYLIST-TYPE:EVENT. То обозначение предупреждает медиапроигрыватель, что этот список воспроизведения будет вести себя по-другому, чем живой список воспроизведения носителей. Списки воспроизведения события поддерживают ссылки на более старые носители при получении новых ссылок. Этот процесс приводит к расширяющемуся списку воспроизведения носителей. Этот тип списка воспроизведения позволяет проигрывателям перейти свободно (назад и вперед) с начала программы. Поскольку ссылки на все участки среды остаются в списке воспроизведения, когда живое событие заканчивается, списки воспроизведения события легко преобразовываются в списки воспроизведения VOD.

Перечисление 2  простой список воспроизведения носителей события

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:9.9001,
http://media.example.com/wifi/segment0.ts
#EXTINF:9.9001,
http://media.example.com/wifi/segment1.ts
#EXTINF:9.9001,
http://media.example.com/wifi/segment2.ts

Списки воспроизведения носителей VOD

Список воспроизведения VOD, показанный в Перечислении 3, содержит ссылки на все доступные участки среды для полного представления, начиная заканчиваться. Этот вид списка воспроизведения позволяет проигрывателю перемещаться по всей программе. VOD #EXT-X-ENDLIST тегируйте отмечает конец загружаемых участков среды.

Перечисление 3  простой список воспроизведения носителей VOD

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:9.9001,
http://media.example.com/wifi/segment0.ts
#EXTINF:9.9001,
http://media.example.com/wifi/segment1.ts
#EXTINF:9.9001,
http://media.example.com/wifi/segment2.ts
#EXT-X-ENDLIST

Основные списки воспроизведения

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

  Отношения Списка воспроизведения рисунка 1

Демонстрационный основной список воспроизведения в Перечислении 4 показывает четыре варианта. Порядок списков воспроизведения носителей в основных списках воспроизведения не имеет значения, кроме тех случаев, когда Вы запускаете поток. Проигрыватель начинает загружать первый вариант, который он может играть. Если условия гарантируют, проигрыватель переключается на другую середину реки списка воспроизведения носителей.

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

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2855600,CODECS="avc1.4d001f,mp4a.40.2",RESOLUTION=960x540
live/medium.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5605600,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1280x720
live/high.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1755600,CODECS="avc1.42001f,mp4a.40.2",RESOLUTION=640x360
live/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=545600,CODECS="avc1.42001e,mp4a.40.2",RESOLUTION=416x234
live/cellular.m3u8

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

Публикация потоков HLS

Вы обеспечиваете доступ к своим потокам путем добавления ссылки к основному файлу списка воспроизведения в веб-странице, или путем создавания собственного приложения, созданного с платформами Основы или Медиапроигрывателя AV. См. Ссылку Платформы Руководства по программированию или Медиапроигрывателя Основы AV.

Главные особенности

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

Субтитры и подзаголовки

HLS поддерживает субтитры CEA-608, встроенные в транспортный поток MPEG 2, как указано в ATSC A/72. Большинство кодеров автоматически включает закрытый ввод субтитров в участки среды, поскольку кодер обрабатывает входящее видео. Некоторые кодеры также вставляют закрытый ввод субтитров от отдельного файла субтитров или сегментировали файлы QuickTime, содержащие дорожки субтитров (cclp).

HLS также поддерживает многократные подзаголовки в формате WebVTT. Для получения дополнительной информации о реализации WebVTT см. 2012 WWDC: Новые функции и возможности в HLS и WebVTT: спецификация Формата Текстовых дорожек интернет-видео.

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

HLS поддерживает ускоренную перемотку и обратное воспроизведение с помощью списка воспроизведения I-кадра. Список воспроизведения I-кадра указывает на диапазон байта в уже существующих участках среды. Ускоренной перемотке и обратному воспроизведению не нужны специальные участки среды.

Для всесторонней информации о списках воспроизведения I-кадра наблюдайте 2012 WWDC: Эффективный HLS.

Чередуйте аудио и видео представления

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

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

Для получения дополнительной информации об альтернативных представлениях носителей наблюдайте 2012 WWDC: Эффективный HLS.

Нейтрализация с потоковыми альтернативами

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

Синхронизированные метаданные

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

Вы вставляете дополнительные данные, известные как синхронизированные метаданные, в мультимедийный поток в установленный срок смещение. (Дополнительно, вставьте синхронизированные метаданные во все сегменты после данного времени.)

Для получения дополнительной информации о синхронизированных метаданных считайте Синхронизированные Метаданные для HTTP Живая Потоковая передача.

Вставка объявления

HLS упрощает вставку объявления через маркеры разрыва. Маркеры в плавных переходах списков воспроизведения между разрозненным содержанием.

Для больше на разрывах, считайте Файлы Списка воспроизведения В качестве примера для использования с HTTP Живая Потоковая передача.

Защита содержания

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

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

Для подробности о шифровании демонстрационного уровня, указанном для использования с HLS, считайте Формат поточного шифрования MPEG 2 для HTTP Живая Потоковая передача.

Для получения дополнительной информации на служащих ключах, посмотрите, Как надежно служить Файлам ключей для HTTP Живая Потоковая передача с HTTPS.

Требования для приложений для iOS

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

Демонстрационные потоки

Серия потоков HTTP доступна для тестирования на сайте разработчика Apple. Эти примеры показывают надлежащее форматирование HTML для встраивания потоков, .m3u8 списки воспроизведения для индексации потоков, и .ts файлы участка среды. Посмотрите страницу HTTP Live Streaming.

Apple обеспечивает упрощенные инструменты командной строки, такие как Медиа-файл Segmenter и Мультимедийный поток Segmenter, чтобы разделить представления и произвести файлы списка воспроизведения. Регистрируйтесь со своим разработчиком ID и посетите страницу HTTP Live Streaming при «Загрузках».

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

Начало работы с HLS

Для начала работы с собственными потоками HLS HTTP, Живое Руководство по Содержанию Потоковой передачи обеспечивает простой сквозной контроль основного потокового создания. Руководство также объясняет сложные понятия HLS, как реализовать расширенные опции и требования для потоковой передачи к устройствам на iOS.

Считайте HTTP Живая спецификация Потоковой передачи для текущей и категорической технической информации.

История версий функции HLS

Интернет-проект

EXT-X-VERSION

Версия iOS

Версия Apple TV

Примечания

00, 01

1

3

Начальная версия.

02

1

3.1

Добавленный EXT-X-DISCONTINUITY. Измененный Тип контента. Добавленные избыточные потоки.

03, 04

2

3.2

Добавленный EXT-X-VERSION. Добавленный IV приписывает EXT-X-KEY. Добавленный RESOLUTION приписывает EXT X STREAM INF.

Исправленные значения атрибута CODECS.

03, 04

2

4

Добавленные синхронизированные метаданные APIs.

Добавленные пользовательские протоколы для ключей.

05

3

4.2

4.1

Добавленные продолжительности с плавающей точкой EXTINF; Поддерживайте Субтитры CEA-608.

05

3

4.3

4.3

Добавленная AccessLog & ErrorLog возражает против APIs.

06

3

4.3.2

Добавленный EXT X PLAYLIST TYPE.

07, 08

4

5

4.4

Добавленный EXT X I FRAMES ONLY, EXT X I FRAME STREAM INF, EXT-X-MEDIA, EXT-X-BYTERANGE.

Добавленный AUDIO и VIDEO приписывают EXT X STREAM INF.

09, 10, 11

5

6

5.1

Добавленный EXT-X-MAP. Добавленный KEYFORMAT и KEYFORMATVERSIONS приписывают EXT-X-KEY; FORCED и CHARACTERISTICS приписывают EXT-X-MEDIA; и SUBTITLES приписывает EXT X STREAM INF.

Добавленное значение SAMPLE-AES к атрибуту METHOD EXT-X-KEY; и SUBTITLES оценивает Атрибуту типа EXT-X-MEDIA.