Jump to content
XPEnology Community

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


Recommended Posts

по установке/настройке  контейнера, движка асеstream, HTTPAceProxy и источников трансляций помогу удалённо,

инфа/контакт в подписи

 

расшаривание самообновляемых(скрипт) плейлистов на удалённом сервере средствами backblazeb2 b2api

root@vps:/tmp# /bin/bash /mnt/playlist/backup_tvpl.sh
/mnt/playlist/xxx.m3u: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 295k/295k [00:01<00:00, 188kB/s]
URL by file name: https://f002.backblazeb2.com/file/tvplaylist/xxx.m3u
URL by fileId: https://f002.backblazeb2.com/b2api/v1/b2_download_file_by_id?fileId=4_zbd9e48bc4c0298b96c260a1c_f111aaabeb6319883_d20180424_m075853_c002_v0001096_t0040
{
  "action": "upload",
  "fileId": "4_zbd9e48bc4c0298b96c260a1c_f111aaabeb6319883_d20180424_m075853_c002_v0001096_t0040",
  "fileName": "xxx.m3u",
  "size": 295179,
  "uploadTimestamp": 1524556733000
}

 

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

6 часов назад, sel сказал:

редактировать конфиг

 

объём буфера и количество пиров(по умолчанию 50) уже оптимально выставленно из коробки в команде запуска движка в супервизоре:
 

--core-sandbox-max-peers 15

--live-buffer 25

--vod-buffer 10

путь правки:

nano /etc/supervisor/conf.d/supervisord.conf

по пирам движок по умолчанию подключает всё что есть в сети, несмотря на выставленые значения, тоже самое относится и к отдаче

например у меня при по умолчанию 50, а подключится может и под 100

*сделано разрабами движка умышленно что бы поддерживать P2P сеть, без которой кина не будет

 

мониторится по этому адресу:

http://ip:9958/app/monitor

p574.png.bc7344ba45427ac563d5bb2afe1a5689.png

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

А у всех некоторые каналы показывают 7 секунд и потом либо по кругу этот ролик, либо зависает???

Отправлено с моего SM-G950F через Tapatalk

Link to comment
Share on other sites

какую ссылку на поток используете?
 
потаму как у нас те каналы, что озвучили показывают как всегда
df46.thumb.png.51a70432c7674f401a788a9b554555b7.png

С платного аккаунта ттв и с помойки одно и то же. Сегодня еще так себя вел матч игра hd
Link to comment
Share on other sites

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

видимо вы недопонимаете, спрошу ещё раз

какую ссылку на поток используете и куда и как вбиваете?

 

 

 

Видимо не понимаю .Беру ссыль http://ip:port-HTTPAceProxy/channels/?type=m3u  вбиваю в прогу iptv на Андройд тв. Из появившегося списка выбираю канал. Идет воспроизведение через mx player.

Link to comment
Share on other sites

  1. по вашей ссылке аккаунт ттв должен быть vip
  2. для config/torrenttv.py строчка 27 , интервал сканирования источника, который меняет ID каналов раз в сутки

  3. прога iptv наверное имеет название или догадатся
  4. про логи я наверное для святого духа этого форума расписывал
  • Thanks 1
Link to comment
Share on other sites

6 минут назад, Архип сказал:
  1. по вашей ссылке аккаунт ттв должен быть vip
  2. для config/torrenttv.py строчка 27 , интервал сканирования источника, который меняет ID каналов раз в сутки

  3. прога iptv наверное имеет название или догадатся
  4. про логи я наверное для святого духа этого форума расписывал

1. Все верно, все в конфиге.

2. Стоит

3. Прога имеет название IPTV (Если вбить Play market то первая в списке)

4. Логи честно не смотрел. Вечером настроил по тестил, с утра обратил внимание пока завтракал что некоторые каналы так себя ведут. Сейчас норм, думаю связано с пирами. 

Edited by sel
  • Thanks 1
Link to comment
Share on other sites

2 минуты назад, Архип сказал:

хорошо, понятно

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

Наблюдаю лог, пока норм как на зло. 

Link to comment
Share on other sites

В 02.04.2018 в 13:45, Архип сказал:

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

 

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

 

 

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

А как правильно cpuflags прописать если проц i3770k(avx)?

ffmpeg_cmd += '-hwaccel auto -hide_banner -loglevel fatal -re -i %s -c copy -f mpegts -' % url -cpuflags avx ТАК?

Edited by sel
Link to comment
Share on other sites

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

 

 

ffmpeg нужно для просмотра архивов и нет подтверждения что этот ключ -cpuflags работает как и должен по теории 

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

Не могу разобраться как это работает:

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)

Куда торрент файлы ложить(/mnt/films/). Где потом эти ссылки запускать?

Link to comment
Share on other sites

12 часа назад, sel сказал:

#торрент файлы и где потом  запускать?

 

медленно но верно добрались мы до ещё одной фичи движка, то бишь VoD - Video on Demand(Видео по Запросу)

Ещё раз напомню что Ace Stream теперь обзывается как Ace Stream Media и это означает что движок теперь есть как полноценный видео веб сервер начиная с версий 3.1

функционал движка включает в себя и торрент клиент/сервер типа transmission и ко, так и видео сервер типа Twonky из соседней ветки, что делает использование этих прог просто избыточным и здесь вставлю 'имхо' иначе закидают помидорами

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

Цитата

Since version 3.1 we implemented API to control app engine via HTTP. To do that, you should send appropriate HTTP GET query to the app engine (default IP:port is 127.0.0.1:6878)

значения API для запроса:

Terms: <engine_address> - app engine IP address, <engine_port> - app engine HTTP port. Common params:

  • id - content id (conditional param)
  • infohash - transport file infohash (.acelive or .torrent file) (conditional param)
  • url - link to transport file (conditional param). Can be used with URL encoded "file://path/" to access local file.
  • pid - player id (optional, formerly known as sid, since ver. 3.1.29 is obsolete and replaced by pid)

примеры

это по Live Streaming

http://127.0.0.1:6878/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2d

#EXTINF:-1 tvg-name="Nickelodeon HD (Детские)",Nickelodeon HD (Детские)

http://192.168.178.37:6868/ace/getstream?id=4d416469be3aacf42f5f741897755e57a6488619

это по торрент файлам

http://192.168.178.37:6868/ace/getstream?infohash=4c9a867f5780a257e20f179f9136a6358b26aaf1

 

всё это описанно как в ручном режиме проверить функции движка и например id - content id можем подсмотреть взять здесь

а infohash - transport file infohash допустим здесь

infs.thumb.png.7b73860de83d77ba1979b0111928d0c6.png

 

И чтобы не ручками, есть два способа просмотра фильмов из торрент файлов

  1. средствами самого движка и встроенной веб морды видео сервера
  2. средствами HTTPAceProxy с помощью плагина torrentfilms_plugin.py

 

начну со второго способа и путь правки

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

где в строчке 7 уже есть папка по умолчанию /mnt/films и которая уже создана в контейнере, но можно изменить на свой лад

в строчке 12 выставляем интервал сканирования папки в минутах

 

эту папку /mnt/films монтируем в dsm и кидаем туда любые торрент файлы и после сканирования проксей будет создан плейлист из фильмов который будет доступет по ссылке

http://ip:port/proxyfilms

 

теперь по первому способу через графический интерфейс веб морды движка

набираем ссылку

http://ip:6878/webui/app/69696969/server#proxy-server-add-item

webui  

vod44.thumb.png.e21f4125e0278caea64ca4bb8103c546.png

Hide  

 

где назначаем категорию плейлиста, название фильма и вбиваем магнет или торрент файл

 

дальше идём сюда

http://ip:6878/webui/app/69696969/server#proxy-server-playlist

жмакаем на playlist и получаем требуемый лист с фильмами по ссылке

http://ip:6878/playlist/BBK1Ibm.m3u?category=movies

где кей 'BBK1Ibm' переодически меняется(* в новых версиях движка от 3.1.28 уже добавленно http://127.0.0.1:6878/playlist/get?format=m3u)

 

дальше вбиваем ссылку в любой плеер который понимает плейлисты .m3u и наслаждаемся просмотром сразу не дожидаясь скачивания всего торрент файла

просмотр  

vod44a.thumb.png.e97e104aa853fc96815f1103d7d60d3a.png

vod44b.thumb.png.aedfa423b9dd68e9576d47aeb5c8fa5a.png

Hide  

 

 

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

7 часов назад, Архип сказал:

 

медленно но верно добрались мы до ещё одной фичи движка, то бишь VoD - Video on Demand(Видео по Запросу)

Ещё раз напомню что Ace Stream теперь обзывается как Ace Stream Media и это означает что движок теперь есть как полноценный видео веб сервер начиная с версий 3.1

функционал движка включает в себя и торрент клиент/сервер типа transmission и ко, так и видео сервер типа Twonky из соседней ветки, что делает использование этих прог просто избыточным и здесь вставлю 'имхо' иначе закидают помидорами

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

значения API для запроса:

Terms: <engine_address> - app engine IP address, <engine_port> - app engine HTTP port. Common params:

  • id - content id (conditional param)
  • infohash - transport file infohash (.acelive or .torrent file) (conditional param)
  • url - link to transport file (conditional param). Can be used with URL encoded "file://path/" to access local file.
  • pid - player id (optional, formerly known as sid, since ver. 3.1.29 is obsolete and replaced by pid)

примеры

это по Live Streaming

http://127.0.0.1:6878/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2d

#EXTINF:-1 tvg-name="Nickelodeon HD (Детские)",Nickelodeon HD (Детские)

http://192.168.178.37:6868/ace/getstream?id=4d416469be3aacf42f5f741897755e57a6488619

это по торрент файлам

http://192.168.178.37:6868/ace/getstream?infohash=4c9a867f5780a257e20f179f9136a6358b26aaf1

 

всё это описанно как в ручном режиме проверить функции движка и например id - content id можем подсмотреть взять здесь

а infohash - transport file infohash допустим здесь

infs.thumb.png.7b73860de83d77ba1979b0111928d0c6.png

 

И чтобы не ручками, есть два способа просмотра фильмов из торрент файлов

  1. средствами самого движка и встроенной веб морды видео сервера
  2. средствами HTTPAceProxy с помощью плагина torrentfilms_plugin.py

 

начну со второго способа и путь правки


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

где в строчке 7 уже есть папка по умолчанию /mnt/films и которая уже создана в контейнере, но можно изменить на свой лад

в строчке 12 выставляем интервал сканирования папки в минутах

 

эту папку /mnt/films монтируем в dsm и кидаем туда любые торрент файлы и после сканирования проксей будет создан плейлист из фильмов который будет доступет по ссылке

http://ip:port/proxyfilms

 

теперь по первому способу через графический интерфейс веб морды движка

набираем ссылку

http://ip:6878/webui/app/69696969/server#proxy-server-add-item

webui

vod44.thumb.png.e21f4125e0278caea64ca4bb8103c546.png

Hide

 

где назначаем категорию плейлиста, название фильма и вбиваем магнет или торрент файл

 

дальше идём сюда

http://ip:6878/webui/app/69696969/server#proxy-server-playlist

жмакаем на playlist и получаем требуемый лист с фильмами по ссылке

http://ip:6878/playlist/BBK1Ibm.m3u?category=movies

где кей 'BBK1Ibm' переодически меняется(* в новых версиях движка от 3.1.28 уже добавленно http://127.0.0.1:6878/playlist/get?format=m3u)

 

дальше вбиваем ссылку в любой плеер который понимает плейлисты .m3u и наслаждаемся просмотром сразу не дожидаясь скачивания всего торрент файла

просмотр

vod44a.thumb.png.e97e104aa853fc96815f1103d7d60d3a.png

vod44b.thumb.png.aedfa423b9dd68e9576d47aeb5c8fa5a.png

Hide

 

 

Не получается почему-то, прописал путь volume1/torrentfilms сканирование 1 минута. Качаю плейлист открываю в vlc, он пустой.

По первому способу через web пишет failed to add item to the playlist

  

Edited by sel
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...