Архип

Ace Stream Media-AVoD(Аудио и Видео по Запросу) и Live Streaming

Recommended Posts

11504766.png.e9949d3382d8263091b5a6fdffcfcd0d.png

logo-text-test.png.4542515584bc418e884f431915071dc1.png

 

версия: 3.1.16, linux, Release Notes:  

- Поддержка мультибитрейтных потоков при адаптивном вещании в HLS
- Включена обработка запроса на пинкод/пароль от внешнего устройства при использование AirCast
- Настройки приложения теперь можно менять с пульта
- Расширен функционал "Engine API", для максимальной совместимости с приложениями, использующими устаревший API
- Автоматическое восстановление соединения для AirPlay и Google Cast.
- В пульте добавлена кнопка "Рестарт", для возможности повторного запуска контента с места остановки.
- Оптимизация HLS
- Устранение артефактов при трансляции по HTTP
- Совместимость со сторонними приложениями, использующими устаревший API
- Добавлены настройки транскодирования аудиодорожек при выдаче потока в HLS

Hide  

 

Краткое описание:
Ace Stream – это медиа-платформа с децентрализованной/распределенной системой поставки и хранения мультимедийных данных, предназначенная для создания интернет-сервисов с функциями AVoD (Аудио и Видео по Запросу) и Live Streaming («живого»/потокового вещания).

Используя функции Ace Stream, вы сможете проигрывать в онлайне видео/аудио контент из P2P –сетей (по протоколу BitTorrent и/или AceStream), в любых удобных вам плеерах и на любых устройствах (SmartTV, ТВ-приставки, iPad, iPhone, и др.), поддерживающих соответствующие кодеки и стандартные форматы вещания (HTTP и/или HLS).

 

Эта Тема переросла из этого топика по причине того что там было решение для просмотра в остовном live-tv b и с помощью ресурса ттв, здесь же пойдёт речь в остовном о самом движке Ace Stream, который претерпел с момента написания той статьи значительные изменения(см. Release Notes)

Сама установка на убунту вкратце есть в вике разработчика здесь.

 

Для пользователей xpenology у которых уже установлена как минимум DSM-5.2, а в идеале и настоятельно рекомендуется DSM-6.1, и у которых архитектура железа x64,

я собрал уже готовое решение которое упаковано в контейнер докера и которое находится здесь.

 

После запуска контейнера на вашем nas-server DSM, потребуется только один раз зайти в контейнер для правки ip вашей сети и записи в кроне для чистки кеша и регулярного обновления плейлистов, дополнительно но не обязательно, можно также занести данные учётки ттв в HTTPAceProxy для воможности просмотра архивов и использования функционала офф. виджета ттв(скрины в спойлере ниже).

виджета ттв только андроид  

Screenshot_20180310-221041.thumb.png.492072718ee3f6fb8eeaf9278c6dc40e.png

Screenshot_20180310-221051.thumb.png.dbf8a8ca81509fd130931fd684361174.png

Screenshot_20180310-221116.thumb.png.4d2646db17b0bc1ff3d40f7d33bf3f0d.png

Screenshot_20180310-221124.thumb.png.be5f4330e44566e95860c594e2b157fd.png

Hide  

 

Edited by Архип
  • Like 3
  • Thanks 3

Share this post


Link to post
Share on other sites

Вообщем после всех именений под себя, будет доступен различный видеоконтет по следующим ссылкам:

  • http://ip:port-HTTPAceProxy/torrenttv                                                            #     весь список 900+ каналов, не требуется учётка/подписка vip ттв
  • http://ip:port-HTTPAceProxy/channels/?type=m3u                                      #     весь список, требуется учётка/подписка vip ттв
  • http://ip:port-HTTPAceProxy/channels/?group=3&type=m3u                    #     список по группам (расшифровка групп: 1-детские; 2-музыка; 3-фильмы; 4-спорт; 5-общие; 6-познавательные; 7-новостные; 8-развлекательные; 9-взрослые; 10-мужские; 11-региональные; 12-религиозные), требуется учётка/подписка vip ттв
  • http://ip:port-HTTPAceProxy/archive/dates/?days=1                                  #  архив за 1 день,    (требуется доустановить ffmpeg), требуется учётка/подписка vip ттв
  • http://ip:port-nginx/aceall.m3u                                                                        #     весь список 900+ каналов, не требуется учётка/подписка vip ттв
  • http://ip:port-nginx/films.m3u                                                                          #   Фильмы по жанрам,  актуальное количество p2p ссылок: 2860, пополняется
  • http://ip:port-HTTPAceProxy/proxyfilms      #   for use with AceProxy as proxy, фильмы средствами HTTPAceProxy, совместимость с  TorrentMonitor (Server)
  • http://ip:port-HTTPAceProxy/films    #   for use with bulit-in AceStream proxy, фильмы средствами HTTPAceProxy, совместимость с  TorrentMonitor (Server)
Edited by Архип
  • Thanks 5

Share this post


Link to post
Share on other sites

Оптимизация и тонкая настройка

 

из коробки сразу доступны логи движка по ссылке при услови что порт для супервизора 9903 проброшен

http://ip::9903/logtail/acestream   # это аналог в терминале tail -f -n 0 /var/log/supervisor/acestream.log

аналогично доступны логи для  HTTPAceProxy, только после правки в HTTPAceProxy/aceconfig.py строчки 140 на:

logfile = "/var/log/supervisor/acehttp.log"

путь для правки

nano /opt/HTTPAceProxy-master/aceconfig.py

 

и тогда

http://ip::9903/logtail/acehttp

 

движок запускается с ключами:

--live-cache-type memory                        # - хранить кеш в оперативной памяти

--live-cache-size 524288000               # - максимальный размер кеша в bit, (по умолчанию: 209715200 bit (200 Мб)), здесь по личному опыту проишёл к тому что от зависимости объёма вашей памяти 200 Мб достаточно но 500 Мб ещё лучше, а сам я выставил вообще 1000 Мб

--core-sandbox-max-peers 15    # - это значение позволяет автоматически находить пиры с хорошей скоростью отдачи и подсоединять их к себе,

по умолчанию 5
--live-buffer 25

 

кстати в контейнере уже выполнено

echo "tmpfs /tmp tmpfs rw,nosuid,nodev 0 0" | tee -a /etc/fstab

что монтирует   /tmp в tmpfs

 

 

в коробке уже установлен скрипт сканирования источника как рекомендует сам автор ресурса потому как у него есть ограничение по исходящему трафику, и он не может позволить беспрерывную долбежку, вот его содержание:

#!/bin/sh

FNAME="tv.m3u"
URL="http://pomoyka.lib.emergate.net/trash/ttv-list/ttv.all.iproxy.m3u?ip=192.168.178.92:6878"

GNAME="${FNAME}.gz"
curl --fail -R -z "${GNAME}" -o "${GNAME}" -H "Accept-Encoding: gzip" "${URL}" && \
 gunzip -c "${GNAME}" >"${FNAME}"
  • curl скачивает файл из $URL в tv.m3u.gz, используя метод сжатия gzip
  • если он ранее уже был скачан, а на сервере изменен не был, то скачивание не производится
  • это реализовано через поддержку хедеров If-Modified-Since и Last-Modified
  • таким образом трафик остается на минимально необходимом уровне 1-2 Mb в сутки вместо 50,100,200 и больше Mb
  • gunzip разжимает tv.m3u.gz в tv.m3u, который и нужен будет нам

 # правим под себя ip

 

выполняем в терминале контейнера

cd /var/www/html/ && ./scan-m3u.sh

заносим в крон

0 */6 * * * cd /var/www/html/ && ./scan-m3u.sh

лист доступен будет по ссылке

http://ip:8844/tv.m3u  # если порт nginx 80 пробросить на 8844!

 

отдельно что касается использования HTTPAceProxy в которой реализована поддержка API torrenttv, что позволяет более комфортно пользоватся так как подтягиваются програма передач, иконки и архивы.

за это отвечает плагин p2pproxy_plugin.py  у которого в настройках заносим учётные данные ттв вип

путь для правки

nano /opt/HTTPAceProxy-master/plugins/config/p2pproxy.py

строчки 19 и 20

# Insert your email on torrent-tv.ru here
email = 're.place@me'
# Insert your torrent-tv account password
password ='ReplaceMe'

ссылки этого плагина соответсвенно

http://ip:8000/channels/?type=m3u

http://ip:8000/archive/dates/?days=1 #(требуется доустановить ffmpeg)

Install FFmpeg 3.4

add-apt-repository ppa:jonathonf/ffmpeg-3
apt-get update
apt-get install ffmpeg

по категориям

http://ip:8000/channels/?group=3&type=m3u   #расшифровка групп выше

 

но также  парралельно есть плагин torrenttv_plugin.py который так же частично использует API для подтягивания иконок и програмы но не требует учётки ттв и при этом также нет возможности смотреть архивы

путь для правки

nano /opt/HTTPAceProxy-master/plugins/config/torrenttv.py

строчка 15 заносим источник типа

# Insert your Torrent-tv.ru playlist URL here
url=''

и строчка 27 , интервал сканирования источника в минутах, оптимально значение 360

ссылки этого плагина соответсвенно

http://ip:8000/torrenttv
http://ip:8000/torrenttv/playlist.m3u

 

здесь правим сортировку каналов в строчке 28 и 30 на True

nano /opt/HTTPAceProxy-master/plugins/modules/playlist.py

здесь правим specified flags проца, доступные значения

nano /opt/HTTPAceProxy-master/aceclient/aceclient.py

строчка 247

ffmpeg_cmd += '-hwaccel auto -hide_banner -loglevel fatal -re -i %s -c copy -f mpegts -' % url

где добавляем ключ допустим для интел -cpuflags sse4.2 или  лучше -cpuflags avx2  # если иструкция avx2 поддерживается вышим процем

 

 

логи прокси: тыц ,тыц ,тыц

Edited by Архип
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
В 02.04.2018 в 13:45, Архип сказал:
В 02.04.2018 в 13:45, Архип сказал:

http://ip::9903/logtail/acestream # это аналог в терминале tail -f -n 0 /var/log/supervisor/acestream.log

из коробки сразу доступны логи движка по ссылке при услови что порт для супервизора 9903 проброшен

В коробке не было папки /dev/disk/by-id, создал, но все-равно в браузере ls: cannot access '/dev/disk/by-id/': No such file or directory

Share this post


Link to post
Share on other sites

#/dev/disk/by-id

в контейнерах не работает, только на железе

 

Цитата


Комментарий разработчика по поводу ошибки "cannot access /dev/disk/by-id" - влиять на работоспособность движка не должно.

 

 

Edited by Архип

Share this post


Link to post
Share on other sites
Цитата

После запуска контейнера на вашем nas-server DSM, потребуется только один раз зайти в контейнер для правки ip вашей сети и записи в кроне для чистки кеша и регулярного обновления плейлистов

Добрый день, как это сделать?

Share this post


Link to post
Share on other sites

заходим в контейнер так:

docker exec -it aceub /bin/bash

где 'aceub' имя которым вы обозвали контейнер

 

дальше идём в крон

crontab -e 

и добавляем там в самом низу эти записи

0 */2 * * * find /tmp/state/.ACEStream/.acestream_cache/* -depth -type f -mmin +5 -print0 | xargs -0 -r rm -f > /dev/null 2>&1
0 */2 * * * find /tmp/state/.ACEStream/collected_torrent_files/* -depth -type f -mmin +5 -print0 | xargs -0 -r rm -f > /dev/null 2>&1

это означает что файлы кеша старше чем 5 минут будут удалятся каждые 2 часа

по плейлисту добавляем

0 */6 * * * cd /var/www/html/ && ./scan-m3u.sh > /dev/null 2>&1

это означает что скрипт scan-m3u.sh будет выполнятся каждые 6 часов

 

сам скрипт scan-m3u.sh редактируем на предмет вашего ip по этому пути

nano /var/www/html/scan-m3u.sh

выполняем

cd /var/www/html/ && ./scan-m3u.sh

 

если интересно то опишу как вместо расшаривания через встроенный вебсервер nginx, использовать абсолютно бесплатно облако B2 Cloud Storage

root@v3:/var/www/html# b2 upload_file tvplaylist /var/www/html/xxxtv.m3u xxxtv.m3u
/var/www/html/xxxtv.m3u: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 176k/176k [00:01<00:00, 124kB/s]
URL by file name: https://xxx.xxxx2.com/file/tvplaylist/xxxtv.m3u
URL by fileId: https://xxx.xxxx2.com/b2api/v1/b2_download_file_by_id?fileId=4_zbxxx1c_f1139ec2141fc2c6a_d20180406_m172825_c002_v0001096_t0018
{
  "action": "upload",
  "fileId": "4_zbxxx1c_f1139ec2141fc2c6a_d20180406_m172825_c002_v0001096_t0018",
  "fileName": "xxxtv.m3u",
  "size": 176124,
  "uploadTimestamp": 1523035705000
}

 

Edited by Архип
  • Like 1

Share this post


Link to post
Share on other sites

Хотелось-бы, но хоть с этим справится сначала надо.

Share this post


Link to post
Share on other sites
1 час назад, Архип сказал:

nano /var/www/html/scan-m3u.sh

Чего-то не нашел scan-m3u.sh даже после обновления образа контейнера docker pull sybdata/aceubase и перезапуска.

Share this post


Link to post
Share on other sites

вот Dockerfile

там всё записано

mv /root/scan-m3u.sh /var/www/html/scan-m3u.sh

 

просто перезапуск не проканает, нужно перезосдавать

 

поэтому просто руками докачайте скрипт

cd /var/www/html/ && wget https://raw.githubusercontent.com/sybdata/aceUbase/master/src/scan-m3u.sh

 

Edited by Архип

Share this post


Link to post
Share on other sites

очень удачно у вас вышел докер! спасибо!
осталось только чуть подчистить плейлист под свои нужды, убрав неиспользуемое, и названия групп каналов из скобок в названиях каналов перебросить в group-title="groupname"

Share this post


Link to post
Share on other sites
2 часа назад, toleeck сказал:

названия групп каналов из скобок в названиях каналов перебросить в group-title="groupname"

 

вы можете разные ссылки с источника вбивать и например если с категориями то

ttv.all.tag.iproxy.m3u    #все каналы, сортировка по категории,названию, с тэгами групп и лого

 

 

Edited by Архип

Share this post


Link to post
Share on other sites

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

m3u.jpg

ace.jpg

log.jpg

port.jpg

termi.jpg

Share this post


Link to post
Share on other sites

1. В вебморду ходить и править там ничего не надо

2. Настройте порты зеркально, только 80 выведите на свободный, например 8844, как автор рекомендует, чтобы потом не путаться

Порты  

5acf55bc0f03c_2018-04-1215-47-45.thumb.png.1eed875bbd73450575943353f54cedfa.png

Hide  

Share this post


Link to post
Share on other sites
порты
 

port2.jpg

Hide  
Не думаю, сто с портами проблема, у меня они заняты, только чем?
Edited by jonbv

Share this post


Link to post
Share on other sites

#jonbv

 

блин, вы что делаете

что вы в скрипт вбиваете

 

вроде же ясно выше писал

URL="http://pomoyka.lib.emergate.net/trash/ttv-list/ttv.all.iproxy.m3u?ip=ваш ип:6878

 

вебморду вообще не трогайте!!!

 

Edited by Архип

Share this post


Link to post
Share on other sites

скинте в личку контакты

skype , teamviewer

 

Port: 993 тоже руки прочь!

это почтовик Server: imap

 

вай вай вай :shock:

Edited by Архип
  • Thanks 1

Share this post


Link to post
Share on other sites
19 минут назад, jonbv сказал:

Не думаю, сто с портами проблема, у меня они заняты, только чем?

Скорее всего на 8000 порт вот это засадили...  

5acf5d1c57e69_2018-04-1216-19-16.thumb.png.f0f09aab96c3e681a5f5c632d54b1ca2.png

Hide  
  • Thanks 1

Share this post


Link to post
Share on other sites

#Архип, да там принскрин не показывает всю строчку, я показал только ip  и порт, почему порт нельзя менять?

 

ip.png

Share this post


Link to post
Share on other sites

порт 6878!!!

это порт движка

 

зачем вы туда порт никса пихаете мне вообще непонятно

 

я что нибуть про порт писал или нет, я писал только про ip

Edited by Архип
  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now