Файлы Списка воспроизведения в качестве примера для использования с HTTP Живая Потоковая передача
Этот technote описывает несколько файлов списка воспроизведения в качестве примера, которые могут привыкнуть к потоковым мультимедийным данным с HTTP Живая Потоковая передача.
Введение
HTTP Живая Потоковая передача отправляет аудио и видео как серия маленьких файлов, обычно продолжительности приблизительно 10 секунд, названной файлами участка среды. Индексный файл или список воспроизведения, обеспечивает упорядоченный список URLs файлов участка среды. Индексные файлы для HTTP Живая Потоковая передача сохраняются как .m3u8 списки воспроизведения, расширение .m3u формат используется для списков воспроизведения MP3. К URL индексного файла получают доступ клиенты, тогда запрашивающие индексируемые файлы в последовательности.
Этот technote описывает несколько различных типов файлов списка воспроизведения, которые могут привыкнуть к потоковым мультимедийным данным с HTTP Живая Потоковая передача.
Для полной информации о HTTP Живой Протокол потоковой передачи и информация о списке воспроизведения, представленная в этом technote, см. Интернет-проект IETF HTTP Живая спецификация Потоковой передачи.
См. также HTTP Живой Обзор Потоковой передачи для получения дополнительной информации о HTTP Живая Потоковая передача.
Можно использовать инструменты Apple HTTP Live Streaming для генерации списков воспроизведения. Эти инструменты часто обновляются, таким образом, необходимо удостовериться и загрузить текущую версию. Если Вы - участник Программы Разработчика iPhone, можно получить доступ к ним. Просто войдите в систему веб-сайт Разработчика Apple, затем ищите область Downloads.
Основной список воспроизведения Видео по требованию (VOD)
Для сеансов Видео по требованию (VOD) медиа-файлы являются доступным представлением всей продолжительности представления. Индексный файл статичен и содержит полный список URLs ко всем медиа-файлам, создаваемым с начала представления. Этот вид сеанса предоставляет клиентский полный доступ ко всей программе. Посмотрите пример список воспроизведения VOD в Перечислении 1.
Список воспроизведения Видео по требованию (VOD) перечисления 1.
#EXTM3U |
#EXT-X-PLAYLIST-TYPE:VOD |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXTINF:10.0, |
http://example.com/movie1/fileSequenceA.ts |
#EXTINF:10.0, |
http://example.com/movie1/fileSequenceB.ts |
#EXTINF:10.0, |
http://example.com/movie1/fileSequenceC.ts |
#EXTINF:9.0, |
http://example.com/movie1/fileSequenceD.ts |
#EXT-X-ENDLIST |
Вот является описание тегов, используемых в Видео в качестве примера по требованию списком воспроизведения:
Расширенный формат файла M3U определяет два тега: EXTM3U и EXTINF. Расширенный файл M3U отличает от основного файла M3U его первая строка, которая должна быть EXTM3U.
EXTINF рекордный маркер, описывающий медиа-файл, идентифицированный URL, следующим за ним. Каждому медиа-файлу URL нужно предшествовать EXTINF тег. EXTINF тег содержит атрибут «продолжительности», который является целочисленным или числом с плавающей точкой в десятичной позиционной нотации, указывающей продолжительность участка среды в секундах.
EXT X PLAYLIST тег TYPE предоставляет информацию переменчивости о файле списка воспроизведения. Это применяется ко всему файлу списка воспроизведения. Этот тег может содержать значение или EVENT или VOD. Если тег присутствует и имеет значение EVENT, сервер не должен изменять или удалять любую часть файла списка воспроизведения (несмотря на то, что это может добавить строки к нему). Если тег присутствует и имеет значение VOD, файл списка воспроизведения не должен изменяться.
Каждый медиа-файл URL в списке воспроизведения имеет уникальный целочисленный порядковый номер. Порядковый номер URL равен порядковому номеру URL, предшествовавшего ему плюс один. EXT-X-MEDIA-SEQUENCE тег указывает порядковый номер первого URL, появляющегося в файле списка воспроизведения.
EXT-X-TARGETDURATION тег указывает максимальную продолжительность медиа-файла.
EXT-X-VERSION тег указывает версию совместимости файла списка воспроизведения. Носители списка воспроизведения и его сервер должны соответствовать всем условиям новой версии Интернет-проекта IETF HTTP Живая спецификация Потоковой передачи, определяющая ту версию протокола.
EXT-X-ENDLIST тег указывает, что больше медиа-файлов не будет добавлено к файлу списка воспроизведения.
Вот тот же список воспроизведения с относительными путями.
Видео перечисления 2 по требованию список воспроизведения с относительными путями.
#EXTM3U |
#EXT-X-PLAYLIST-TYPE:VOD |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXTINF:10.0, |
fileSequenceA.ts |
#EXTINF:10.0, |
fileSequenceB.ts |
#EXTINF:10.0, |
fileSequenceC.ts |
#EXTINF:9.0, |
fileSequenceD.ts |
#EXT-X-ENDLIST |
Живой список воспроизведения (раздвижное окно)
Для живых сеансов индексный файл обновляется путем удаления носителей URIs из файла, поскольку новые медиа-файлы созданы и сделаны доступный.
См. Перечисление 3 для примера живой список воспроизведения, как это появилось бы в начале сеанса.
Перечисление 3 Живой Список воспроизведения в начале сеанса.
#EXTM3U |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:1 |
#EXTINF:10, |
fileSequence1.ts |
#EXTINF:10, |
fileSequence2.ts |
#EXTINF:10, |
fileSequence3.ts |
#EXTINF:10, |
fileSequence4.ts |
#EXTINF:10, |
fileSequence5.ts |
EXT-X-MEDIA-SEQUENCE тегируйте оценивают MUST быть постепенно увеличенным 1 для каждого носители URI это удалено из файла списка воспроизведения. URIs носителей должен быть удален из файла списка воспроизведения в порядке, что они появляются в списке воспроизведения. Обновленный индексный файл представляет движущееся окно в непрерывный поток. Этот тип сеанса подходит для непрерывных широковещательных сообщений.
Вот тот же список воспроизведения после того, как он был обновлен с новыми носителями URIs:
Перечисление 4 Живой Список воспроизведения после обновления носителей URIs.
#EXTM3U |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:2 |
#EXTINF:10, |
fileSequence2.ts |
#EXTINF:10, |
fileSequence3.ts |
#EXTINF:10, |
fileSequence4.ts |
#EXTINF:10, |
fileSequence5.ts |
#EXTINF:10, |
fileSequence6.ts |
Список воспроизведения события
Список воспроизведения события указан EXT X PLAYLIST тег TYPE со значением EVENT. Список воспроизведения события смотрит точно так же, как живой список воспроизведения для начинаний с. Это первоначально не имеет EXT-X-ENDLIST тег, указывая, что новые медиа-файлы будут добавлены к списку воспроизведения, поскольку они становятся доступными.
Список воспроизведения события перечисления 5 (запускается).
#EXTM3U |
#EXT-X-PLAYLIST-TYPE:EVENT |
#EXT-X-TARGETDURATION:10 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXTINF:10, |
fileSequence0.ts |
#EXTINF:10, |
fileSequence1.ts |
#EXTINF:10, |
fileSequence2.ts |
#EXTINF:10, |
fileSequence3.ts |
#EXTINF:10, |
fileSequence4.ts |
Однако с EVENT тег, Вы не можете изменить список воспроизведения вообще; можно только добавить новые сегменты до конца файла. Они не могут быть добавлены в передней стороне. Новые сегменты добавляются, пока событие не завершило, в который время EXT-X-ENDLIST тег добавляется.
Список воспроизведения события перечисления 6 (конец).
#EXTM3U |
#EXT-X-PLAYLIST-TYPE:EVENT |
#EXT-X-TARGETDURATION:10 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXTINF:10, |
fileSequence0.ts |
#EXTINF:10, |
fileSequence1.ts |
#EXTINF:10, |
fileSequence2.ts |
#EXTINF:10, |
fileSequence3.ts |
#EXTINF:10, |
fileSequence4.ts |
... |
#EXTINF:10, |
fileSequence120.ts |
#EXTINF:10, |
fileSequence121.ts |
#EXT-X-ENDLIST |
Поскольку имя подразумевает, списки воспроизведения события обычно используются для событий, таких как согласия или спортивные игры, где Вы хотите позволить пользователю искать где угодно в конечном счете с начала.
При поставке события как это Вы, вероятно, захотите защитить свое содержание. Посмотрите Ключи шифрования для приобретения знаний об использовании шифрования с медиа-файлами.
Основной различный список воспроизведения
Можно предложить многократные файлы списка воспроизведения для обеспечения различных кодировок того же представления. См. Перечисление 7.
Вариант является версией потока в определенной скорости передачи. Каждый вариант является отдельным списком воспроизведения. Различный список воспроизведения описывает все доступные варианты. Клиент переключится на самый надлежащий вариант на основе измеренного уровня бита сетевой части. Проигрыватель клиента настраивается для минимизации остановки воспроизведения, чтобы дать пользователю лучший опыт, возможный при потоковой передаче.
EXT-X-STREAM-INF тег указывает, что следующий URL в файле списка воспроизведения идентифицирует другой файл списка воспроизведения.
Следующие атрибуты определяются:
BANDWIDTH
Значение является десятичным целым числом бит в секунду. Это должна быть верхняя граница полной скорости передачи каждого медиа-файла, вычисленного для включения контейнера наверху, который появляется или появится в списке воспроизведения.
PROGRAM-ID
Значение является десятичным целым числом, однозначно определяющим определенное представление в рамках файла списка воспроизведения.
Файл списка воспроизведения может содержать многократный EXT-X-STREAM-INF теги с тем же PROGRAM-ID идентифицировать различные кодировки того же представления. Эти различные списки воспроизведения могут содержать дополнительного EXT - STREAM-INF теги.
CODECS
Значение является заключенной в кавычки строкой, содержащей список разделенных запятой значений форматов, где каждый формат указывает демонстрационный тип носителей, присутствующий в участке среды в файле Списка воспроизведения. Идентификаторы допустимого формата - те в Пространстве имен Формата файла ISO, определенном RFC 6381 [RFC6381].
Перечисление 7 основной различный список воспроизведения.
#EXTM3U |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=150000,RESOLUTION=416x234, \ |
CODECS="avc1.42e00a,mp4a.40.2" |
http://example.com/low/index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000,RESOLUTION=416x234, \ |
CODECS="avc1.42e00a,mp4a.40.2" |
http://example.com/lo_mid/index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000,RESOLUTION=416x234, \ |
CODECS="avc1.42e00a,mp4a.40.2" |
http://example.com/hi_mid/index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=640000,RESOLUTION=640x360, \ |
CODECS="avc1.42e00a,mp4a.40.2" |
http://example.com/high/index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,CODECS="mp4a.40.5" |
http://example.com/audio/index.m3u8 |
Список воспроизведения объявления (разрывы)
Часто Вы будете хотеть поставить целый ряд фильмов со своего рода брендингом (реклама), выведенная на экран перед каждым, чтобы позволить пользователю знать, что они происходят из Вашего определенного сайта. Один способ сделать это должно просто объединить объявление с каждым фильмом. Но если у Вас есть сотни фильмов, это - большое перекодирование, чтобы сделать, плюс Вы будете копировать объявление с каждым фильмом.
Вы могли просто поставить объявление как один фильм, и затем проигрывать следующий фильм. Проблема - Вы, получит отбрасывания по качеству при переходе от объявления до фильма. Например, объявление начнет играть с низкой скоростью передачи данных, чтобы гарантировать, что клиент в состоянии считать его, тогда постепенно расти для обеспечения самого лучшего опыта воспроизведения. Когда объявление закончит играть, фильм запустится на низкой скорости передачи данных (как объявление сделало), и растите, и Вы испытаете повреждение по качеству. Кроме того, при отображении объявления посреди фильма, Вы получите отбрасывания по качеству, как Вы продвигаетесь.
Решение состоит в том, чтобы сообщить клиенту существует прибытие изменения. Это выполняется с EXT-X-DISCONTINUITY тег. EXT-X-DISCONTINUITY тег указывает разрыв кодирования между медиа-файлом, следующим за ним и тот, предшествовавший ему.
Вот пример потока, использующего a EXT-X-DISCONTINUITY тег для проигрывания некоторых фильмов, которым предшествует объявление 18 (сегменты ad0.ts и ad1.ts):
Список воспроизведения Объявления перечисления 8 в качестве примера.
#EXTM3U |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXTINF:10.0, |
ad0.ts |
#EXTINF:8.0, |
ad1.ts |
#EXT-X-DISCONTINUITY |
#EXTINF:10.0, |
movieA.ts |
#EXTINF:10.0, |
movieB.ts |
Ключи шифрования
Медиа-файлы могут быть зашифрованы для управления, у кого есть доступ к ним. Для этого сначала зашифруйте свои носители, затем тегируйте зашифрованные участки среды в списке воспроизведения с a EXT-X-KEY тег. EXT-X-KEY тег предоставляет информацию, необходимую для дешифрования медиа-файлов, следующих за ним. Это поддерживает два различных метода шифрования, NONE и AES-128.
EXT-X-KEY тег может содержать Вектор инициализации (IV) атрибут. Атрибут Вектора инициализации, если есть указывает Вектор инициализации, который будет использоваться с ключом. Его значение является шестнадцатеричным целым числом. Варьируясь этот Вектор инициализации увеличивает силу шифра.
Вектор инициализации по умолчанию для шифрования носителей (если ни один не указан) является порядковым номером медиа-файла. Необходимо указать значение Вектора инициализации и не полагаться на порядковые номера. Главной причиной для этого является мобильность. Например, если Вы изменяетесь, где сегмент появляется в списке воспроизведения (например, вставка объявления), который изменяет его порядковый номер, требуя повторно шифровать.
Вот тот же пример списка воспроизведения Эда от Перечисления 8, но с шифрованием и Вектором инициализации, добавленным для носителей с помощью EXT-X-KEY тег.
Список воспроизведения Объявления перечисления 9 в качестве примера с Ключами шифрования и Вектором инициализации.
#EXTM3U |
#EXT-X-TARGETDURATION:10 |
#EXT-X-VERSION:3 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52", \ |
IV=0x9c7db8778570d05c3177c349fd9236aa |
#EXTINF:10.0, |
bumper0.ts |
#EXTINF:8.0, |
bumper1.ts |
#EXT-X-DISCONTINUITY |
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53", \ |
IV=0xc055ee9f6c1eb7aa50bfab02b0814972 |
#EXTINF:10.0, |
movieA.ts |
#EXTINF:10.0, |
movieB.ts |
Альтернативные носители
Новый в iOS 5 поддержка альтернативных носителей. Эта функция позволяет провайдеру указывать один из ряда различных списков воспроизведения как «переопределение» основного представления. Клиент будет только играть носители переопределения (аудио или видео), и подавлять любые носители того же типа от основного представления, если существующий. Это позволяет представлению предлагать многократные версии носителей, не требуя, чтобы провайдер сохранил двойные носители, или требуя, чтобы клиент загрузил все варианты, когда ему только нужен тот. Это также позволяет дополнительным носителям предлагаться впоследствии, не обновляя исходное содержание.
Новое EXT-X-MEDIA тег был определен для различного списка воспроизведения, идентифицирующего группу выбора носителей. Кроме того, два новых атрибута были определены для EXT-X-STREAM-INF тег: AUDIO указывает аудио медиа-группу и VIDEO указывает видео медиа-группу. Они определяют опции носителей, доступные при игре потока.
Каждый элемент в медиа-группе должен иметь подобные характеристики (то же CODECS, та же макс. пропускная способность).
A STREAM-INF вариант может указать, что предлагает выбор аудио (или видео) с AUDIO (или VIDEO) атрибут. Это значение является ID группы, совместно использованным каждым MEDIA тег, который может быть выбран. Если a STREAM-INF тег имеет AUDIO (или VIDEO) атрибут, это должно также иметь a CODECS атрибут.
EXT-X-MEDIA тег может указать, что описанные носители включены в URI из STREAM-INF тег путем исключения URI атрибут.
Если EXT-X-MEDIA AUTOSELECT значение тега атрибута ДА, тогда клиент может принять решение играть эту альтернативу в отсутствие явной пользовательской настройки, потому что это соответствует текущую среду воспроизведения, такую как выбранный системный язык. Его отсутствие указывает неявное значение НЕТ. Этот атрибут является дополнительным. Если EXT-X-MEDIA DEFAULT значение тега атрибута ДА, тогда клиент должен играть эту альтернативу в отсутствие информации от пользователя, указывающего различный выбор. Этот атрибут является дополнительным. Его отсутствие указывает неявное значение НЕТ.
Вот пример различного списка воспроизведения с тремя аудио опциями:
Список воспроизведения Варианта перечисления 10 с тремя аудио опциями.
#EXTM3U |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \ |
DEFAULT=YES,URI="eng/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="fre",NAME="Français",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="fre/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="sp",NAME="Espanol",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="sp/prog_index.m3u8" |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=195023,CODECS="avc1.42e00a,mp4a.40.2",AUDIO="audio" |
lo/prog_index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=591680,CODECS="avc1.42e01e,mp4a.40.2",AUDIO="audio" |
hi/prog_index.m3u8 |
NAME атрибут MEDIA тег должен быть уникальным.
При желании могли быть многократные аудио группы, для разрешения изменений в кодеках или скорости передачи. Однако у каждой аудио группы в варианте должно быть то же самое число альтернатив в ней.
Например, для обеспечения более высокого аудио скорости передачи в вышеупомянутом примере различный список воспроизведения был бы похож на это:
Список воспроизведения Варианта перечисления 11 с тремя аудио опциями и многократными аудио группами.
#EXTM3U |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-lo",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \ |
DEFAULT=YES,URI="englo/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-lo",LANGUAGE="fre",NAME="Français",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="frelo/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-lo",LANGUAGE="sp",NAME="Espanol",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="splo/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-hi",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \ |
DEFAULT=YES,URI="eng/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-hi",LANGUAGE="fre",NAME="Français",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="fre/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-hi",LANGUAGE="sp",NAME="Espanol",AUTOSELECT=YES, \ |
DEFAULT=NO,URI="sp/prog_index.m3u8" |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=195023,CODECS="mp4a.40.5", \ |
AUDIO="audio-lo" |
lo/prog_index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=260000,CODECS="avc1.42e01e,mp4a.40.2", \ |
AUDIO="audio-lo" |
hi/prog_index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=591680,CODECS="mp4a.40.2, avc1.64001e", \ |
AUDIO="audio-hi" |
lo/prog_index.m3u8 |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=650000,CODECS="avc1.42e01e,mp4a.40.2", \ |
AUDIO="audio-hi" |
hi/prog_index.m3u8 |
Обратите внимание на то, что каждый элемент медиа-группы должен быть тиражирован в каждую медиа-группу для того типа среды. Например, Вы не могли не учесть»Espanol«в»audio-hi«группа.
Альтернативное видео может также быть представлено для альтернативных углов. Например, этот различный список воспроизведения описывает единственную скорость передачи с 3 различными углами камеры и единственный аудиопоток:
Список воспроизведения Варианта перечисления 12 с 3 различными углами камеры и единственным аудиопотоком.
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle1",AUTOSELECT=YES,DEFAULT=YES |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle2",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle2/500kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle3",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle3/500kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \ |
DEFAULT=YES,URI="eng/prog_index.m3u8" |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=754857,CODECS="mp4a.40.2,avc1.4d401e", \ |
VIDEO="500kbs",AUDIO="aac" |
Angle1/500kbs/prog_index.m3u8 |
Для создания различной скорости передачи различный видео ID группы был бы необходим для каждой скорости передачи.
Список воспроизведения Варианта перечисления 13 с 3 различными углами камеры и различными скоростями передачи.
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="200kbs",NAME="Angle1",AUTOSELECT=YES,DEFAULT=YES |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="200kbs",NAME="Angle2",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle2/200kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="200kbs",NAME="Angle3",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle3/200kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle1",AUTOSELECT=YES,DEFAULT=YES |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle2",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle2/500kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="500kbs",NAME="Angle3",AUTOSELECT=YES,DEFAULT=NO, \ |
URI="Angle3/500kbs/prog_index.m3u8" |
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \ |
DEFAULT=YES,URI="eng/prog_index.m3u8" |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=300000,CODECS="mp4a.40.2,avc1.4d401e", \ |
VIDEO="200kbs",AUDIO="aac" |
Angle1/200kbs/prog_index.m3u |
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=754857,CODECS="mp4a.40.2,avc1.4d401e", \ |
VIDEO="500kbs",AUDIO="aac" |
Angle1/500kbs/prog_index.m3u8 |
Поддержка диапазона байта сегментов
Как обсуждено в разделе Introduction выше, список воспроизведения предоставляет клиентам URLs файлов участка среды. Каждый носители, которые URL отсылает к медиа-файлу, который является сегментом единственного непрерывного потока. Это означает, есть ли у Вас 700 участков среды в Вашем фильме, у Вас фактически есть 700 файлов на Вашем веб-сервере.
Новый в iOS 5, можно теперь указать участок среды как диапазон байта (поддиапазон) большего URL. Это позволяет Вам консолидировать свои участки среды в большие файлы или единственный большой файл. Основное преимущество этого - когда клиент играет Ваши носители, вместо того, чтобы загрузить каждый последовательный файл сегментов с различного расположения, это фактически идет через больший файл в последовательности.
Это также позволяет серверам кэширования на прокси-сервере получать намного лучшую идею того, какие потребности быть выбранным с упреждением, чтобы гарантировать, что сегмент Вам будет нужно, находится в кэше в то время, когда Вы хотите его. Дополнительная выгода существует гораздо меньше файлов для управления. Если у Вас есть много видео вариантов в длинном фильме, у Вас могут быть тысячи отдельных файлов сегментов. С поддержкой диапазона байта у Вас только есть некоторые.
Существует новый тег EXT-X-BYTERANGE для указания байта располагаются участки среды:
#EXT-X-BYTERANGE: length[@offset]
Это указывает длину диапазона. Это должно также указать смещение, если диапазон байта также сразу не следует от предыдущего byterange.
Вот пример файла списка воспроизведения. Во-первых, старый список воспроизведения стиля показан с 3 сегментами, каждым с его собственным URL (относительный URL):
Перечисление 14 Старый список воспроизведения стиля с 3 сегментами.
#EXTM3U |
#EXT-X-VERSION:3 |
#EXTINF:10.0, |
segment0.ts |
#EXTINF:10.0, |
segment1.ts |
#EXTINF:10.0, |
segment2.ts |
Вот тот же список воспроизведения, переписанный для использования участков среды диапазона байта. Список воспроизведения все еще имеет 3 сегмента, но они теперь располагаются в единственный участок среды media.ts, и тег диапазона байта указывает диапазоны байта, которые фактически занимают сегменты.
Список воспроизведения перечисления 15 с помощью байта располагается участки среды.
#EXTM3U |
#EXT-X-TARGETDURATION:11 |
#EXT-X-MEDIA-SEQUENCE:0 |
#EXT-X-VERSION:4 |
#EXTINF:10.0, |
#EXT-X-BYTERANGE:75232@0 |
media.ts |
#EXTINF:10.0, |
#EXT-X-BYTERANGE:82112@752321 |
media.ts |
#EXTINF:10.0, |
#EXT-X-BYTERANGE:69864 |
media.ts |
Список воспроизведения I-кадра
iOS 5 теперь поддерживает Ускоренную перемотку и Обратное воспроизведение. Однако Вы не должны производить содержание особого назначения для поддержки Ускоренной перемотки и Обратного воспроизведения. Все, что необходимо сделать, указывают, где I-кадры. I-кадры или кадры Intra, являются закодированными видеокадрами, кодирование которых не зависит ни от какого другого кадра. Для указания, где I-кадры iOS 5 представляет новый I-кадр только список воспроизведения.
Новое EXT-X-I-FRAMES-ONLY тег указывает, что каждый участок среды в списке воспроизведения описывает единственный I-кадр.
I-кадр только список воспроизведения почти идентичен регулярному списку воспроизведения. Единственная разница - то, что списки воспроизведения I-кадра не имеют внутренней продолжительности. Они вместо этого представляют момент своевременно. В I-кадре только список воспроизведения с EXT-X-I-FRAMES-ONLY тег, EXTINF продолжительность тега фактически относится к «промежутку» I-кадра. Это - время между временем представления I-кадра в участке среды и время представления следующего I-кадра в списке воспроизведения (или конец представления, если это - последний I-кадр в списке воспроизведения).
EXT-X-BYTERANGE тег должен использоваться для идентификации поддиапазона медиаресурса, содержащего I-кадр.
Вот является пример I-кадра только списком воспроизведения, указывающим I-кадры в segment1.ts и segment2.ts:
Список воспроизведения I-кадра перечисления 16.
#EXTM3U |
#EXT-X-VERSION:4 |
#EXT-X-I-FRAMES-ONLY |
... |
#EXTINF:4.12, |
#EXT-X-BYTERANGE:9400@376 |
segment1.ts |
#EXTINF:3.56, |
#EXT-X-BYTERANGE:7144@47000 |
segment1.ts |
#EXTINF:3.82, |
#EXT-X-BYTERANGE:10340@1880 |
segment2.ts |
Новое EXT-X-I-FRAME-STREAM-INF тег был также определен для идентификации файла списка воспроизведения, содержащего I-кадры мультимедийной презентации.
Его формат:
#EXT-X-I-FRAME-STREAM-INF: <список атрибутов>
EXT-X-I-FRAME-STREAM-INF тег не применяется к детали URI в списке воспроизведения это стоит один.
Все атрибуты, определенные для EXT-X-STREAM-INF тег также определяется для EXT-X-I-FRAME-STREAM-INF тег, за исключением атрибута AUDIO. Кроме того, следующий атрибут определяется:
URI
Значение является заключенной в кавычки строкой, содержащей a URI это идентифицирует файл Списка воспроизведения I-кадра.
Вот файл списка воспроизведения I-кадра в качестве примера, использующий EXT-X-I-FRAME-STREAM-INF тег.
Список воспроизведения I-кадра перечисления 17, использующий EXT-X-I-FRAME-STREAM-INF тег.
#EXTM3U |
#EXT-X-VERSION:4 |
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000,CODECS="avc1.42e00a,mp4a.40.2", \ |
URI="lo/iframes.m3u8" |
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000,CODECS="avc1.42e00a,mp4a.40.2", \ |
URI="mid/iframes.m3u8" |
#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=380000,CODECS="avc1.42e00a,mp4a.40.2", \ |
URI="hi/iframes.m3u8" |
История версии документа
| Дата | Примечания |
|---|---|
| 09.05.2012 | Новый документ, обеспечивающий примеры различных файлов списка воспроизведения для использования с HTTP Живая Потоковая передача. |