Архив форума Ace Stream       Wiki        Info

перейти на новый форум
Расширенный поиск  

Автор Тема: Broadcasting ( организация собственных прямых трансляций на базе TS )  (Прочитано 342637 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Constantin

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1757
    • Torrent Stream

провел небольшой эксперимент с участием сервера поддержки, который должен играть роль основного раздающего, для этого на основном сервере TS был запущен с параметром maxclients=1, и вслед за этим сразу же запустил сервер поддержки, который успешно подключился. Далее трансляцию запускает обычный юзер и вместо того, чтобы тащить трансляцию с сервера поддержки я вижу, что он тянет ее с меня и лишь частично с сервера. Потом подключается еще один пир и в итоге наблюдается такая же картина. Очевидно, что такого не должно быть, получается, что параметр maxclients работает неверно и что сервер поддержки работает как обычный пир, что с одной стороны хорошо, так как тогда все пиры это такие же сервера поддержки, но с другой стороны в случае недостаточного аплоада у бродкастера для раздачи на несколько пиров, трансляция может быть испорчена.
В дальнейшем бы хотелось бы видеть отдельный node-сервер для ts, т.е. чтобы он запускался как слушающий сервер поддержки с авторизацией в фоновом режиме  и имел веб-интерфейс для просмотра статистики, например, при запуске основного сервера указывается определенный параметр с адресом узла поддержки(с портом) и ключом авторизации(чтобы все подряд бродкастеры нахаляву не подключались к узлу), а также неплохо бы сделать опцию для запуска в режиме отдачи только узлу поддержки если это требуется бродкастеру в случае небольшой отдачи. Ну и еще одно пожелание: возможность отключения или отдельного запуска трекера для тс, либо его оптимизация, так как он довольно прилично загружает процессор

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

damen

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 1

в чем проблемы первая не могу загрузить файлы сюда  http://torrentstream.info/#/create  вторая не выходит плей лист и третья если пробуеш просмотреть тв канал выскакивает надпись This content is available for premium users only  я так понял что все тв каналы доступны (Это содержимое доступно для premium пользователей только) в чем проблемы и что это за премиум пользователи решите проблемы
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

на vps сервере, используемый в качестве node-сервера TS, наблюдается нехватка оперативной памяти(установлено 1200мб, используется чуть более 1100мб), почти всю сьедает TS при активной работе с большим количеством пиров непонятно на что. Скорость раздачи также очень сильно изменяется, может вообще ничего не отдавать, а может и по 30-40мбит/с отдавать(реальный аплоад больше 70мбит/с) .
P.S. Установлен TS версии 1.0.6.8, т.к.  2.0.0 вылетает при большой нагрузке. Для линукс версии неплохо бы выпускать отдельно движок как это сделано для 1.0.6.8, сам плеер там далеко не всегда нужен, так как часто используется в качестве стримера или узла поддержки.
Записан

Constantin

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1757
    • Torrent Stream

Для стримеров/бродкастеров ( обновление от 04.12.2012)

Обновленная версия движка для ubuntu и debian. В новой версии значительно снижена нагрузка на процессор.

Новую версию можно забрать из репозитория:
Debian 6+:
deb http://repo.acestream.org/debian/ squeeze main

Для Debian есть еще репозиторий sid (там пакет, собранный с другими зависимостями, которые соответствуют официальным sid-репозиториям):
deb http://repo.acestream.org/debian/ sid main

Ubuntu 11.10:
deb http://repo.acestream.org/ubuntu/ oneiric main

Ubuntu 12.04:
deb http://repo.acestream.org/ubuntu/ precise main

Ubuntu 12.10:
deb http://repo.acestream.org/ubuntu/ quantal main

Установка публичного ключа:
debian:
wget -q -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -

ubuntu:
sudo wget -q -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -

Пакеты
acestream-engine - движок
acestream-mozilla-plugin - плагин для браузеров
acestream-player - десктопный плеер
acestream-player-data - набор общих библиотек для плеера и плагина
acestream-full - полный пакет, который включает в себя все вышеперечисленные

Для Debian доступен только движок.
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

вещаю с новой версией движка на линукс, нагрузка на процессор упала почти в 1,5 раза при 2к пиров, оперативы тоже стало поменьше кушать, но все равно хочется чтобы грузило процессор не более 5%(сейчас грузит 10-12% в среднем при большом количестве пиров на процессоре intel core i5 2400K)
Записан

avk5710

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 2

а возможно ли сделать при запуске собственной трансляции использование других контейнеров кроме MPEG-TS, например MP4/MOV ?
Записан

navip999

  • Специалист
  • Newbie
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 20

Для стримеров/бродкастеров ( обновление от 04.12.2012)

Обновленная версия движка для ubuntu и debian. В новой версии значительно снижена нагрузка на процессор.

Новую версию можно забрать из репозитория:
Debian 6+:
deb http://repo.acestream.org/debian/ squeeze main

Для Debian есть еще репозиторий sid (там пакет, собранный с другими зависимостями, которые соответствуют официальным sid-репозиториям):
deb http://repo.acestream.org/debian/ sid main

Ubuntu 11.10:
deb http://repo.acestream.org/ubuntu/ oneiric main

Ubuntu 12.04:
deb http://repo.acestream.org/ubuntu/ precise main

Ubuntu 12.10:
deb http://repo.acestream.org/ubuntu/ quantal main

Установка публичного ключа:
debian:
wget -q -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -

ubuntu:
sudo wget -q -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -

Пакеты
acestream-engine - движок
acestream-mozilla-plugin - плагин для браузеров
acestream-player - десктопный плеер
acestream-player-data - набор общих библиотек для плеера и плагина
acestream-full - полный пакет, который включает в себя все вышеперечисленные

Для Debian доступен только движок.
upd: смена ВНЕШНЕГО ip адреса влияет на трансляцию
сегодня после смены внешнего ip не зразу удалось запустить сервер..
подключение к трансляции стало дольше т.е до момента подключения к пирам проходит около 30 секунд
пиров стало не видно по адресу http://ip адрес:7764
точнее пишет:
Цитировать
downloading
1
иногда и вовсе пишет 0, раньше было всех пиров видно...

в новой версии нагрузка на проц стала меньше в 1.5 раза и о чудо сервер acestream не падает)
« Последнее редактирование: 08 Декабря 2012, 17:05:26 от navip999 »
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

на узле поддержки иногда в логах проскакивает, но довольно редко:
Traceback (most recent call last):
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 287, in verify
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 359, in rsa_verify_data_pubkeyobj
  File "/usr/lib/python2.7/dist-packages/M2Crypto/RSA.py", line 255, in verify
    return m2.rsa_verify(self.rsa, data, signature, digest_type)
RSAError: bad signature
2012-12-08 19:00:29 sw::984292688cf0da2366418b6f244f94a2c9d89e71:piece_came_in: kicking peer
Traceback (most recent call last):
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 287, in verify
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 359, in rsa_verify_data_pubkeyobj
  File "/usr/lib/python2.7/dist-packages/M2Crypto/RSA.py", line 255, in verify
    return m2.rsa_verify(self.rsa, data, signature, digest_type)
RSAError: bad signature
2012-12-08 19:00:29 sw::984292688cf0da2366418b6f244f94a2c9d89e71:piece_came_in: kicking peer
BadDataGuard::failed: index 222 ip 91.78.105.57 bad[index] 1 len(bad) 1
2012-12-08 19:00:29 sw::984292688cf0da2366418b6f244f94a2c9d89e71:piece_came_in: kicking peer
Traceback (most recent call last):
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 287, in verify
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 359, in rsa_verify_data_pubkeyobj
  File "/usr/lib/python2.7/dist-packages/M2Crypto/RSA.py", line 255, in verify
    return m2.rsa_verify(self.rsa, data, signature, digest_type)
RSAError: bad signature
2012-12-08 19:00:29 sw::984292688cf0da2366418b6f244f94a2c9d89e71:piece_came_in: kicking peer
BadDataGuard::failed: index 219 ip 91.78.105.57 bad[index] 1 len(bad) 2
BadDataGuard::failed: index 220 ip 91.78.105.57 bad[index] 1 len(bad) 3
2012-12-08 19:00:31 downloader::try_ban: ip 91.78.105.57
node: name livefootball_ws_HD up 1158.9 down 259.2
node: name livefootball_ws_HD up 1126.1 down 254.7
Traceback (most recent call last):
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 287, in verify
  File "ACEStream/Core/Video/LiveSourceAuth.py", line 359, in rsa_verify_data_pubkeyobj
  File "/usr/lib/python2.7/dist-packages/M2Crypto/RSA.py", line 255, in verify
    return m2.rsa_verify(self.rsa, data, signature, digest_type)
RSAError: bad signature
при этом вроде на отдаче это не сказывается. По прежнему кушает очень много оперативной памяти, причем не сразу а постепенно растет потребление памяти. Также в вашей статистике stats.torrentstream.net перестал считаться node трафик, хотя сервер поддержки запущен и помогает трафиком
P.S. версия 2.0.2, убунту 11.10
« Последнее редактирование: 08 Декабря 2012, 18:11:40 от vladimir29 »
Записан

navip999

  • Специалист
  • Newbie
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 20

Просьба решить проблему смены внешнего ip адреса, я думаю ip сохраняется на трекерах поэтому я не вижу пиров, либо это в плагине где-то сохраняется, но я не знаю где...
смена параметра -- host не влияет никак
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

у node-сервера есть какое-то ограничение по скорости отдачи или количеству пиров? сервер просто явно недоотдает трафик, держится на уровне 30-35мбит с пиками до 40мбит/с, хотя потенциал раза в 2 выше, наблюдал в течении нескольких часов.
P.S. Стоит включить в node-сервер да и клиентам опцию передачи полученных потоков по http, чтобы можно было смотреть сторонними плеерами, например на определенный порт, указанный пользователем, повесить http-трансляцию, если это необходимо.
Записан

artanets

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 39

Подскажите с организацией трансляции.

А то я уже замучился подбирать характеристики для потока, чтобы тс его видел и транслировал нормально без задержек и стопов.
укажите пожалуста какой именно mpeg-ts должен быть только ли мпег подходит?

В Vlc создаю поток с клипом в mpg2-ts или mp4-ts посылаю его с исходящими параметрами:

:sout=#std{access=http,mux=ts,dst=:8089/}  или :sout=#http{mux=ffmpeg{mux=flv},dst=:8089/}

это трансляция без перекодирования. далее создаю в виндоусе через торрент стрим бродкастинг . и получаю на выходе трансляцию которая идет но постоянно заедает и выключается. при этом загрузка процессора и оперативы не более15 процентов.

а теперь непонятный для меня момент в том же Vlc создаю трансляцию с перекодированием с вот такими исходящими параметрами:

:sout=#transcode{vfilter={canvas{width=1280,height=720,aspect=16:9,no-padd}:adjust{contrast=1.17,brightness=1.05,saturation=1.2,gamma=0.97}},vcodec=h264,vb=1900,deinterlace,fps=25,acodec=mp3,ab=96,channels=2,samplerate=44100,venc=x264{vbv-bufsize=7000,vbv-maxrate=2100,ref=3,subme=3,keyint=25,idrint=25},sfilter={logo{file=C:/1.png,position=6,opacity=300}}}:std{access=http,mux=ts,dst=:8089/}}

и при тех же параметрах бродкастинга через торрент стрим видео идет хорошо и без заеданий, но загрузка процессора 99 процентов(большая часть уходит на перекодирование).
Вот и вопрос что я делаю неправильно? перепробывал перекодировать клип уже в десяток форматов и все равно без прямого перекодирования в влц, они все заедают в тс бродкастинге.
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

Подскажите с организацией трансляции.

А то я уже замучился подбирать характеристики для потока, чтобы тс его видел и транслировал нормально без задержек и стопов.
укажите пожалуста какой именно mpeg-ts должен быть только ли мпег подходит?

В Vlc создаю поток с клипом в mpg2-ts или mp4-ts посылаю его с исходящими параметрами:

:sout=#std{access=http,mux=ts,dst=:8089/}  или :sout=#http{mux=ffmpeg{mux=flv},dst=:8089/}

это трансляция без перекодирования. далее создаю в виндоусе через торрент стрим бродкастинг . и получаю на выходе трансляцию которая идет но постоянно заедает и выключается. при этом загрузка процессора и оперативы не более15 процентов.
видимо у вас источник явно не mpeg2 или mpeg4, наверно пытаетесь засунуть avi в mpeg-ts без перекодирования, для нормальной трансляции нужно кодировать в mpeg2 или mpeg4(h264) с контейнером mpeg-ts, последний гораздо более качественный, но требует значительной производительности процессора, попробуйте например так:
:sout=#transcode{width=1024,height=576,vcodec=h264,vb=1900,deinterlace,fps=25,acodec=mp3,ab=96,channels=2,samplerate=44100,venc=x264{vbv-bufsize=5000,vbv-maxrate=2100,ref=1,subme=1,keyint=50},sfilter={logo{file=C:/1.png,position=6,opacity=300}}}:std{access=http,mux=ts,dst=:8089/}}
Записан

artanets

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 39

спасибо так работает и загрузка процессор держится в районе 60%. но интерестно было печему я не могу нормально запустить поток без transcode.
Вот снимок того во что я конвертирую видео до трансляции. и без строки transcode{width=1024,height=576,vcodec=h264,vb=1900,deinterlace,fps=25,acodec=mp3,ab=96,channels=2,samplerate=44100,venc=x264{vbv-bufsize=5000,vbv-maxrate=2100,ref=1,subme=1,keyint=50} оно начинае зависать в ТС(буферизация 0% или просто стоп и все)
без транскодо процессор держится совсем в 10-15%
« Последнее редактирование: 12 Декабря 2012, 19:31:40 от artanets »
Записан

artanets

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 39

вот к примеру сдел две трансляции одна с произвольными форматами и вот этой строкой предложенной выше vladimir29
:sout=#transcode{width=1024,height=576,vcodec=h264,vb=1900,deinterlace,fps=25,acodec=mp3,ab=96,channels=2,samplerate=44100,venc=x264{vbv-bufsize=5000,vbv-maxrate=2100,ref=1,subme=1,keyint=50},sfilter={logo{file=C:/1.png,position=6,opacity=300}}}:std{access=http,mux=ts,dst=:8089/}}


а вторая с перекодированным ранее видео в формат mpeg4-ts   и с параметрами для вывода видео
:sout=#std{access=http,mux=ts,dst=:8089/}


и вторая у меня постоянно отключается, подскажите как запустить заранее перекодированное видео без стопов и чтобы прцессор не сильно загружало?
« Последнее редактирование: 13 Декабря 2012, 09:33:26 от artanets »
Записан

Constantin

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1757
    • Torrent Stream

у node-сервера есть какое-то ограничение по скорости отдачи или количеству пиров? сервер просто явно недоотдает трафик, держится на уровне 30-35мбит с пиками до 40мбит/с, хотя потенциал раза в 2 выше, наблюдал в течении нескольких часов.
P.S. Стоит включить в node-сервер да и клиентам опцию передачи полученных потоков по http, чтобы можно было смотреть сторонними плеерами, например на определенный порт, указанный пользователем, повесить http-трансляцию, если это необходимо.

Никаких ограничений нет, но он и не должен выгребать весь канал, у нас наоборот стояла задача минимизировать объемы трафика с сервера поддержки, но пока мы решили ему оставить режим отдачи как у обычного клиента. Что по серверу поддержки будет добавлено/изменено, так это режимы входящих соединений  и получения данных ( только с источника или с источника и с определенных узлов поддержки или с источника и любых пиров или с только с определенных узлов  поддержки или др. компоновки )

P.S. Насчет выдачи пользователю потоков по http это отдельная тема и для этого мы создадим режим виртуального клиента, когда движок можно будет устанавливать и использовать удаленно, но нормально с ним работать смогут только те плееры и медиацентры, которые будут использовать API движка   
Записан