Проблема с Ace Stream Media Center в Windows 10 64bit

Доброго времени суток!

У меня ACE STREAM PREMIUM - установил на Windows 10 64bit - все было хорошо, пока не нагрузил его одновременными подключениями к нему около 20 потоков - вылетает с ошибкой:

object of type ‘NoneType’ has no ten()

Помогите, что это за ошибка?

Что значит “одновременными подключениями к нему около 20 потоков” - в смысле, 20 клиентских устройств, подключенных к медиа-серверу, или 20 клиентов для созданной трансляции?

Для внятного ответа по поводу ошибки нам нужен лог-файл.

Я подключил 20 клиентский устройств к медиа-серверу. Если быть точнее - это Flussonic - который забирал 20 разных каналов ТВ одновременно.

ЛОГ-файл? А куда его прислать? прямо сюда на форум? Приложить к сообщению?

Похоже здесь ценная информация, но я её не понимаю:

2018-03-27 23:00:28,451|Thread-743|acestream.live.download.a03079d95052d3f411c033983201ce782c62b9c3|set_max_connections: deprecated
2018-03-27 23:00:28,453|Thread-743|acestream.live.download.a03079d95052d3f411c033983201ce782c62b9c3|set_max_upload_slots: deprecated
2018-03-27 23:00:36,881|Thread-1075|acestream.live.download.a03079d95052d3f411c033983201ce782c62b9c3|set_max_connections: deprecated
2018-03-27 23:00:36,881|Thread-1075|acestream.live.download.a03079d95052d3f411c033983201ce782c62b9c3|set_max_upload_slots: deprecated
2018-03-27 23:00:43,878|Thread-1223|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_connections: deprecated
2018-03-27 23:00:43,880|Thread-1223|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_upload_slots: deprecated
2018-03-27 23:02:04,266|Thread-4163|acestream.live.download.a494706c121b93d07b73198be5a9cdc92ea24505|set_max_connections: deprecated
2018-03-27 23:02:04,266|Thread-4163|acestream.live.download.a494706c121b93d07b73198be5a9cdc92ea24505|set_max_upload_slots: deprecated

[details=Spoiler]2018-03-27 23:10:48,039|Thread-22|acestream.webui|error in get(): urlpath=/play/x9Wf6tu/670
Traceback (most recent call last):
File “ACEStream\WebUI\WebUI.pyo”, line 253, in get
File “ACEStream\WebUI\WebUI.pyo”, line 261, in doget
File “ACEStream\WebUI\WebUI.pyo”, line 2343, in process_playlist_request
File “ACEStream\WebUI\WebUI.pyo”, line 1907, in get_playlist_item_playback_url
File “ACEStream\WebUI\WebUI.pyo”, line 1942, in get_playlist_item_data
ValueError: unknown item index
2018-03-27 23:10:49,539|MainThread|acestream.lang|setting up languages: default=en_EN.lang system=ru_RU
2018-03-27 23:10:49,664|MainThread|acestream.SocketHandler.InterruptSocket|bound on 127.0.0.1:58232
2018-03-27 23:10:49,664|MainThread|acestream.SocketHandler.SocketHandler|bind: socket bound: host=0.0.0.0 port=57494
2018-03-27 23:10:49,710|Instance2InstanceThread-52|acestream.APIServer|run: ready to receive remote commands on 57494
2018-03-27 23:10:51,003|BGTaskQueueThread-1|acestream.coreapp|set_allow_sleep_mode: allow=0
2018-03-27 23:11:10,148|Thread-783|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_connections: deprecated
2018-03-27 23:11:10,150|Thread-783|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_upload_slots: deprecated
2018-03-27 23:11:31,678|Thread-1245|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_connections: deprecated
2018-03-27 23:11:31,680|Thread-1245|acestream.live.download.642da99cba697d13bd58e796b38e00b4e68d1da8|set_max_upload_slots: deprecated
2018-03-27 23:12:50,275|AceStreamCoreThread|acestream.LM|_run: error
Traceback (most recent call last):
File “ACEStream\Core\APIImplementation\LaunchManyCore.pyo”, line 485, in _run
File “ACEStream\Core\BitTornado\ServerPortHandler.pyo”, line 283, in listen_forever
File “ACEStream\Core\BitTornado\RawServer.pyo”, line 235, in listen_forever
File “core.c”, line 241, in
TypeError: object of type ‘NoneType’ has no len()
2018-03-27 23:12:50,289|AceStreamCoreThread|acestream.coreapp|object of type ‘NoneType’ has no len()
2018-03-27 23:12:50,430|AceStreamCoreThread|acestream.AppWrapperWx|on_error: exit=True
2018-03-27 23:12:50,430|MainThread|acestream.AppWrapperWx|_on_error: exit=True
2018-03-27 23:12:58,055|Thread-1902|acestream.live.download.b6f034ae25c1b4a9738daf1f6f66d8066c08f683|set_max_connections: deprecated
2018-03-27 23:12:58,055|Thread-1902|acestream.live.download.b6f034ae25c1b4a9738daf1f6f66d8066c08f683|set_max_upload_slots: deprecated
2018-03-27 23:19:20,881|TrafficStatsSenderThread|acestream.TrafficStatsSender|run: error
Traceback (most recent call last):
File “core.c”, line 96, in
File “core.c”, line 115, in
File “core.c”, line 121, in
File “core.c”, line 157, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:19:21,584|Thread-6564|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:19:42,598|Thread-6669|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:22:21,786|Thread-7449|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:23:09,661|Thread-7696|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:23:30,661|Thread-7804|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:25:36,427|MainThread|acestream.coreapp|onexit
2018-03-27 23:25:37,161|Thread-8406|acestream.httpserver|get: error while closing stream
Traceback (most recent call last):
File “ACEStream\Video\VideoServer.pyo”, line 951, in do_GET
File “core.c”, line 12558, in
File “core.c”, line 2749, in
File “threading.pyo”, line 736, in start
error: can’t start new thread
2018-03-27 23:25:37,161|MainThread|acestream.AppWrapperWx|shutdown
2018-03-27 23:25:37,161|MainThread|acestream.coreapp|onexit: error
Traceback (most recent call last):
File “core.c”, line 5718, in
File “core.c”, line 294, in
File “threading.pyo”, line 929, in join
RuntimeError: cannot join thread before it is started
2018-03-27 23:25:39,404|MainThread|acestream.AppWrapperWx|OnExit: app exit done[/details]

Flussonic запускается на этом же ПК, или на другом - у ПК достаточно ресурсов (ЦП/диск/память), чтобы качать/стримить 20 каналов одновременно (каждый канал - отдельная копия Ace Stream)?

Да, при этом желательно сначала выполнить рекомендации по приведенной ссылке (т.е удалить старый лог файл), и приложить полный файл, а не выборочные фрагменты - в приведенном фрагменты видны ошибки, но не видна “предистория”.

Критически важного там ничего нет, просто уведомление о том, что некоторые из используемых ключей устарели (deprecated).

  • Flussonic запускается на другом компе, и он подключается к различным каналам по ссылке стрима канала. т.е. не множественный запуск Ace Stream Media Center, а подключение к его различным каналам (потокам каналов)
    Пример одного из канала: http://8.8.8.8:6878/play/xXxXxXG/3
    Пример другого канала: http://8.8.8.8:6878/play/xXxXxXG/312

прикрепил файл лога


И при каждом таком подключении создается отдельный поток со своим контекстом (я не правильно выразился - “полная копия” только в случае трансляции cоздается, для каждого канала) - и в логе как раз полно ошибок, что очередной такой новый поток “не может быть создан”.

  1. Есть вопросы к плейлисту - при загрузке ошибки. Рекомендуем для проверки остановить движок, убедиться, что среди процесоов не осталось его “зомби”, переименовать либо удалить каталог профиля (%appdata% -> .AceStream), и запустить движок снова.
  2. такое впечатление, что клиент (Flussonic) не дожидается ответа от Ace Stream, и посылает запрос повторно, “засыпая” движок запросами. В настройках Flussonic можно попробовать увеличить таймаут соединения.

Я полностью удалил Ace Stream Media Center - и установил снова. Пока как то держится… работает… НО: Ace Stream Media Center сейчас в состоянии подвешаности… не отвечает на нажатие значка и т.п.
Стримы не отдаёт…
Во вложении скрины состояния диспетчера задач
Скрин 1 - диспетчер задач на компе где запущен Ace Stream Media Center
Скрин 2 - состояние Flussonic - не получающий через минут 5-10 стримы от зависшего Ace Stream Media Center
И сам ЛОГ Ace Stream Media Center


Только что вывалился опять…

Лог во вложении


Я заметил что, если подключиться к 1 потоку (к 1 каналу) - сервер работает стабильно.

Это какое то ограничение? или что?

Я не смог повторить ошибки в логе, т.е это явно что-то локальное. Ошибки плейлиста тоже никуда не делись - какой плейлист используется при импорте? В движок желательно импортировать плейлист, состоящий из acestream:// ссылок, с остальными вариантами могут быть проблемы.

Ограничение врядли (вот прямо счас у меня 3 канала одновременно работают), а вот то, что давно (за неактуальностью) не проверялось, как оно там при скачке десятка каналов одновременно себя ведет - вполне вероятно. Единственное замечание - как часто Flussonic пытается повторять подключение в случае неудачи? Движок отдает ссылку не сразу (за 1-2 сек минимум), поэтому, если его тупо “долбить” запросами не дожидаясь результата - будет отдавать 500 ошибку и в конце-концов сломается.

В общем, мы еще поизучаем этот вопрос, а пока, чтобы не ждать - можно пробовать альтернативный прокси - http://mytalks.ru/index.php?topic=4506.0

После изучения вопроса выяснилось следующее - в случае, если к прокси-серверу есть несколько запросов с одного IP, то нужно дополнительно указывать sid (он же Player ID) - http://wiki.acestream.media/Engine_HTTP_API#Player_ID

Я совсем новичок в этом направлении, и не совсем понял Ваш ответ.

Если не сложно напишите пожалуйста 2 примера с 2-мя разными SID - постараюсь понять логику.

Спасибо!

Для плейлиста вида

Spoiler

#EXTM3U
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Retro Music TV
http://192.168.2.4:6878/ace/getstream?infohash=f3b5e175c6a3878b741a7314754ef6d691db1e68&hlc=1
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Virgin Radio TV
http://192.168.2.4:6878/ace/getstream?infohash=33f3d92323dacdac63fdc17c61fe031f780130e7&hlc=1
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Eska Rock TV
http://192.168.2.4:6878/ace/getstream?infohash=542f7d421d63f985a78426a7ac3c200eacf81486&hlc=1

добавляем в конце каждого элемента плейлиста “&sid=XXX”

Spoiler

#EXTM3U
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Retro Music TV
http://192.168.2.4:6878/ace/getstream?infohash=f3b5e175c6a3878b741a7314754ef6d691db1e68&hlc=1&sid=1
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Virgin Radio TV
http://192.168.2.4:6878/ace/getstream?infohash=33f3d92323dacdac63fdc17c61fe031f780130e7&hlc=1&sid=2
#EXTINF:-1 acestream-autosearch=“1” group-title=“music”,Eska Rock TV
http://192.168.2.4:6878/ace/getstream?infohash=542f7d421d63f985a78426a7ac3c200eacf81486&hlc=1&sid=3

“sid” не обязательно должен быть цифрой или монотонно возрастать - главное, чтобы в пределах одного плейлиста “sid” не повторялись.

А это нужно добавлять только в плейлисте? Нигде больше не нужно ? (в смысле - в самом Медиа-Сервере и т.д.)

Спасибо за подробный ответ!

Да, это нужно добавлять в тот плейлист, который открывается во Flussonic.

Сделал всё как Вы посоветовали… к сожалению… или я что то недопонимаю и не так делаю… или всё таки это ПО требует доработки…

Смотрите. Первое - мои ссылки сильно отличаются от Ваших вообще строением.

Я использовал и такие:
http://(адрес):6878/play/OccsTpy/335
http://(адрес):6878/play/OccsTpy/389

и такие
http://(адрес):6878/ace/getstream?url=http%3A%2F%2Fcontent.asplaylist.net%2FRlJ4a1BnYk9PaENlR0Zhc1lqc093c3dZMnEyVGFYaVN
6V3BJWFZBdWlVVk1wdndPQ0RtSDVSNitBT0JyRG1kNzJRdERKY3JvclNWcUF6eXNqbFpyc3c9PQ%2Fcdn%2F719_reg.acelive&hlc=1&transcode_audio=0&transcode_mp3=1
&transcode_ac3=0&preferred_audio_language=rus&sid335

http://(адрес):6878/ace/getstream?url=http%3A%2F%2Fcontent.asplaylist.net%2FRlJ4a1BnYk9PaENlR0Zhc1lqc093c3dZMnEyVGFYaVN6V3BJWFZBdWlV
Vk1wdndPQ0RtSDVSNitBT0JyRG1kNzJRdERKY3JvclNWcUF6eXNqbFpyc3c9PQ%2Fcdn%2F154_reg.acelive&hlc=1&transcode_audio=0&transcode_mp3=1
&transcode_ac3=0&preferred_audio_language=rus&sid389

Но нигде ничего похожего на подобные Вашим ссылкам (по длине, составу) я не нашёл у себя на сервере

http://192.168.2.4:6878/ace/getstream?infohash=33f3d92323dacdac63fdc17c61fe031f780130e7&hlc=1&sid=2

Подскажите пожалуйста что я делаю не так.

Всё заканчивается точно так же как и раньше.

Скрин вылетающего сообщения во вложении.


Неправильно “sid” добавлен. Должно быть “&sid=335”

Если используется предварительно импортированный/составленный вручную плейлист, то в веб-интерфейсе медиа-сервера кнопка “URL плейлиста”.

  1. Из 6 добавленных ссылок в 2х нашёл ошибку, исправил… Тестирую…

  2. Я именно так и делал, но мои ссылки куда длиннее представленных Вами… в разы длиннее и содержат кучу подстроек, настроек… что меня и смущает.

P.S. Я уже и успел переустановить всё на Windows 7 32bit систему… надеясь на улучшение.

Это не важно, я специально в примерах сокращаю ссылки для повышения “читабельности”.

На заметку - для тех, кто столкнется с подобной проблемой в будущем - добавили в плейлист-АПИ возможность автогенерации pid.