Вопрос по бродкастингу

да, в скриптах используются ключи, которые есть только в самых свежих версиях.
–public-transport-file, --metadata-dir, --hls-force-monotonic-sequence и т.д - нужно либо убирать соответствующие опции из json файлов, либо комментировать их прямо в src/start_streamers.py, либо “по старинке” - все нужные ключи задаем через ком. строку, см. пример во вложении.

Либо нужно просто установить свежую версию, для 16.04 убунты должна от 8 дебиана подойти.


Конкретно эту ошибку можно исправить, переписав в /lib движка файлы из вложения.


Вставил Ваши библиотеки в /lib, но всё равно почему-то не видит он pycompat.
Вот логи: https://hastebin.com/luximomuba.sql
Скрин папки lib: https://prnt.sc/pavnnx

Сорри, невнятно выразился - путь /lib/acestreamengine в каталоге установленного движка.


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

И всё же мой стрим не работает. HLS выдал ошибку при получении сегмента.
https://hastebin.com/cosekukuxo.sql
Подробности в логе. Как я понял, Вашим скриптам не нравится тире в имени сегмента.

Нет, конкретно эта ошибка скорее про “битый” (или некорректный) HLS-манифест. Например, отсутствие тега “#EXT-X-TARGETDURATION” может вызывать подобные ошибки.

В целом же, особенно при первой настройке, лучше скопировать на сервер любой видеофрагмент, и проиграть его в цикле через тот же VLC:

sudo -u nobody cvlc -v -Z -L --sout-keep /opt/video/mytestfile.mp4 \
--sout '#standard{access=http,mux=ts,mime="video/mpeg",dst=127.0.0.1:8820/stream}' 

используя “http://127.0.0.1:8820/stream” как URL источника в конфиге узла.
А вот после того, как узлы будут настроены и протестированы с этим HTTP/TS локальным источником - уже пробовать и другие.
Учтите, что скрипты на гитхабе заточены под приватный узел-источник с публичными узлами поддержки, потому не исправив/закомментировав отдельные ключи - один узел-источник “из коробки” работать не будет, подробнее см. Create HLS Broadcast - Ace Stream Wiki

А можно как-то под Windows запустить одновременно два бродкаста?

да хоть десять, только не из ГУИ, а используя ком.строку:

Spoiler

-------------------------First Channel----------------------------------------------------------------------------------------
ACEStream\engine\ace_stream.exe --name Channel1 --title My-TV1 --source http://source_host/channel1 --bitrate 0 --port 7764 --quality auto --category informational --cache-dir C:\tmp\ace_stream\cache --publish-dir C:\tmp\ace_stream\streaming --max-peers 25 --tracker udp://9.rarbg.me:2710/announce --host myhost --upnp-enabled 1 --allow-public-trackers 1 --permanent

-------------------------Second Channel----------------------------------------------------------------------------------------
ACEStream\engine\ace_stream.exe --name Channel2 --title My-TV2 --source http://source_host/channel2 --bitrate 0 --port 7765 --quality auto --category informational --cache-dir C:\tmp\ace_stream\cache --publish-dir C:\tmp\ace_stream\streaming --max-peers 25 --tracker udp://9.rarbg.me:2710/announce --host myhost --upnp-enabled 1 --allow-public-trackers 1 --permanent

По итогам вопросов/непоняток со скриптами из https://github.com/acestream/streaming-utils - внесли некоторые правки в скрипты, часть параметров переехала в конф. файл. Кто их использует “как есть” - обновитесь.

Benny, можете для примера запостить скрипты запуска стриминга HLS-ресурса без использовнаия support-ноды? или support-ноды обязательны?

не очень понятен вопрос. А “для примера” скрипты с GitHub - acestream/streaming-utils: A set of utilities to start streaming with Ace Stream чем не устраивают?

Возможно ли ретранслировать напрямую RTMP-источник?

Не поддерживается. См. Вопрос по бродкастингу , принцип тот же.

Странно, но стримы запущенные через ГУИ - идеально работают. А через ком строку по вашему шаблону - нет. Стрим запускается, но подключиться к нему в качестве зрителя - невозможно. Нет активных пиров. Тут видно что я делаю не так?)

ace_stream.exe --name Nameeee1 --title Nameeee2 --source http://127.0.0.1:11349 --bitrate 260000 --port 7765 --quality HD --category sport --cache-dir C:\Users\Pilot\AppData\Roaming\.ACEStream\streaming --publish-dir C:\Users\Pilot\AppData\Roaming\.ACEStream\streaming --max-peers 8 --tracker udp://9.rarbg.me:2710/announce --host 46.49.89.162 --upnp-enabled 1 --allow-public-trackers 1 --permanent

В качестве хоста пробовал указывать и внешний и внутренний IP

на первый взгляд нет, т.к я вижу только 1 трансляцию, или проблемы начинаются уже с одной-единственной?
В качестве хоста нужно указывать внешний IP и убедиться в том, что указанный порт нормально пробросился к локальному адресу.
Битрейт нужно указывать свой, если он неизвестен - то можно поставить в “0”, движок попробует определить его автоматически (не всегда корректно работает).

В целом самый простой способ получить “правильную” ком. строку - запустить трансляцию через веб-интерфейс, убедиться в ее работоспособности и с помощью любого софта, что умеет показывать ком. строку запущенного процесса - скопировать ее, и использовать как шаблон.

Спасибо за как всегда оперативный ответ. Да, не работает даже одна. По хосту понял. Upnp срабатывает нормально. С битрейдом тоже разобрался. Буду пробовать софт показывающий ком строку приложений

Прошу подсказать, как корректно создать поток для защищённой трансляции сервиса cdn.ngenix.net.

Есть ссылка вида:

http://XXX1.cdn.ngenix.net/secure/definst/XXX2/playlist.m3u8?t=1458973444&h=YYYYYYYYYYY%3D%3D&t=1573006409

где
XXX1 - id трансляции
XXX2 - Заголовок трансляции
h - HASH ключ нрансляции

и зачем то два(!) одноименных параметра t, которые, очевидно имеют формат юникс.таймштампа.

все вышеуказанные переменные есть. Делаем запрос, подставив нужные значения, получаем в ответ файл playlist.m3u8 следующего содержания:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=1925358,CODECS=“avc1.66.31,mp4a.40.2”,RESOLUTION=1280x720,CLOSED-CAPTIONS=NONE
http://XXX0-XXX1.cdn.ngenix.net/secure/definst/XXX2/chunklist.m3u8?h=YYYYYYYYYYY%3D%3D&t=1458973444

где добавляется параметр XXX0 - id авторизованного с помощью HASH ключа YYYYYY

Виндовый aceplayer вешается по ошибке при воспроизведении с ошибкой в логах:
stream_filter_httplive stream error: #EXT-X-STREAM-INF: expected PROGRAM-ID=

Задача - запустить поток на linux acestream engine.

“Запрос” делаем в чем, и “ответ” получаем от кого?
Не очень понятно при чем тут

к

VLC нормально воспроизводит подобный плейлист? Если да, то использовать его в качестве промежуточного ретранслятора для движка либо использовать более серьезный софт, вроде того же flussonic’а.

Или речь о том, что уже после создания и публикации трансляции клиентские плеера не могут ее воспроизвести?

"Запрос" делаем в чем, и "ответ" получаем от кого? Не очень понятно при чем тут

Запрос по указанному URL на 80 порт. Ответ от сервера, к которому пришёл запрос…

Какого вида д.б. m3u8 чтобы /opt/acestream/start-engine --create-hls-transport --url url_to_m3u8_file чтобы трансляция запустилась?

Вопрос скорее к тем, кто сталкивался с cdn.ngenix.net так как не ясно до конца с их параметрами запроса