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 в этом плане показал себя намного лучше.
Для начала поставим зависимости:
Клонируем себе обновляемый код из репозитория HTTPAceProxy от pepsik-kiev:
Далее редактируем настройки в /opt/HTTPAceProxy/aceconfig.py:
Для запуска aceproxy нужно выполнить следующую команду:
Убедитесь, что прокси успешно стартует, ошибок (error) не возникает.
При этом в терминале можно увидеть как IP адрес компьютера, так и используемый порт. Именно эти данные понадобятся далее для создания плейлиста. Если обратиться по тому же IP адресу, но использовать другой порт, то умный телевизор с OTT Player ничего не покажет. Также проблема может возникать, если на роутере не проброшен порт.
В общем-то на этом можно остановиться. Но удобнее конечно добавить автоматический запуск acestreamengine и aceproxy, чтобы не делать это вручную после перезапуска компьютера.
Устанавливаем supervisor
Редактируем настройки /etc/supervisor/conf.d/supervisord.conf:
Задействуем supervisor
Запускаем
Проверяем статус
Если всё в порядке, то увидим что-то вроде
Перегружаем компьютер и переходим к поиску и настройке плейлистов для 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.
Установка aceproxy возможна и в Windows, и в Linux. Последний вариант полегче, его и рассмотрим далее.
Перед установкой aceproxy, нужно установить Ace Stream Engine. Всё это можно сделать и в Windows, и в Linux, но в последнем случае у меня получилось всё настроить намного быстрее (на Ubuntu 17.10).
Существует несколько версий aceproxy:
- https://github.com/ValdikSS/aceproxy
- https://github.com/AndreyPavlenko/aceproxy
- https://github.com/pepsik-kiev/HTTPAceProxy
Сколько я не мучился с первыми двумя, ничего так и не заработало. К тому же приходилось даже заменять устаревший код в двух местах, мучиться с зависимостями со старым софтом. 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/aceproxy.gitДалее редактируем настройки в /opt/HTTPAceProxy/aceconfig.py:
- acespawn = True - автоматически запускаем Ace Stream Engine при запуске aceproxy
- --live-buffer для онлайн каналов можно присвоить значение 50 (при 25 у меня появлялась постоянна буферизация, так что смотреть было неприятно)
- --live-cache-type memory - храним кэш в ОЗУ, а не на диске
- --log-debug 0 - чтобы лишний логи не писались (особенно актуально при наличии SSD)
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/aceproxy/acehttp.pyУбедитесь, что прокси успешно стартует, ошибок (error) не возникает.
При этом в терминале можно увидеть как IP адрес компьютера, так и используемый порт. Именно эти данные понадобятся далее для создания плейлиста. Если обратиться по тому же IP адресу, но использовать другой порт, то умный телевизор с OTT Player ничего не покажет. Также проблема может возникать, если на роутере не проброшен порт.
В общем-то на этом можно остановиться. Но удобнее конечно добавить автоматический запуск 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 alexp-comp systemd[1]: Started Supervisor process control system for UNIX.
янв 26 21:03:38 alexp-comp supervisord[802]: 2018-01-26 21:03:38,768 CRIT Supervisor running as root (no use
янв 26 21:03:38 alexp-comp supervisord[802]: 2018-01-26 21:03:38,769 INFO Included extra file "/etc/supervis
янв 26 21:03:38 alexp-comp supervisord[802]: 2018-01-26 21:03:38,786 INFO RPC interface 'supervisor' initial
янв 26 21:03:38 alexp-comp supervisord[802]: 2018-01-26 21:03:38,786 CRIT Server 'unix_http_server' running
янв 26 21:03:38 alexp-comp supervisord[802]: 2018-01-26 21:03:38,786 INFO supervisord started with pid 802
янв 26 21:03:39 alexp-comp supervisord[802]: 2018-01-26 21:03:39,789 INFO spawned: 'acehttp' with pid 949
янв 26 21:03:39 alexp-comp supervisord[802]: 2018-01-26 21:03:39,793 INFO spawned: 'acestream' with pid 950
янв 26 21:03:45 alexp-comp supervisord[802]: 2018-01-26 21:03:45,066 INFO success: acestream entered RUNNING
янв 26 21:04:10 alexp-comp 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.