Jump to content
XPEnology Community

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
Link to comment
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
Link to comment
Share on other sites

  • 4 weeks later...

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

 

из коробки сразу доступны логи движка по ссылке при услови что порт для супервизора 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
Link to comment
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

Link to comment
Share on other sites

#/dev/disk/by-id

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

 

Цитата


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

 

 

Edited by Архип
Link to comment
Share on other sites

Цитата

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

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

Link to comment
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
Link to comment
Share on other sites

1 час назад, Архип сказал:

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

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

Link to comment
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 Архип
Link to comment
Share on other sites

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

Link to comment
Share on other sites

2 часа назад, toleeck сказал:

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

 

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

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

 

 

Edited by Архип
Link to comment
Share on other sites

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

m3u.jpg

ace.jpg

log.jpg

port.jpg

termi.jpg

Link to comment
Share on other sites

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

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

Порты  

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

Hide  
Link to comment
Share on other sites

#jonbv

 

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

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

 

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

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

 

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

 

Edited by Архип
Link to comment
Share on other sites

19 минут назад, jonbv сказал:

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

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

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

Hide  
  • Thanks 1
Link to comment
Share on other sites

порт 6878!!!

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

 

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

 

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

Edited by Архип
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...