Установка и настройка aceproxy для трансляции пирингового (p2p) телевидения с компьютера на Смарт ТВ

Jan 26, 2018 22:11

aceproxy - HTTP-прокси для Ace Stream, созданный на Python. Ace Stream позволяет смотреть пиринговое онлайн телевидение и видео по запросу (в том числе с торрентов, не скачивая их) на компьютере или мобильном устройстве. aceproxy уже позволяет смотреть это видео со Смарт ТВ при помощи, например, OTT Player. Последний доступен, например, на умных телевизорах Samsung, используют ли они операционную систему Linux или Tizen. Всё, что нужно OTT Player - это плейлист с ТВ каналами, в котором указывается IP адрес вашего компьютера (или даже ТВ приставки), а также номер порта, по которым OTT Player будет обращаться.

Установка aceproxy возможна и в Windows, и в Linux. Последний вариант полегче, его и рассмотрим далее.

Перед установкой aceproxy, нужно установить Ace Stream Engine. Всё это можно сделать и в Windows, и в Linux, но в последнем случае у меня получилось всё настроить намного быстрее (на Ubuntu 17.10).

Существует несколько версий aceproxy:Сколько я не мучился с первыми двумя, ничего так и не заработало. К тому же приходилось даже заменять устаревший код в двух местах, мучиться с зависимостями со старым софтом. HTTPAceProxy от pepsik-kiev в этом плане показал себя намного лучше.

Для начала поставим зависимости:
sudo apt-get install python-gevent git python-psutil python-pkg-resources

Клонируем себе обновляемый код из репозитория HTTPAceProxy от pepsik-kiev:
cd /opt
git clone https://github.com/pepsik-kiev/HTTPAceProxy/

Далее редактируем настройки в /opt/HTTPAceProxy/aceconfig.py:
  • acespawn = True - автоматически запускаем Ace Stream Engine при запуске aceproxy
  • --live-buffer для онлайн каналов можно присвоить значение 50 (при 25, установленных по умолчанию, у меня появлялась постоянна буферизация, так что смотреть было практически невозможно)
  • --live-cache-type memory - храним кэш в ОЗУ, а не на диске
  • --log-debug 0 - чтобы лишний логи не писались (особенно актуально при наличии SSD)
В результате в aceconfig.py должны появиться следующие изменения:
acespawn = True

acecmd = "/opt/acestream/acestreamengine --client-console \
--live-cache-type memory \
--live-mem-cache-size 209715200 \
--upload-limit 0 \
--live-buffer 70 \
--vod-buffer 300 \
--log-debug 0"

Также в Output format (Live) и (VOD) для предотвращения буферизации может понадобиться изменить настройки на original, auto, HTTP или HLS. В каждом случае это индивидуально.

Для запуска aceproxy нужно выполнить следующую команду:
python /opt/HTTPAceProxy/acehttp.py

Убедитесь, что прокси успешно стартует, ошибок (error) не возникает.

При этом в терминале можно увидеть как IP адрес компьютера, так и используемый порт. Именно эти данные понадобятся далее для создания плейлиста. Если обратиться по тому же IP адресу, но использовать другой порт, то умный телевизор с OTT Player ничего не покажет. Также проблема может возникать, если на роутере не проброшен порт.
Если порт занят или вы хотите его изменить по какой-то другой причине, то в aceconfig.py отредактируйте следующие строчки:
# HTTP Server port
httpport = 8000

В общем-то на этом можно остановиться. Но удобнее конечно добавить автоматический запуск acestreamengine и aceproxy, чтобы не делать это вручную после перезапуска компьютера.
Устанавливаем supervisor
sudo apt-get install supervisor

Редактируем настройки /etc/supervisor/conf.d/supervisord.conf:

[supervisord]
nodaemon=true

[program:acestream]
command=/opt/acestream/acestreamengine --client-console --live-cache-type memory --live-mem-cache-size 209715200 --upload-limit 0 --live-buffer 70 --vod-buffer 300 --log-debug 0 $
directory=/opt/acestream/
stdout_logfile=/var/log/supervisor/acestream.log
stderr_logfile=/var/log/supervisor/acestream.log
priority=999
startsecs=5
autostart=true

[program:acehttp]
command=python /opt/HTTPAceProxy/acehttp.py
directory=/opt/HTTPAceProxy/
stdout_logfile=/var/log/supervisor/acehttp.log
stderr_logfile=/var/log/supervisor/acehttp.log
startsecs=30
priority=1
autostart=true
autorestart=true

Задействуем supervisor
systemctl enable supervisor

Запускаем
systemctl start supervisor

Проверяем статус
service supervisor status

Если всё в порядке, то увидим что-то вроде
янв 26 21:03:37 athunder-PC systemd[1]: Started Supervisor process control system for UNIX.
янв 26 21:03:38 athunder-PC supervisord[802]: 2018-01-26 21:03:38,768 CRIT Supervisor running as root (no use
янв 26 21:03:38 athunder-PC supervisord[802]: 2018-01-26 21:03:38,769 INFO Included extra file "/etc/supervis
янв 26 21:03:38 athunder-PC supervisord[802]: 2018-01-26 21:03:38,786 INFO RPC interface 'supervisor' initial
янв 26 21:03:38 athunder-PC supervisord[802]: 2018-01-26 21:03:38,786 CRIT Server 'unix_http_server' running
янв 26 21:03:38 athunder-PC supervisord[802]: 2018-01-26 21:03:38,786 INFO supervisord started with pid 802
янв 26 21:03:39 athunder-PC supervisord[802]: 2018-01-26 21:03:39,789 INFO spawned: 'acehttp' with pid 949
янв 26 21:03:39 athunder-PC supervisord[802]: 2018-01-26 21:03:39,793 INFO spawned: 'acestream' with pid 950
янв 26 21:03:45 athunder-PC supervisord[802]: 2018-01-26 21:03:45,066 INFO success: acestream entered RUNNING
янв 26 21:04:10 athunder-PC supervisord[802]: 2018-01-26 21:04:10,346 INFO success: acehttp entered RUNNING

Перегружаем компьютер и переходим к поиску и настройке плейлистов для OTT Player.

В таком варианте aceproxy спокойно раздавал параллельно 2 онлайн ТВ канала на умные телевизоры в локальной сети, причём даже при использовании старенького компьютера с процессором core 2 duo e6300. При этом совершенно не важно, один и тот же канал вы смотрите или два различных. Кстати, поскольку это пиринговое онлайн ТВ и требуется буферизация онлайн потока Ace Stream, то при просмотре одного и того же канала в локальной сети на разных устройствах, видео на них воспроизводится не синхронно (т.е. вы можете спокойно смотреть один и тот же канал в разных комнатах, но при этом на одном из устройств может быть значительная задержка с началом воспроизведения того же контента).

Единственный недостаток такого решения - необходимость наличия компьютера или другого устройства, на котором будет работать aceproxy. Если компьютер слабый, а вы параллельно будете на нём работать, то это может сказаться на качестве воспроизведения видео на Смарт ТВ.

Свой proxy присутствует и в самом в acestream версии 3.1+. Но в данный момент идёт его тестирование, а разработчики планируют сделать его платным в будущем. Так что aceproxy от ValdikSS и его ответвления от AndreyPavlenko pepsik-kiev - это отличные бесплатные альтернативы. Кроме того, proxy от acestream у меня нормально так и не заработал, тогда aceproxy удалось успешно настроить для просмотра пирингового ТВ на основе Ace Stream.

В Ubuntu 18.04 и 18.10 acestream уже не установился из репозитория (такой вариант доступен до Убунту 16.04, хотя также работает и в 17.10).

acestream можно поставить при помощи snap:
sudo snap install acestreamplayer

Далее попробовал изменить путь к AceStream Engine в двух конфигурационных файлах:
/opt/HTTPAceProxy/aceconfig.py:

acecmd = "/snap/bin/acestreamplayer.engine --client-console \
--live-cache-type memory \
--live-mem-cache-size 209715200 \
--upload-limit 0 \
--live-buffer 70 \
--vod-buffer 300 \
--log-debug 0"

/etc/supervisor/conf.d/supervisord.conf:
[supervisord]
nodaemon=true

[program:acestream]
command=/snap/bin/acestreamplayer.engine --client-console --live-cache-type memory --live-mem-cache-size 209715200 --upload-limit 0 --live-buffer 70 --vod-buffer 300 --log-debug 0 $
directory=/snap/bin/acestreamplayer.engine/current/
stdout_logfile=/var/log/supervisor/acestream.log
stderr_logfile=/var/log/supervisor/acestream.log
priority=999
startsecs=5
autostart=true

[program:acehttp]
command=python /opt/HTTPAceProxy/acehttp.py
directory=/opt/HTTPAceProxy/
stdout_logfile=/var/log/supervisor/acehttp.log
stderr_logfile=/var/log/supervisor/acehttp.log
startsecs=30
priority=1
autostart=true
autorestart=true

Но результата пока не добился. В отличии от Ubuntu 17.10, в 18.04и 18.10 не могу найти ошибку.

via

онлайн ТВ, p2p, ace stream, torrent, iptv, Смарт ТВ, smart tv, телевидение

Previous post Next post
Up