Надеюсь это поможет.
список воспроизведения m3u8 позволяет указать несколько потоков. Должно ли каждое разрешение иметь собственный список воспроизведения (с разными исходными потоками и разными битрейтами), или я могу поместить все в один список воспроизведения (чтобы один список воспроизведения мог обслуживать разные разрешения и битрейты).
Для справки, вот «Техническая заметка TN2224» Apple по этому вопросу, которая является хорошим ориентиром для информации ниже. https://developer.apple.com/library/content/technotes/tn2224/_index.html
Краткий ответ: у каждого разрешения должен быть свой плейлист.
Обычно существует один основной список воспроизведения со ссылками на варианты списков воспроизведения (также известные как исполнения). Варианты плейлистов — это потоки одного и того же видео разного качества, с разным битрейтом и разрешением. Но каждый вариант содержит только один уровень битрейта. Пример основного плейлиста:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4648000,RESOLUTION=3840x2160
4648k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2670000,RESOLUTION=1920x1080
2670k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1823000,RESOLUTION=1280x720
1823k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=975000,RESOLUTION=854x480
975k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=491000,RESOLUTION=640x360
491k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=186000,RESOLUTION=256x144
186k/stream.m3u8
«Битрейты указываются в теге EXT-X-STREAM-INF с использованием атрибута BANDWIDTH» (TN2224). И каждый нисходящий уровень пропускной способности (битрейта) имеет соответствующее более низкое разрешение, потому что доступно меньше данных, и обычно ожидается, что они будут просматриваться на небольших мобильных экранах.
Кажется, что настольные компьютеры и самые последние планшеты могут отображать 1280x720, я предполагаю, что можно использовать один и тот же список воспроизведения. Мне просто нужно указать битрейт. Однако какое разрешение является лучшим для мобильных телефонов? Кажется, у каждого устройства есть другие размеры (см. Android здесь).
Разрешение и битрейт идут рука об руку. Поток, закодированный с битрейтом 186K (очень низкий), не имеет достаточно данных для заполнения экрана 1280x720. Но мобильное устройство в сотовой сети может не иметь возможности загрузки с высоким битрейтом. Поэтому вам нужно несколько доступных вариантов вариантов, каждый с соответствующим разрешением и битрейтом.
Не сосредотачивайтесь на конкретном устройстве, иначе вы никогда не закончите. Создайте лестницу вариантов битрейта/разрешения, используя распространенные соотношения сторон 16:9. Например. 1280x720, 1024x576, 640x360,...
Однако есть несколько вещей, которые следует учитывать. Битрейт, разрешение вы уже рассматриваете. Но закодированы ли эти видео с использованием H.264? Если это так, вы должны учитывать уровень профиля. Вот хорошая статья на эту тему: http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=94216&PageNum=1.
![введите описание изображения здесь](https://i.stack.imgur.com/mWmb7.jpg)
Какой битрейт следует использовать для каждого устройства? Я провожу некоторые исследования, но кажется, что в каждой статье есть разные рекомендации для «лучших» настроек, но никогда не объясняю, как они получили эти цифры.
Тот же ответ, что и разрешение. Не сосредотачивайтесь на фактическом устройстве. Создайте лестницу вариантов битрейта/разрешения, которая позволит устройству выбрать наиболее подходящий на основе доступной полосы пропускания, времени автономной работы, вычислительной мощности и т. д.
Если я использую список воспроизведения, содержащий разные источники с разным разрешением, имеет ли значение порядок в списке воспроизведения? Я где-то читал, что первыми должны быть указаны самые низкие битрейты, но относится ли это и к разрешениям? Или плеер автоматически выбирает поток, который лучше всего соответствует экрану?
Каждый издатель или производитель может создавать свой плеер по-разному. Но это то, что рекомендует Apple в TN2224.
«Первая скорость передачи данных должна быть той, которую может поддерживать большинство клиентов. Первая запись в основном списке воспроизведения будет воспроизводиться при запуске потока и использоваться как часть теста для определения того, какой поток является наиболее подходящим. Порядок других потоков не имеет значения. Следовательно, первая скорость передачи данных в списке воспроизведения должна быть такой, которую может поддерживать большинство клиентов».
Надеюсь, это поможет.
Ян
person
iangetz
schedule
31.10.2016