skarxxl написал:
maxim, вам уже говорили, что m3u8 - это плейлист, а не поток
для HLS действительно в качестве источника указывается m3u8, но это связанно с самим принципом вещания HLS
Постами ввыше я сам писал что м3у8 это плей лист, какой принцип вещания hls тоже ссылку выкладывал. непонятно почему влс не может вещать.
Поддержка m3u8 потоков | -
Некоторые плейлисты содержат ссылки на потоки с расширением m3u8:
Code: Select all
#EXTM3U
#EXTINF:-1,Viasat History
http://tv.i-ghost.net/stream/asdf/101.m3u8Эти потоки идут в стандарте HTTP Live Streaming ( HLS ). Asus O!Play напрямую их не поддерживает, но модуль умеет преобразовывать такие потоки в поддерживаемый формат. Если поток передаётся без шифрования - скорее всего он будет работать ( с версии 1.5).
= Технические детали =========
При вещании по стандарту HLS в основном m3u файле вместо ссылок на потоки стоят ссылки на m3u8 файлы(формат - m3u), которые формируются динамически и содержат HTTP ссылки на короткие фрагменты видео. По идее, плейер должен сыграть все фрагменты, запросить новый лист и играть дальше.
Code: Select all
#EXTM3U
#EXTINF:0,TV 1000 Action
http://50.7.129.202/stream/TEST/100.m3u8#EXTINF:0,Viasat History
http://50.7.129.202/stream/TEST/101.m3u8#EXTINF:0,Viasat Sport East
http://50.7.129.202/stream/TEST/102.m3u8Asus O!Play скачивает лист один раз, играет все фрагменты и останавливается, так как он такого стандарта не знает.
Если попробовать скачать m3u8 файл, там будет следующее:
Code: Select all
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:29768
#EXT-X-TARGETDURATION:6
#EXTINF:5.360,
100-29768.ts
#EXTINF:5.040,
TEST/100-29769.ts
#EXTINF:5.440,
100-29770.ts
#EXTINF:5.400,
100-29771.ts
#EXTINF:5.040,
100-29772.ts
#EXTINF:5.680,
100-29773.ts
(каждый раз будет отдаваться новый плейлист ).
Мы не можем заставить плейер перечитывать лист заново (будут неприемлемые паузы), но очевидно, что имена файлов ( ссылки на фрагменты ) формируются увеличением номера. Хак состоит в следующем: можно просто скачать m3u8 и добавить в него ещё 1000 ссылок с увеличенными номерами. Тогда плейер будет думать, что это обычный плейлист и будет играть, пока список не закончится ( при фрагментах 5 сек это где-то 1,5 часа просмотра).
Это не соответствует стандарту, потому что последовательность может оборваться в любой момент, и именно так бывает, если провайдер, например, вставляет рекламу. Но это работает.
Модификацией списка занимается скрипт extendm3u8.php. То есть “правильная” ссылка на поток для O!Play выглядит как:
Code: Select all
http://127.0.0.1/modules/iptvlist/extendm3u8.php?link=http://50.7.129.202/stream/TEST/100.m3u8Модуль сам добавляет вызов php скрипта, если расширение у ссылки на поток содержит m3u8 - плейлисты провайдера менять не нужно.