Почему 1hls не работает

Содержание
  1. Проблема первого зрителя, или непростая конвертация WebRTC видеопотоков в HLS
  2. Браузер это не только гипертекст, но и стример
  3. HLS работает там, где не работает WebRTC
  4. Борьба с фризами в нативных плеерах
  5. WebRTC в HLS на CDN
  6. Но не до конца
  7. Итоги
  8. Ссылки
  9. Как заставить играть HLS поток. (Страница 1 из 2)
  10. Сообщений: с 1 по 30 из 48
  11. 1 Тема от Dee_Jay 2018.06.15 01:10:04 (2018.06.15 01:12:06 отредактировано Dee_Jay)
  12. Тема: Как заставить играть HLS поток.
  13. 2 Ответ от tantal 2018.06.15 05:12:05 (2018.06.15 05:22:04 отредактировано tantal)
  14. Re: Как заставить играть HLS поток.
  15. 3 Ответ от Dee_Jay 2018.06.15 07:59:39
  16. Re: Как заставить играть HLS поток.
  17. 4 Ответ от tantal 2018.06.15 13:36:14 (2018.06.15 13:37:57 отредактировано tantal)
  18. Re: Как заставить играть HLS поток.
  19. 5 Ответ от Dee_Jay 2018.06.15 13:43:06
  20. Re: Как заставить играть HLS поток.
  21. 6 Ответ от tantal 2018.06.15 15:03:18 (2018.06.15 18:51:26 отредактировано tantal)
  22. Re: Как заставить играть HLS поток.
  23. 7 Ответ от Dee_Jay 2018.06.15 19:43:53
  24. Re: Как заставить играть HLS поток.
  25. 8 Ответ от tantal 2018.06.15 20:23:09
  26. Re: Как заставить играть HLS поток.
  27. 9 Ответ от Dee_Jay 2018.07.28 17:14:19
  28. Re: Как заставить играть HLS поток.
  29. 10 Ответ от tantal 2018.07.28 17:57:00
  30. Re: Как заставить играть HLS поток.
  31. 11 Ответ от Dee_Jay 2018.07.28 18:01:41
  32. Re: Как заставить играть HLS поток.
  33. 12 Ответ от tantal 2018.07.28 18:27:14 (2018.07.28 18:34:18 отредактировано tantal)
  34. Re: Как заставить играть HLS поток.
  35. 13 Ответ от Dee_Jay 2018.07.28 19:02:00
  36. Re: Как заставить играть HLS поток.
  37. 14 Ответ от tantal 2018.07.28 19:14:31
  38. Re: Как заставить играть HLS поток.
  39. 15 Ответ от Dee_Jay 2018.08.04 13:05:12
  40. Re: Как заставить играть HLS поток.
  41. 16 Ответ от tantal 2018.08.04 19:00:37
  42. Re: Как заставить играть HLS поток.
  43. 17 Ответ от Dee_Jay 2018.08.04 19:04:54
  44. Re: Как заставить играть HLS поток.
  45. 18 Ответ от tantal 2018.08.05 02:05:15
  46. Re: Как заставить играть HLS поток.
  47. 19 Ответ от Dee_Jay 2018.08.27 22:29:13
  48. Re: Как заставить играть HLS поток.
  49. 20 Ответ от aleks123 2018.08.27 23:20:52 (2018.08.27 23:21:14 отредактировано aleks123)
  50. Re: Как заставить играть HLS поток.
  51. 21 Ответ от Dee_Jay 2018.08.27 23:39:09
  52. Re: Как заставить играть HLS поток.
  53. 22 Ответ от Dee_Jay 2018.09.05 22:50:51
  54. Re: Как заставить играть HLS поток.
  55. 23 Ответ от Dee_Jay 2018.09.10 12:31:28
  56. Re: Как заставить играть HLS поток.
  57. 24 Ответ от WendyH 2018.09.10 23:06:58
  58. Re: Как заставить играть HLS поток.
  59. 25 Ответ от Dee_Jay 2018.09.19 23:15:02
  60. Re: Как заставить играть HLS поток.
  61. 26 Ответ от WendyH 2018.09.20 21:47:23
  62. Re: Как заставить играть HLS поток.

Проблема первого зрителя, или непростая конвертация WebRTC видеопотоков в HLS

Егор закрыл крышку ноутбука и потер красные от недосыпа глаза. «Клиенты продолжают жаловаться на зависания стрима, новый пакет исправлений совсем не помог! Что же делать с этим (censored) HLS?» — произнес он в пустоту кабинета.

Браузер это не только гипертекст, но и стример

Плеерами браузеры обзавелись достаточно давно, а вот с энкодером видео и стримингом история другая. Сейчас почти в любом браузере свежей версии можно найти модули энкодинга, стриминга, декодирования и воспроизведения. Эти функции доступны через JavaScript API, а реализация называется Web Real Time Communications или WebRTC. Эта встроенная в браузеры библиотека умеет достаточно много: захват видео с встроенной, виртуальной или USB камеры, компрессия кодеками H.264, VP8, VP9, отправка в сеть по SRTP протоколу, т.е. функционирует как софтверный видеокодер-стример. В итоге видим браузер, у которого под капотом работает что-то похожее на ffmpeg или gstreamer, который хорошо жмет видео, стримит по RTP и играет видеопотоки.

WebRTC дает простор для реализации разнообразных стриминговых кейсов на JavaScript:

  • стримить поток из браузера на сервер для записи и последующей раздачи
  • раздавать потоки peer-to-peer
  • играть поток другого пользователя и отправлять свой (видеочат)
  • конвертировать сервером другие протоколы, например RTMP, RTSP, и т.д., и играть в браузере как WebRTC

Рафинированные скрипты управления потоками могут выглядеть так:

HLS работает там, где не работает WebRTC

WebRTC работает в последних версиях браузеров, однако имеют место два следующих фактора: 1) Не все пользователи своевременно обновляют браузеры и вполне могут сидеть на каком-нибудь Хроме трехлетней выдержки. 2) Чуть ли не раз в неделю выходят обновления и появляются новые браузеры, WebView, а также другие клиенты и мессенджеры, умеющие серфить интернет. Стоит ли говорить, что далеко не во всех из них присутствует поддержка WebRTC, а если и присутствует, то может быть довольно урезанной. Смотрите как дела обстоят сейчас:

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

Изначально HLS не был задуман для потоков реального времени. Действительно, какой может быть видеореалтайм по HTTP? Задача HLS — нарезать видео на кусочки и ровно, не торопясь, доставить их до плеера, путем скачивания одного за другим. HLS плеер ожидает строго сформированного и ровного видеопотока. И здесь возникает конфликт, так как WebRTC напротив, может позволить себе терять пакеты из-за требований реалтайма и низкой задержки и иметь плавающий FPS / GOP и непостоянный битрейт — быть полной противоположностью HLS в плане предсказуемости и размеренности потока.

Очевидный подход — депакетизация WebRTC (SRTP) и последующая конвертация в HLS, может не работать в нативном HLS плеере Apple или работать в непригодном для продакшена виде с фризами. Под нативным плеером здесь понимается плеер, который используется в яблочных iOS Safari, Mac OS Safari, Apple TV.

Поэтому, если вы заметили фриз HLS в нативном плеере, возможно это оно, и источником стрима является WebRTC или другой динамический стрим с неровной разметкой. Кроме этого, в реализации нативных Apple плееров встречается поведение, которое можно понять только опытным путем. Например, сервер должен начать отправку HLS сегментов немедленно, сразу после отдачи m3u8 плейлиста. Промедление в секунду грозит фризом. Если в процессе поменялся конфиг битстрима (что довольно частое явление при WebRTC стриминге), также будет фриз.

Читайте также:  Не все клетки мозга работают

Борьба с фризами в нативных плеерах

Таким образом, прямая и честная депакетизация WebRTC и пакетизация в HLS в общем случае не работает. В сервере потокового видео Web Call Server (WCS) мы решаем проблему двумя способами, а третий предлагаем в качестве альтернативы:

Это наиболее надежный способ, позволяющий выровнять WebRTC поток под требования HLS, выставить нужный GOP, FPS, и т.д. Однако в некоторых случаях транскодирование не является хорошим решением, например транскодирование 4к потоков VR видео — так себе идея. Такие тяжелые потоки транскодировать очень дорого в плане процессорного времени или ресурсов GPU.

2) Адаптации и выравнивание WebRTC потока на лету под требования HLS.

Это специальные парсеры, которые анализируют H.264 битстрим и корректирует его под особенности / баги нативных HLS плееров Apple. Здесь надо признать, что ненативные плееры вроде video.js и hls.js более толерантны к потокам с динамическим битрейтом и FPS коим является WebRTC и не тормозят там, где эталонная по сути реализация Apple HLS встает в вечный фриз.

3) Использовать в качестве источника потока RTMP вместо WebRTC.

Несмотря на то, что флэш отошел от дел, RTMP протокол активно используется для стриминга, взять тот же OBS Studio. И надо признать, что RTMP энкодеры производят в целом более ровные потоки чем WebRTC и поэтому практически не дают фризов в HLS, т.е. Конвертация RTMP > HLS с точки зрения фризов выглядит гораздо более годной в том числе и в нативных HLS плеерах. Поэтому если стриминг осуществляется с десктопа и OBS, то для конвертации в HLS лучше использовать его. Если же источником является Chrome браузер, то RTMP уже воспользоваться не получится без установки плагинов, и здесь только WebRTC.

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

WebRTC в HLS на CDN

Отдельные неприятности могут поджидать в распределенной системе, когда между источником WebRTC потока и HLS плеером находится несколько серверов доставки WebRTC стримов, а именно CDN, в нашем случае на базе WCS сервера. Выглядит это так: есть Origin — сервер, который принимает WebRTC поток, есть Edge — серверы, которые раздают этот поток в том числе и по HLS. Серверов может быть много, что обеспечивает возможность горизонтального масштабирования системы. Например, к одному Origin — серверу можно подключить 1000 HLS серверов, в этом случае емкость системы масштабируется в 1000 раз.

Проблема уже была обозначена немного выше, и возникает эта проблема как правило в нативных плеерах: iOS Safari, Mac OS Safari, Apple TV. Под нативным имеется в виду плеер, который работает с прямым указанием урла плей листа в теге, например . Как только плеер запросил плей-лист, а это действие является фактически первым шагом воспроизведения HLS потока, сервер обязан сразу, без какой-либо задержки, начать отдавать сегменты HLS видео. Если сервер не начинает отдавать сегменты немедленно, плеер решает что его обманули и останавливает воспроизведение. Опять же, такое поведение характерно именно для нативных HLS плееров Apple, но мы не можем сказать пользователям — “не используйте пожалуйста iPhone Mac и Apple TV для воспроизведения HLS потоков”, пользователи не поймут.

Итак, при попытке проиграть HLS стрим на Edge сервере, сервер должен немедленно начать отдачу сегментов, но как он это сделает если по факту стрима у него нет? Действительно, при попытке воспроизведения стрим на этом сервере отсутствует. Логика CDN работает по принципу Lazy Loading — мы не погоним стрим на сервер до тех пор, пока кто-то этот стрим на этом сервере не запросит. Возникает проблема первого подключившегося — первый, кто запросил HLS поток с Edge — сервера и имел неосторожность сделать это с нативного плеера Apple, получит фриз по той причине, что должно пройти какое-то время для того чтобы заказать этот стрим с Origin сервера, получить его на Edge и приступить к HLS нарезке. Даже если это займет три секунды, плеер это не спасет. Он уйдет в фриз.

Здесь снова вырисовываются два решения: одно нормальное, другое — не очень. Можно было бы отказаться от подхода Lazy Loading в CDN и рассылать трафик всем узлам вне зависимости от того, есть там зрители или нет. Решение, возможно пригодное для тех, кто не ограничен в трафике и вычислительных ресурсах. Origin будет гнать трафик на все Edge серверы, в результате все серверы и сеть между ними будут постоянно загружены. Пожалуй эта схема подошла бы только для каких-то специфических решений с малым количеством входящих потоков. При тиражировании большого количества потоков такая схема будет явно неэффективна по ресурсам. И если вспомнить, что мы решаем всего лишь “проблему первого подключившегося из нативного браузера”, то понятно, что оно того не стоит.

Второй вариант более элегантный, но тоже обходной. Мы отдаем первому подключившемуся пользователю видео картинку, но это пока еще не тот стрим, который он желает увидеть — это прелоадер. Так как мы что-то должны отдать уже сейчас и сделать это немедленно, а исходного стрима у нас нет (он еще заказывается и доставляется с Origin-а), мы принимаем решение попросить клиента немного подождать и показать ему видео прелоадера с двигающейся анимацией. Пользователь ждет несколько секунд, прелоадер крутится, и когда доходит реальный стрим, пользователю начинается показ реального стрима. В результате первый пользователь увидел прелоадер, а последующие подключившиеся наконец-то увидели нормальный HLS стрим, пришедший из CDN, работающей по принципу Lazy Loading. Инженерная проблема решена.

Но не до конца

Казалось бы, все работает здорово. CDN функционирует, HLS потоки забираются с краевых серверов Edge и решена проблема первого подключившегося. И здесь появляется еще один подводный камень — мы отдаем прелоадер в фиксированном соотношении сторон 16:9, а в CDN могут входить потоки любых форматов: 16:9, 4:3, 2:1 (VR видео). И это является проблемой, потому что если отдать плееру прелоадер в формате 16:9, а заказанный стрим окажется в формате 4:3, то нативный плеер снова ждет фриз.

Читайте также:  Как настроить телевизор эриссон без пульта старого образца

Поэтому встает новая задача — требуется знать с каким именно соотношением сторон поток входит в CDN и отдавать прелоадер в том же соотношении. Особенностью WebRTC потоков является сохранение соотношения сторон при изменении разрешения и при транскодировании — если браузер решает понизить разрешение, он понижает его в том же соотношении. Если сервер решает транскодировать поток, он сохраняет соотношение сторон в той же пропорции. Поэтому логично, что если мы хотим показать прелоадер для HLS, мы показываем его в том же соотношении сторон, в котором заходит стрим.

CDN работает следующим образом: когда на Origin-сервер заходит трафик, он сообщает остальным серверам в сети, в том числе Edge-серверам о новом потоке. Проблема в том, что в этот момент разрешение исходного потока может быть еще не известно. Разрешение несут конфиги H.264 битстрима вместе с ключевым фреймом. Поэтому может случиться так, что Edge сервер получит информацию что стрим есть, но не будет знать о его разрешении и соотношении сторон, что не позволит ему корректно сгенерировать прелоадер. В связи с этим необходимо сигнализировать о наличии стрима в CDN только при наличии ключевого фрейма — это гарантированно даст Edge-серверу информацию о размерах и позволит сгенерировать корректный прелоадер чтобы предотвратить “проблему первого подключившегося зрителя”.

Итоги

Конвертация WebRTC в HLS в общем случае дает фризы при воспроизведении в нативных плеерах Apple. Проблема решаема анализом и корректировкой битстрима H.264 под требования HLS от Apple либо транскодирования, либо с помощью миграции на RTMP протокол и энкодер в качестве источника потока. В распределенной сети с ленивой загрузкой потоков существует проблема первого подключившегося зрителя, которая решается с помощью прелоадера и определения разрешения на стороне Origin сервера — точки входа потока в CDN.

Ссылки

Воспроизведение WebRTC и RTMP видеопотоков по HLS — Функции сервера по конвертации потоков из различных источников в HLS

Источник

Как заставить играть HLS поток. (Страница 1 из 2)

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений: с 1 по 30 из 48

1 Тема от Dee_Jay 2018.06.15 01:10:04 (2018.06.15 01:12:06 отредактировано Dee_Jay)

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Тема: Как заставить играть HLS поток.

Всем привет!
Имеется сайт http://slotos.eu/channel/jimjam
Снифером можно видеть что поток на канал имеет вот такой вид:

Но данный поток, почему-то не проигрывается ни в каком плеере, даже использование User-Agent не помогает.
Кто может объяснить почему?
Жду ваших ответов.

2 Ответ от tantal 2018.06.15 05:12:05 (2018.06.15 05:22:04 отредактировано tantal)

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

Dee_Jay
запускайте с рефером http://slotos.eu/player
например в SimpleTV так

3 Ответ от Dee_Jay 2018.06.15 07:59:39

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

А как запустить например в VLC?

4 Ответ от tantal 2018.06.15 13:36:14 (2018.06.15 13:37:57 отредактировано tantal)

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

создать например плейлист m3u
с таким содержимым

#EXTM3U
#EXTINF:-1,канал 1
#EXTVLCOPT:http-referrer=http://slotos.eu/player
httр://stream1.slotos.eu.
#EXTINF:-1,канал 2
#EXTVLCOPT:http-referrer=http://slotos.eu/player
httр://stream1.slotos.eu.

5 Ответ от Dee_Jay 2018.06.15 13:43:06

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Пробовал, не работает.
А вы проверяли?

6 Ответ от tantal 2018.06.15 15:03:18 (2018.06.15 18:51:26 отредактировано tantal)

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

наверно еще юзер агент надо )
проверил в 228 https://i.imgur.com/Dg2zwvw.jpg
нормально все работает https://i.imgur.com/V9eSVVG.jpg
вот такой плейлист

7 Ответ от Dee_Jay 2018.06.15 19:43:53

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Пробую в VLC версии 3.0.3 ни в какую не работает, хоть убейте.
А как прописать этот реферер в поток, для воспроизведения на Андроиде?
Основной целью является просмотр на Андроиде, стандартными методами.
Благодарю за ваши всяческие старания и помощь.

8 Ответ от tantal 2018.06.15 20:23:09

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

Основной целью является просмотр на Андроиде, стандартными методами.
.

это на профильном форуме спрашивайте
как открвать ссылку на видео с установленым юзер агентом и рефером
и там на сайте ссылки временные, ваша на jimjam уже не работает
да и не стабильные

9 Ответ от Dee_Jay 2018.07.28 17:14:19

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Скажите пожалуйста, в данном плейлисте,http://strfm.hol.es/strtv.m3u
в конце имеются потоки адреса которых исполнены на javascript, выглядит строка вот так:

Для какого типа воспроизведения оно сделано?

10 Ответ от tantal 2018.07.28 17:57:00

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

11 Ответ от Dee_Jay 2018.07.28 18:01:41

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Проверил, не работает в данном плеере.
А что именно делает данная команда javascript?

12 Ответ от tantal 2018.07.28 18:27:14 (2018.07.28 18:34:18 отредактировано tantal)

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

все работает, используйте версию с сайта
копируете

пкм — управление-открыть ссылку из буфера https://imgur.com/a/w2Wis7w

или загружайте весь плейлист

здесь javascript парсит сайт и дергает ссылку на видеострим
изучайте http://borpas.info/iptvplayer-docs#18

13 Ответ от Dee_Jay 2018.07.28 19:02:00

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Установил последнюю версию и заработало.
А на Андроиде можно воспроизвести?

14 Ответ от tantal 2018.07.28 19:14:31

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

А на Андроиде можно воспроизвести?

плеер под win
для ведра существует же куча всяческого софта. чтоб смотреть тв

15 Ответ от Dee_Jay 2018.08.04 13:05:12

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37
Читайте также:  Монитор не работает принтер

Re: Как заставить играть HLS поток.

Приведите пожалуйста пример скрипта с этого сайта http://topchantv.net/online в меню выбрать канал Top 80s.

16 Ответ от tantal 2018.08.04 19:00:37

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

там все очень плохо с потоками, переодически 403 и рвет соединение
зачем вам нужен геморой?

17 Ответ от Dee_Jay 2018.08.04 19:04:54

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Интересует хитрый просмотр потоков с токенами.

18 Ответ от tantal 2018.08.05 02:05:15

  • tantal
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.08.30
  • Сообщений: 39

Re: Как заставить играть HLS поток.

где вы там токены увидели

19 Ответ от Dee_Jay 2018.08.27 22:29:13

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Вот смотрите, token:

Но данный поток играется и без токена.
Ну это ладно.
А вот как обстоят дела с каналом с этого сайта http://viks.tv/482-m1.html
Как будет выглядеть java script?
Тут поток получается с привязкой к IP и временным ключом.

20 Ответ от aleks123 2018.08.27 23:20:52 (2018.08.27 23:21:14 отредактировано aleks123)

  • aleks123
  • Активный участник
  • Неактивен
  • Зарегистрирован: 2016.01.04
  • Сообщений: 113

Re: Как заставить играть HLS поток.

Можно временный ключ брать с «зеркала» типа http://pokazz.net/391-m1.html вроде ключи на обоих сайтах одинаковые, только на pokazz.net ссылка открыто в коде есть.

21 Ответ от Dee_Jay 2018.08.27 23:39:09

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Не работает.
Как правильно создать java script?

22 Ответ от Dee_Jay 2018.09.05 22:50:51

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Все еще жду ответа.

23 Ответ от Dee_Jay 2018.09.10 12:31:28

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

Прошу вас, помогите пожалуйста в теме.

24 Ответ от WendyH 2018.09.10 23:06:58

  • WendyH
  • Просто участник
  • Неактивен
  • Откуда: Планета Земля
  • Зарегистрирован: 2015.01.09
  • Сообщений: 888

Re: Как заставить играть HLS поток.

Dee_Jay, не знаю насчёт javascript для iptvplayer, но могу предложить другой выход, если хотите смотреть IP TV на планшете/телефоне на Android.
Для этого вам нужно установить VLC for Android на плашет и настроить HMS.

Если ещё нет транскодера ffmpeg, то скачать отсюда и кинуть файл ffmpeg.exe в папку Transcoders, где установлен HMS (C:\Program Files (x86)\Home Media Server\Transcoders). Он в архиве в папке bin. Копировать только один файл.

Загрузить в HMS прикреплённый подкаст slotos.eu_IPTV.zip (можно не распаковывая, HMS умеет загружать zip-ы).

В настройках HMS в разделе «Устройства» настроить доступ для планшета или включить галочки «Разрешить доступ для новых устройств» и «Автоматическое добавление новых устройств».

Зайти на планшете в VLC, в меню «Локальная сеть» и там дождаться отображения сервера HMS. И всё. Можно заходить в раздел «Видео», «Подкасты», в подкаст «slotos.eu (IPTV)» (запустить обновление подкаста для создания категорий каналов) и прям оттуда запускать просмотр каналов.

Некоторые каналы требуют регистрации. Поэтому в настройках самого подкаста (правой кнопкой мышки на подкасте и выбрать «Изменить название (F2)») и в разделе «Подключение» поставить «Авторизация пользователя» в «Включена» и ввести логин и пароль от сайта slotos.eu.

Для меня было приятным удивлением, что последний VLC на Android умеет из коробки работать с DLNA серверами.

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

slotos.eu_IPTV.zip 2.67 kb, скачивалось 216 раз, начиная с 2019.03.25

25 Ответ от Dee_Jay 2018.09.19 23:15:02

  • Dee_Jay
  • Участник
  • Неактивен
  • Зарегистрирован: 2017.11.30
  • Сообщений: 37

Re: Как заставить играть HLS поток.

WendyH, Спасибо что ответили.
Это не то чего я ищу.
Я ищу метод хитрого просмотра каналов идущих с индивидуальным ключом, который предназначен для просмотра исключительно из сайта.
Создав при этом скрипт в виде строки позволяющий запустить поток прямо из плеера.
К примеру выше я давал ссылку на авто-обновляемый плейлист: http://strfm.hol.es/strtv.m3u который содержит в себе такие потоки.
Вот пример такого потока:

Затем стало ясно, что данный поток умеет воспроизводить программа IP-TV Player, http://borpas.info/iptvplayer
Так-же было сказано пользователем tantal:

здесь javascript парсит сайт и дергает ссылку на видеострим
изучайте http://borpas.info/iptvplayer-docs#18

Только вот не удалось понять как правильно формировать этот java script?
Например из сайта http://only-tv.org?
Сначала хочу разобраться с этим, а потом собираюсь искать метод просмотра на Андроид, может потребуется найти программиста.
Но, для начала жду вашего ответа.

26 Ответ от WendyH 2018.09.20 21:47:23

  • WendyH
  • Просто участник
  • Неактивен
  • Откуда: Планета Земля
  • Зарегистрирован: 2015.01.09
  • Сообщений: 888

Re: Как заставить играть HLS поток.

Dee_Jay, как я понял, вам нужно уже готовый плейлист с готовыми полученными токенами в ссылках?
Мой подкаст — это прежде всего скрипт, который как раз при начале воспроизведения получает актуальную ссылку на поток.

В случае с javascript в плейлистах, то это будет работать только в IP-TV плеере. Да и с таких ресурсов как only-tv.org такой скрипт в одну строку трудно написать, там всё зашифровано.
И ещё одна трудность — многие такие ссылки даже с токеном требуют, чтобы в заголовках также указывался referer сайта, с которого была получена такая ссылка.

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

Для начала, нужно найти сайт, на котором подслушать ссылку плейлиста и вставить её для проверки в VLC. Если она там будет играть, то, как вариант, можно написать скрипт для HMS, который будет по расписанию (раз в день или каждые 4 часа там) формировать m3u плейлист выдёргивая ссылки с сайта и записывать его в файл в какой-нибудь локальный каталог. Этот каталог расшарить и опять же, по сети в VLC с андроида заходить в сеть в этот каталог и открывать этот плейлист.

Источник

Оцените статью