Pull to refresh

Comments 14

Вообще-то ffmpeg тоже умеет нарезать hls, это раз. Для тех людей кто впервые столкнулся с этой темой, вы бы хотя бы упомянули, что «HTTP Live Streaming Tools» доступна только попдписке разработчика, это два. Раз уж упомянули в статье прочие техноголиии адаптивного стриминга, было бы не лишним привести таблицу «преимущества/недостатки», это три.
Лучше бы просто перевели «draft-pantos-http-live-streaming-07», а пока ничего нового и большое количество «воды». Слабая статья.
Да я вроде написал и про ffmpeg и про необходимость быть разработчиком iOS/MaxOSX. Про другие технологии напишу еще, этот пост задумывался как первый в серии. Перести стандарт — мысль хорошая, а, кстати, почему вы предложили именно версию 07?
но если данная тема интересна уважаемому сообществу, могу ее продолжить

По крайней мере части сообщества (мне) интересна тема проигрывания файла, который продолжает записываться (stream while growing), могли бы Вы продолжить или посоветовать в этом направлении?
Такой вариант тоже поддерживается, для клиента отличия в m3u8 небольшие:

Во-первых, вместо #EXT-X-PLAYLIST-TYPE:VOD должно быть #EXT-X-PLAYLIST-TYPE:EVENT
После этого клиент будет периодически перезапрашивать плейлист.

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

В третьих, для того, чтобы клиент остановился в конце потока и перестал запрашивать плейлист, нужно при очередной выдаче плейлиста (и увеличенной версии) добавить в конец плейлиста строку #EXT-X-ENDLIST.

Сам m3u8 при этом не обязан содержать все предыдущие сегменты, достаточно перечислить всего несколько предыдущих сегментов. Мои эксперименты показывают, что для Смарт-ТВ от Самсунг например, имеет смысл перечислять не менее трех-четырех сегментов. Для некоторых сайтов телеканалов, которые вещают в HLS, видел 6 сегментов.

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

#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:125
#EXTINF:10,
get_segment.php?no=123
#EXTINF:10,
get_segment.php?no=124
#EXTINF:10,
get_segment.php?no=125

народ подскажите: зачем делить файл на сегменты?
я беру файл целиком mp4 и вещаю его через nginx mp4 модуль, и не вижу никаких проблем.
Для динамической адаптации видеопотока к пропускной способности сети. Собственно говоря об этом в первом предложении сказано.
Насколько я понял из описания модуля, он не дает возможности выбрать какой-то конкретный битрейт в контейнере, только время в потоке.
если файл мультиязыковой и мультибитрейтный, да ещё и с субтитрами, ваш mod_mp4 не справится.
не видел адекватных флеш/хтмл5 плееров для поддержки всего этого счастья.
а с проектом ерливидео знаком- хорошая вешь, только как-то в продакшн у нас не пошла
тем не менее, хорошие плееры есть.

Кто вы такие, мне неизвестно. Практически все, кто ко мне обращаются, успешно запускают проекты.
Можете подсказать плеер, отличный от JWPlayer, который хорошо играет HLS?
Sign up to leave a comment.

Articles