EnglishEnglish RussianРусский SpanishEspañol

HLS-Proxy - это серверное приложение для загрузки IPTV-потоков в формате HLS (Apple HTTP Live Streaming) и кеширования для вашего IPTV-плеера со значительным уменьшением вероятности обрыва и буферизации.

Установка и настройка HLS-Proxy Видео на YouTube

  • Распаковываем архив с прокси в отдельную папку.
  • Теперь нужно настроить http порт.

    По умолчанию, HLS-Proxy использует HTTP порт 80.
    Можно изменить порт указывая его как параметр командной строки -port port_number.
    Пример:

    ./hls-proxy -port 8080

    Чтобы сохранить это в настройках добавьте параметр -save

    ./hls-proxy -port 8080 -save

    Чтобы получить информацию о всех параметрах командной строки:

    ./hls-proxy -help

  • Если вы - пользователь Linux:
    • Используйте установочный скрипт:

      ./install.sh

      Скрипт использует утилиту systemctl (systemd) чтобы запускать прокси как сервис при загрузке.
      Если вы под chroot: скрипт работать не будет. Вместо него добавьте строку запуска в /etc/rc.local

      sudo -H -u <user> <hls-proxy path>/hls-proxy &

      Где:
      <user>: Имя пользователя под которым вы залогинились
      <hls-proxy path>: папка, где находится прокси

      Очень важно!!! Пользователи Ubuntu 16 не могут использовать порт 80.

    • Или запускайте HLS-Proxy вручную.
      Не забудьте в этом случае дать права на запуск:

      chmod 755 ./hls-proxy

  • После запуска доступны следующие ссылки для настройки и использования:

    • http://hls_proxy_ip/ - Для IPTV-плеера это ссылка на плейлист. Для браузера - это главная страница прокси с каналами, телегидом.
      Также эта html страница доступна по адресу /channels
    • http://hls_proxy_ip/status - Страница состояния прокси.
    • http://hls_proxy_ip/config - Страница настройки прокси. Изменения сохраняются в файл local.json.
    • http://hls_proxy_ip/epg (или /epg.xml.gz) - Ссылка на телегид для IPTV-плееров в формате xml.gz
      Вторая ссылка настраиваемая из конфига параметром epgUrlForClient
      Несжатый телегид доступен по тем же ссылкам без указания.gz
    • http://hls_proxy_ip/m3u8 (или /playlist.m3u8)- Если главная страница (/) в плеере не открывается, можно использовать эту ссылку в качестве плейлиста. Perfect Player для Windows не поддерживается.
      Вторая ссылка в скобках настраивается из конфига параметром playlistPath
    • http://hls_proxy_ip/rec (или /recordings.m3u8) - Ссылка на плейлист записанных программ.

    Вместо hls_proxy_ip используйте любой локальный адрес компьютера или имя хоста где запущен прокси.

    Если прокси выдает ошибку при старте "Cant start server: listen EADDRINUSE: address already in use"

    означает, что http порт, который указан в конфигурации (или 80 по умолчанию) используется другим приложением. Измените порт из командной строки.

    Прокси должен быть доступен по ссылке http://hls_proxy_ip:port/
    Чтобы сохранить порт в конфигурации откройте http://hls_proxy_ip:port/config и нажмите "Сохранить"
    или укажите параметр -save в командно

Настройка плейлиста

Самый важный пункт настройки прокси - указание источника плейлиста (или нескольких) или где брать каналы.
Если прокси уже запущен, открываем веб-страницу /config и в поле "URL" пункта "Источники плейлистов" заносим ссылку на плейлист. Нажимаем кнопку "Сохранить".
Ждём несколько секунд пока загрузится плейлист и... всё.
Открывая главную страницу / вы должны видеть сгруппированый список каналов.

Особенности конфигурирования.

Прокси хранит настройки в файлах типа json.
Главный файл конфигурации - default.json. Его лучше руками не трогать, пусть живет. Конфигуратор прокси сохраняет изменения конфигурации в дополнительном файле local.json.
Именно он отражает реальное отличие настроек по-умолчанию от ваших индивидуальных. В файле local.json хранятся значения, отличные от значений по-умолчанию.

Разное.

Детальное описание каждой из настроек смотрите на странице /config

Обратите внимание, что ТВ-программа недоступна несколько минут при самом первом запуске сервера, так как сначала она загружается из интернета.

Пароль администратора и управление пользователями.

По умолчанию, HLS-Proxy не защищен паролем. Это нововведение доступно с версии 6.
Для того, чтобы установить пароль и защитить данные нужно открыть страницу настройки /config и внести пароль в секции SERVER.
Сохраните настройки и перезагрузите их со страницы состояния
После этого вы должны увидеть страницу авторизации. Введите "admin" как имя пользователя и пароль, чтобы войти в систему.

Авторизованный пользователь имеет доступ ко всем страницам как и раньше
Чтобы обеспечить доступ с других устройств нужно добавить пользователей и провести процедуру привязки. Прокрутите вниз к секции "Клиенты" и добавьте нового пользователя с паролем.
Два возможных варианта на выбор: либо скопировать ссылку на плейлист и занести ее на устройстве.
Либо ввести ссылку с вводом кода. Шестизначный код вводится в браузер на привязываемом устройстве.
Это позволит открыть окно с полной ссылкой на плейлист и возможностью ее копирования в буфер обмена.
С версии 8.4.5 плейлист доступен по имени пользователя и паролю. Просто добавьте ?username=[username]&password=[password] вместо токена в ссылку на плейлист.

MPEG-TS формат потока для клиента

Добавьте output=ts в качестве параметра в ссылку на плейлист или на поток

Пример: http://localhost/?output=ts

VOD на HLS-Proxy

Преобразовать видео используя ffmpeg:

ffmpeg -i input.mkv -start_number 0 -hls_time 10 -hls_list_size 0 -hls_flags single_file -c copy -hls_segment_type mpegts -hls_allow_cache 0 index.m3u8

index.m3u8 и index.ts положить в папку по пути

HLS-PROXY-DIR/recordings/VOD/VIDEO

В плеере ввести адрес плейлиста:

http://hls-proxy-address/rec

Новое видео класть по пути

/recordings/VOD/VIDEO1

VOD - будет названием группы в плейлисте

VIDEO - будет названием потока

Папки внутри recordings могут иметь любое название

Работает с версии 8.0.0

Настройка HTTP proxy для обхождения файрвола

Следующие переменные окружения используются HLS Proxy для указания HTTP proxy

  • HTTP_PROXY / http_proxy
  • HTTPS_PROXY / https_proxy
  • NO_PROXY / no_proxy

Когда HTTP_PROXY / http_proxy указан, он будет использован для запросов non-SSL. Для SSL-запросов будет использоваться HTTPS_PROXY /https_proxy

HLS Proxy также использует NO_PROXY/no_proxy для адресов, для которых прокси не должен использоваться. Список хостов разделяется запятыми. Можно указывать и номер порта. И, переменная может быть установлена в *. В этом случае прокси не используется.

Несколько примеров использования значений переменной no_proxy:

  • google.com - не использовать прокси для HTTP/HTTPS запросов к Google.
  • google.com:443 - не использовать прокси для HTTPS запросов к Google, но использовать для HTTP запросов к Google.
  • google.com:443, yahoo.com:80 - исключить HTTPS запросы к Google, и HTTP запросы к Yahoo!
  • * - игнорировать переменные https_proxy/http_proxy.