AlexELEC-3.1.2 (Amlogic S805/812/905/912)

Системы для Amlogic S805, S812, S905/S905X/905D/905W и S912.

Основные ПО:​

  • Ядро Linux-3.14.29 из проекта «OSMC» (S905/912)
  • Ядро Linux-3.10.108 (S805/812)
  • Kodi 18.3 Final git: 04d7009
  • TVIP 3.8.25 (S805/812)
  • VLC 3.0.6
  • FFmpeg 4.0.4-Leia-18.4
  • Tvheadend v4.3-1804 & Tvheadend v4.2.8-31
  • AceStream 3.1.48
  • AceProxy (HTTPAceProxy) git: 0701395
  • TorrServer 1.0.65
  • Пазл-ТВ сервер 3.9.1 & Сервис проверки каналов AceStream
  • Youtube-dl v2019.07.14
  • Tvheadend HTSP Client AE 5.4.18
  • PVR IPTV Simple Client AE 4.5.8
  • Скин Arctic: Zephyr AE 2.3.21
  • Скин Aeon Nox: SiLVO AE 6.2.2
  • Аддон Keyboard Layout 1.0.0
  • Аддон TVIP shutdown timer 1.0

В основном, это обновление системы специально готовилось под выход «Пазл-ТВ» версии 3.9.1. Цель была – сделать максимально комфортным просмотр «Acestream LIVE» (Торрент-ТВ) потоков в «KODI», достичь уровня «TVIP» который намного лучше работает с такими потоками. Как вы знаете в системах для S905/912 — «TVIP» нет, он есть только в системах для Amlogic S805/812.

Считаю, что цель достигнута. До «TVIP» немного не дотягивает, но очень близко. Думаю, лучше уже не получиться, по крайней мере с Kodi-18 (Leia).

Так как в сервере «Пазл-ТВ» произошло много видимых и невидимых изменений – это требует отдельных пояснений.

 

 

Пазл-ТВ версия: 3.9.1

*Внимание: Пазл-ТВ 3.9.1 не будет корректно работать с версией AlexELEC ниже 3.1.2. Если Вы обновите Пазл (до 3.9.1) на более старой версии AlexELEC – некоторые функции (например, транскодинг) не будут работать совсем, некоторые частично или с ошибками.

Начнем с видимых изменений. Добавлены опции:

  • Добавлять в BlackList нерабочие ссылки
  • Отключить проверку потоков AceStream

и HTTP-источник «ipnet.ua» (предоставляет около 30 украинских каналов, стабильно и в неплохом качестве).

«Отключить проверку потоков AceStream» — означает, что потоки Торрент-ТВ не будут проверятся на «статус» и «количество пиров» перед тем как Пазл отдаст их плееру. Если включено — делается проверка только того, что поток существует (запрос к движку AceStream – движок сказал: «ОК»). Это ускоряет переключение каналов где у Пазла всего одна ссылка на AceStream-поток, но может значительно замедлять включение канала, у которого больше одной ссылки и в первых рядах попались не рабочие.

«Добавлять в BlackList нерабочие ссылки» — если ссылку на поток (из набора ссылок канала) Пазл посчитает нерабочей она автоматически будет отключена. В веб-интерфейсе отключенная ссылка выглядит так:

Включая эту опцию Вы должны понимать, что ссылки на Торрент-ТВ потоки могут отключаться «ошибочно». Все зависит от работы «главных» серверов AceStream. Бывает, что движок с первого (второго, третьего…) раза не получает ответ по запросу на поток. Или в процессе проигрывания потока произошёл обрыв, даже, не связанный с движком, и по таймауту сработало переключение на следующий в списке поток. В любом из таких случаев «Пазл» посчитает поток нерабочим и отключит его (добавит в Черный список).

Для быстрой очистки «Черного списка», если Вы включили «Добавлять в BlackList нерабочие ссылки», можно воспользоваться функцией «Очистить черный список» в настройках системы.

Список будет очищен, а «Пазл» перезапущен.

Еще один видимый элемент. Если «Пазл» не нашел рабочих ссылок в канале он проиграет такой ролик:

Это сделано для того чтобы хоть как-то понимать, что происходит. Думаю, это лучше, чем просто черный экран, особенно в «Kodi». Из-за особенностей реализации плеера в «Kodi», если не изменить настройки потока в «Tvheadend» по умолчанию, можно бесконечно наблюдать «Черный экран» когда поток отсутствует, не понимая: «происходит что-то или нет?».

Здесь немного отвлечемся от «Пазла» и поговорим о настройках «Tvheadend» когда он работает в связке «Пазл + Tvheadend + Kodi».

Я уже упоминал, что при создании «сети» для Пазла (или для любого другого списка IPTV) нужно чтобы имя этой сети начиналось со слова «IPTV».

В этом случае, если по какой-то причине «Tvheadend» не смог открыть поток с первого раза (такое не редко случается с IPTV) он будет продолжать попытки до бесконечности (через промежутки, заданные параметром «Maximum timeout») пока Вы не остановите или не переключите канал. В противном случае эти попытки подписаться на канал (Subscription) ограничатся двумя запросами в «Tvheadend 4.3» и одним в «Tvheadend 4.2».

Вторая важная настройка для «Kodi». Плеер в «Kodi» сделан так, что, если поток не идет, но соединение с сервером не прервано – он будет ждать этот поток вечно. Это хорошо в других случаях, но не очень для IPTV. Проблема решается на стороне «Tvheadend» настройкой опции «Data timeout» (так как мы подключаемся к Tvheadend клиентом PVR HTSP — нас интересует профиль «htsp»). По умолчанию там «0» (что равно «бесконечность»), то есть, соединение не рвется если данные в потоке отсутствуют.

Если Вы зададите значение как в примере — 5 секунд, то при отсутствии данных в потоке в течении 5 секунд «Tvheadend» сбросит соединение и снова попытается подключиться.

Эта настройка актуальна именно для «Kodi», в «TVIP» плеер сбрасывает поток и подключается сам.

То, что остается «за кадром» …

Транскодинг.

Я уже упоминал, что «Kodi» не любит воспроизводить каналы для взрослых с сервера «hochu.tv (18+)», хотя другие плееры (тот же TVIP) воспроизводят их без проблем. Путем экспериментов выяснилось, что, если поток перекодировать в MPEG-2, эти каналы работают без проблем, и в «Kodi», и в «TVIP».

Перекодировка делается «на лету» и как Вы понимаете ест не мало ресурсов процессора, но не настолько чтобы нельзя было комфортно смотреть и при этом «бродить» по интерфейсу «Kodi».

Для приставок на Amlogic S812, S905, S905X, S905D и особенно S912 (с восемью ядрами) – перекодировка не представляет труда.

Для Amlogic S805 и S905W – это может стать затруднительно. Чтобы уменьшить нагрузку для этих процессоров нужно в файле «/storage/.config/ptv3/tvh/stream-tvh.conf» установить значение переменной:

FF_TRANSCODE = «low»

Это приведёт картинку из HD в SD-формат, но качество останется не плохое.

Каналы, которые Вы хотите подвергнуть перекодировке нужно вписать в файл «/storage/.config/ptv3/tvh/tvh-transcode.list». Нужные строки Вы можете просто скопировать и вставить из файла «/storage/.config/ptv3/tvh/tvh-channels.list» в котором содержаться все каналы. При редактировании «tvh-transcode.list» не нужно перезагружать «Пазл» или «Tvheadend» — каналы подхватываются «на ходу».

О том, как работает «Пазл».

Для понимания как «Пазл» управляет ссылками и пока я не забыл, что я там понаписал — попробую немного объяснить, как оно работает. Возможно это кому-то пригодится для решения проблем.

Будем исходить из того, что настройки сделаны как на картинке веб-интерфейса выше.

У источника «AE AceStream плейлист — [AlexELEC]» (Торрент-ТВ) приоритет выше чем у «viks.tv/vkluchi.tv», соответственно потоки AceStream «Пазл» будет пытаться отдать первыми (если они есть). Дело в том, что качество и стабильность потоков AceStream в большинстве случаев намного выше чем у других источников, поэтому и приоритет для AceStream я ставлю выше.

Запустим канал «История» и посмотрим лог. Я запускаю Пазл в консоли, для наглядности. Лог Вы можете найти в «/var/log/puzzle.log» или веб-интерфейсе.

Как Вы видите у канала есть пять ссылок на потоки (каналов с одной ссылкой в моем списке меньшинство): три AceStream (alexelec:***) и две HTTP (viks.tv/vkluchi.tv).

Сначала «Пазл» проверяет AceStream потоки (у них приоритет) и, если находит тот где больше «пиров» — отдает на него ссылку. В нашем случае третий по счету поток AceStream имел право на жизнь.

Если бы и в этом потоке значение «acestream peers» равнялось нулю, но «acestream status» по-прежнему оставался «dl» (то есть поток отдается, а не «prebuf» что означало бы буферизацию), «Пазл» все равно отдал бы этот поток (так как он последний из ace-потоков). До HTTP-потоков очередь бы дошла, если последний ace-поток оказался бы не рабочим (в состоянии «prebuf» или движок не смог ответить на запрос, или…).

Это краткое изложение. Цепочку можно продолжать еще долго… начиная со слов «если бы». Там достаточно много вариантов развития событий и я уже многие не помню без заглядывания в исходники.

Скажу только, что если бы последняя ссылка оказалась «мертвой», то «Пазл» проиграл бы ролик, о котором говорилось выше, а потом запустил бы все с начала, но уже не взирая на то, есть ли у ace-потоков пиры или нет.

В нашем случает «пиры» были и канал заработал.

Как только «Пазл» отдал рабочую (по его мнению) ссылку, эта самая ссылка попадает во внутреннюю базу «приоритетных» ссылок (имеется ввиду только ссылки источника «AE AceStream плейлист — [AlexELEC]», ни какие другие). При следующем включении этого канала «приоритетная» ссылка будет использована первой, что значительно уменьшит время до появления картинки. Выглядит это так:

Если эта ссылка окажется недостаточно хорошей (например: acestream peers = 0) или нерабочей – она будет удалена из базы «приоритетных» ссылок, и «Пазл» начнет перебирать все остальные.

Дамп базы «приоритетных» ссылок сбрасывается в файл (/storage/.config/ptv3/user/PrivDB.py) каждые 10 минут и при следующем запуске «Пазла» читается из него.

И последнее. Когда Вы видите на экране ролик «Пазла» о том, что он не может воспроизвести поток – происходит следующее: ролик играет 8 секунд, дальше, по таймаутам, Tvheadend переподключается к Пазлу. Тот в свою очередь пытается найти рабочую ссылку в канале и, если находит, Вы видите картинку. Если нет – снова будет проигрываться ролик. И так по кругу…

Реклама




Май 2021
Пн Вт Ср Чт Пт Сб Вс
 12
3456789
10111213141516
17181920212223
24252627282930
31