Changes

Jump to: navigation, search

Streaming

6,756 bytes added, 20:32, 9 June 2020
no edit summary
== Установка Запуск трансляции==
=== Установка ACE Stream на Debian/Ubuntu из репозитория Основные термины=== *'''Шаг 1Источник''' Добавить ссылку - программа, которая принимает на соответствующий репозиторий в файл <tt>/etc/apt/sources.list</tt>. Репозиторий слудет выбирать в зависимости от операционной системы.вход HTTP-поток трансляции и обеспечивает просмотр трансляции с помощью ПО Ace Stream*'''Узел поддержки'Debian 6+:'' <tt><nowiki>deb http://repo.acestream.org/debian/ squeeze main</nowiki></tt> либо <tt><nowiki>deb http://repo.acestream.org/debian/ sid main</nowiki></tt> Примечание: пакеты в репозитории sid собраны с зависимостями- программа, которые соответствуют официальным sidпозволяющая масштабировать трансляцию за счет использования дополнительного серверного оборудования и интернет-репозиториям Debian.Если вы не знаете, какой репозиторий выбрать, используйте squeeze.каналов*'''Клиент'Ubuntu 11.10:''- ПО Ace Stream, которое используется для просмотра трансляции <tt><nowiki>deb http://repo.acestream.org/ubuntu/ oneiric main</nowiki></tt> *'''Timeshift'Ubuntu 12.04:'' <tt><nowiki>deb http://repo.acestream.org/ubuntu/ precise main</nowiki></tt>- временной интервал, в рамках которого в клиенты могут осуществлять перемотку трансляции
''Ubuntu 12===Переход с версий 2.0.х на версию 2.1 и выше===С 10:'' <tt><nowiki>deb http://repoсентября 2013 года доступна обновленная версия движка 2.1.acestream6 под Ubuntu, Debian и CentOS.org/ubuntu/ quantal main</nowiki></tt>
'''Шаг 2'''Перед полномасштабным использованием новой версии мы рекомендуем по возможности протестировать ее на одной или нескольких трансляциях.
Установка публичного ключаПри возникновении каких-либо проблем просьба писать на форум http://forum.torrentstream.org либо на почту support@acestream.net. Для этого необходмо выполнить следующую команду:
''DebianСтарые версии временно доступны по прямым ссылкам:'' <tt><nowiki>wget -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -</nowiki></tt>
'''Ubuntu:''':* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb <tt><nowiki>sudo wget * http://dl.acestream.org/ubuntu/acestream-O engine_2.0.8- 1quantal6_amd64.deb* http://repodl.acestream.org/keysubuntu/acestream-engine_2.0.8-1quantal6_i386.deb* http://dl.publicacestream.key | sudo aptorg/ubuntu/acestream-key add engine_2.0.8-<1raring6_amd64.deb* http://nowiki><dl.acestream.org/tt>ubuntu/acestream-engine_2.0.8-1raring6_i386.deb
'''Шаг 3Debian''':* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb
Установка нужно пакета'''CentOS 6''':* http://dl. Например, для установка движка, нужно установить пакет acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz
''Debian'' <ttspan style="color: #900;">apt-get updateВНИМАНИЕ!</tt> <tt>apt-get install acestream-engine</ttspan>В ближайшее время поддержка старых версий будет прекращена.
''Ubuntu'' <ttspan style="color: #009;">sudo apt-get updateВАЖНО!</tt> <tt>sudo apt-get install acestream-engine</ttspan>Все трансляции, созданные с помощью новой версии Ace Stream (2.1 и выше) не поддерживаются клиентским ПО старых версий (2.0.х и ниже). При попытке просмотреть новую трансляцию с помощью старого движка будет выдаваться ошибка "Cannot load transport file"
====Изменения в параметрах запуска====В репозитории для Ubuntu доступны следующие пакеты:*'''acestream-engine''' - движок*'''acestream-mozilla-plugin''' - плагин для браузеров*'''acestream-player''' - десктопный плеер*'''acestream-player-data''' - набор общих библиотек для плеера новой версии изменились некоторые параметры запуска источников и плагина*'''acestream-full''' - полный пакетузлов поддержки из командной строки, который включает в себя все вышеперечисленныепоэтому запуск со старой командной строкой работать не будет.
Для Debian доступен только Основные изменения:* используется один исполняемый файл <tt>acestreamengine</tt>; различные режимы запуска (источник, узел поддержки) задаются опциями:** вместо <tt>acestreamengine-stream</tt> следует запускать <tt>acestreamengine --stream-source</tt>** вместо <tt>acestreamengine-node</tt> следует запускать <tt>acestreamengine --stream-node</tt>** вместо <tt>acestreamengine-client-console</tt> следует запускать <tt>acestreamengine --client-console</tt>** вместо <tt>acestreamengine-client-gtk</tt> следует запускать <tt>acestreamengine --client-gtk</tt>* изменена система логирования. В старых версия движок (acestreamвсю отладочную информацию выводил в STDERR и для записи логов в файл требовалось перенаправлять вывод. В новой версии можно в опциях задать, куда писать логи -engine)в STDOUT, в STDERR, в файл либо в syslog. Для файлов поддерживается ротация логов по размеру.Описание всех опций смотрите в разделе [[#Команда acestreamengine|Команда acestreamengine]]
=== Установка пакет ACE Stream на Ubuntu из deb-пакета Команда acestreamengine===Можно установить ACE Начиная с версии 2.1 Ace Stream на Ubuntu без использования репозитория. Для этого необходимо скачать установочный пакет по одной из ссылок ниже и установить пакет через менеджер пакетов (напримерEngine для Linux представляет собой один исполняемый файл <tt>acestreamengine</tt>, двойным кликом на скачанный файл пакета)который работает в различных режимах в зависимости от заданных параметров.
Пакет для 32-битных версий UbuntuРежим работы задается одним из следующих параметров: * <tt>http:--client-console</tt> - запустить движок в режиме клиента из консоли (без графического интерфейса)* <tt>--client-wx</dl.torrentstream.orgtt> - запустить движок в режиме клиента с графическим интерфейсом WX* <tt>--client-gtk</productstt> - запустить движок в режиме клиента с графическим интерфейсом GTK* <tt>--stream-source</acestreamtt> - запустить источник трансляции* <tt>-full-stream-node</ubuntutt> - запустить узел поддержки* <tt>--create-transport</i368tt> - создать транспортный файл из существующего контента (VOD)* <tt>--create-transport-multi</latesttt> - создать мультипотоковый транспортный файл* <tt>--version</tt>- показать версию движка
Пакет для 64-битных версий Ubuntu: <tt>http://dlКаждый режим работы имеет свои обязательные и необязательные параметры, описанные в соответствующих разделах.torrentstream.org/products/acestream-full/ubuntu/amd64/latest</tt>
Поддерживаемые версии Ubuntu: 11.10Также всех режимов работы есть общие параметры, 12которые управляют выводом отладочной информации.04, 12.10* <tt>--log-stdout</tt> - выводить информацию в STDOUTДанный установочный пакет является аналогом пакета * <tt>acestream-full-log-stderr</tt> из репозитория и включает - выводить информацию в себя движок, плеер и плагин для браузеров.STDERR* <tt>--log-file PATH</tt> - выводить информацию в указанный файл==Запуск трансляции==* <tt>--log-max-size SIZE</tt> - максимальный размер файла (в байтах)* <tt>--log-backup-count COUNT</tt> - сколько резервных логов хранить (резервный лог файл создается при достижении лимита, указанного паметром --log-max-size)===Основные термины===* <tt>--log-file-buffer SIZE</tt> - включить буферизацию вывода в файл (с использованием буфера указанного размера в байтах)* <tt>--log-syslog HOST</tt> - выводить информацию в syslog-сервер по указанному адресу*'''Источник''' <tt>--log-syslog- программа, которая принимает на вход HTTPport PORT</tt> - порт syslog-поток трансляции и обеспечивает просмотр трансляции с помощью ПО ACE Streamсервера*'''Узел поддержки''' <tt>--log-syslog- программа, позволяющая масштабировать трансляцию за счет использования дополнительного серверного оборудования и интернетfacility FACILITY</tt> -каналовиспользуемый facility*'''Клиент''' <tt>- ПО ACE Stream, которое используется для просмотра трансляции-log-syslog-buffer SIZE</tt> - включить буферизацию вывода в syslog (с использованием буфера указанного размера в байтах)
===Общая схема работы===
Организация трансляции начинается с запуска источника (команда <tt>acestreamengine-stream</tt>).
Источник принимает на вход HTTP-поток (в данный момент поддерживаются HTTP-потоки с инкапсуляцией MPEG-TS) с орининалом оригиналом трансляции и после запуска создает файл с расширением acelive. Данный файл является уникальным идентификатором трансляции и используется клиентами для подключения и просмотра.
===Синтаксис команды acestreamengine--stream-source===Команда <tt>acestreamengine--stream-source</tt> запускает источник трансляции.
''обязательные параметры''
*<tt>--name NAME(*)</tt> - название трансляции (это название используется при создании файла acelive и других служебных файлов)
*<tt>--source SOURCE</tt> - источник (ссылка на http-поток)
*<tt>--bitrate BITRATE(*)</tt> - средний битрейт потока в байтах в секунду
''необязательные параметры''
*<tt>--title TITLE(*)</tt> - "читабельное" название транляции трансляции (это название выводится у клиентов). Если не задано, берется из --name*<tt>--destdir DESTDIR</tt> - устаревшний устаревший параметр, лучше использовать --cache-dir и --publish-dir
*<tt>--cache-dir CACHE_DIR</tt> - папка для создания служебных файлов (кеш трансляции и другие)
*<tt>--publish-dir PUBLISH_DIR</tt> - папка, в которой будет создан acelive-файл
*<tt>--piecesize PIECESIZE(*)</tt> - размер куска в байтах , в степени 2 (если не задан, выставляется автоматически в зависимости от битрейта)*<tt>--duration DURATION(*)</tt> - размер кеша трансляции в формат ЧЧ:ММ:СС (по умолчанию один час: 01:00:00)*<tt>--host HOST(*)</tt> - вручную задать адрес локального трекера*<tt>--port PORT(*)</tt> - порт, на котором работает движок. По умолчанию 7764.*<tt>--skip-internal-tracker(*)</tt> - отключить локальный трекер*<tt>--add-authorized-peers(*)</tt> - добавить список авторизованных пиров в acelive файл*<tt>--private-source(*)</tt> - сделать источник приватным*<tt>--support-node SUPPORT_NODE(*)</tt> - добавить узел поддержки (в формате ip:port). Этот параметр может встречаться несколько раз, если нужно добавить несколько узлов поддержки.*<tt>--tracker TRACKER(*)</tt> - добавить трекер (announce url). Этот параметр может встречаться несколько раз.*<tt>--trackers TRACKERSmaxclients MAXCLIENTS</tt> - максимальное количество пиров, на которые одновременно отдаются данные с источника. По умолчанию 7.*<tt>--log-debug DEBUG</tt> - установить уровень отладки (по умолчанию 0 - минимальный)*<tt>--source-read-timeout SECONDS</tt> - старый формат добавления трекеров таймаут на чтение данных из оригинального источника (список announce url в секундах). По умолчанию 30.*<tt>--source-reconnect-interval SECONDS</tt> - интервал в секундах, через запятую)который движок попробует повторно подсоединиться к оригинальному источнику при обрыве связи. По умолчанию 5.*<tt>--pid-file-dir PATH</tt> - папка, в которой будет создан pid-файл движка. По умолчанию /tmp.*<tt>--provider-key PROVIDER_KEY(*)</tt> - ключ провайдера (только используется для партнерской программы)*<tt>--sid (*)</tt> - идентификатор трансляции для статистики (используется для партнерской программы)*<tt>--permanent (*)</tt> - отметить трансляцию, которая идет 24/7 (круглосуточная трансляция)*<tt>--date-start YYYY-MM-DD HH:mm:ss (*)</tt> - указать дату и время начала трансляции (для коммерческих трансляцийс ограниченным временем вещания)*<tt>--maxclients MAXCLIENTSdate-end YYYY-MM-DD HH:mm:ss (*)</tt> - максимальное количество пиров, на которые одновременно отдаются данные указать дату и время окончания трансляции (для трансляций с источникаограниченным временем вещания)*<tt>--premium (*)</tt> - запросить статус "премиум" для трансляции*<tt>--showupload-pieceslimit</tt> - выводить ограничить скорость отдачи (в лог номера кусков байтах/с, по умолчанию 0 - не ограничивать)*<tt>--max-connections</tt> - максимальное общее кол-во соединений (по мере их созданияумолчанию 1000)*<tt>--showmax-peers</tt> - периодически выводить максимальное кол-во подключений к пирам (по умолчанию 50)*<tt>--service-remote-access</tt> - разрешить удаленный просмотр статистики*<tt>--service-access-token</tt> - ключ доступа для удаленной статистики*<tt>--stats-report-interval</tt> - интервал в лог список подключенных пировсекундах между обновлениями внутренней статистики (по умолчанию 60)*<tt>--debug DEBUGstats-report-peers</tt> - установить уровень отладкиобновлять данные по пирам во внутренней статистике
''дополнительно''
*<tt>-h, --help</tt> - показать описание команд
''примечание'' Изменение параметров, отмеченных звездочками, приводит к изменению Content ID трансляции ===Синтаксис команды acestreamengine--stream-node===Команда <tt>acestreamengine--stream-node</tt> запускает узел поддержки
''обязательные параметры''
*<tt>--allow-support-download</tt> - разрешить получение данных от других узлов поддержки
*<tt>--allow-peers-download</tt> - разрешить получение данных от обычных пиров
*<tt>--max-incoming-connects MAX_INCOMING_CONNECTSconnections MAX_CONNECTIONS</tt> - маскимальное максимальное общее кол-во входящих соединений (от других пиров) (по умолчанию 1000)*<tt>--max-outgoing-connects MAX_OUTGOING_CONNECTSpeers MAX_PEERS</tt> - маскимальное максимальное кол-во исходящих соединений (подключений к другим пирам) (по умолчанию 50)
*<tt>--max-upload-slots MAX_UPLOAD_SLOTS</tt> - максимальное количество пиров, на которые одновременно отдаются данные с узла поддержки (по умолчанию 7)
*<tt>--max-download-speed MAX_DOWNLOAD_SPEED</tt> - максимальная скорость загрузки (байт/с). По умолчанию 0 (без ограничений).
*<tt>--max-upload-speed MAX_UPLOAD_SPEED</tt> - максимальная скорость отдачи (байсбайт/с). По умолчанию 0 (без ограничений).*<tt>--showstats-report-piecesinterval STATS_REPORT_INTERVAL</tt> - выводить интервал в лог номера кусков секундах между обновлениями внутренней статистики (по мере их загрузкиумолчанию 60)*<tt>--showstats-report-peers</tt> - периодически выводить в лог список подключенных пировобновлять данные по пирам во внутренней статистике*<tt>--service-remote-access</tt> - разрешить удаленный просмотр статистики*<tt>--statsservice-reportaccess-interval STATS_REPORT_INTERVALtoken</tt> - задать интервал в секундах ключ доступа для вывода в лог информации о скорости загрузки/отдачи. По умолчанию 0 (не выводить).удаленной статистики*<tt>--log-debug DEBUG</tt> - установить уровень отладки
''дополнительно''
Если в acelive-файл не был добавлен список авторизованных узлов, либо у клиента установлена старая версия ACE Stream, которая не распознает данный список, то авторизованным узлом считается узел, IP адрес которого совпадает с адресом первого трекера в списке трекеров. Если встроенный трекер на источнике не отключен, то он будет первым в списке и клиенты будут считать источник авторизованным узлом. В случае, если встроенный трекер отключен, для поддержки старых клиентов мы рекомендуем ставить на первое место трекер, расположенный на том же сервере, что и источник трансляции (чтобы адреса первого трекера и источника совпадали), либо использовать как минимум один узел поддержки (чтобы клиенты при старте могли установить соединение сразу с двумя пирами, даже если больше никто не смотрит трансляцию).
 
===Timeshift===
Функция "Timeshift" дает пользователям возможность осуществить перемотку трансляции на некоторое время назад, а также поставить трансляцию на паузу и вернуться к просмотру в удобное для них время.
 
Время, на которое может осуществляться перемотка назад, задается при создании трансляции опцией <tt>--duration</tt>. Время указывается в формате ЧЧ:ММ:СС.
 
Например, при указании опции <tt>--duration 00:30:00</tt> будет задан интервал 30 минут.
===Примеры===
Для примеров предроложим предположим наличие локальной сети с тремя серверами:
*192.168.1.1 - сервер для источника
*192.168.1.2 - сервер для узла поддержки
На сервере 192.168.1.1 запускаем источник:
<tt>acestreamengine--stream -source \
--name "test" \
--title "Тестовая трансляция" \
--cache-dir "/tmp/streams" \
--add-authorized-peers \
> /tmp/test-source.log 2>&1</tt> Последняя строка используется для записи логов в файл /tmp/test-source.log. <tt>acestreamengine-streamstdout</tt> выводит всю отладочную информацию на консоль в STDERR.
Опция <tt>--add-authorized-peers</tt> добавляет в acelive-файл список авторизованных узлов (в данном случае это источник: 192.168.1.1).
В данном примере предполагаем, что XBT Tracker установлен и запущен на сервере 192.168.1.1.
Запуск трансляции теперь будет выглядеть таким образом:
<tt>acestreamengine--stream -source \
--name "test" \
--title "Тестовая трансляция" \
--skip-internal-tracker \
--tracker "udp://192.168.1.1:2710/announce" \
> /tmp/test-source.-log 2>&1-stdout</tt>
Опция <tt>--skip-internal-tracker</tt> отключает встроенный трекер, опция <tt>--tracker</tt> подключает внешний трекер.
Для максимально эффективной работы схемы с узлами поддержки источнику необходимо сообщить адреса этих узлов с помощью опции <tt>--support-node</tt>:
<tt>acestreamengine--stream -source \
--name "test" \
--title "Тестовая трансляция" \
--support-node "192.168.1.2:8621" \
--support-node "192.168.1.3:8621" \
> /tmp/test-source.-log 2>&1-stdout</tt>
Запускаем узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 (команды для запуска одинаковые):
<tt>acestreamengine--stream-node \
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--source-node "192.168.1.1:7764" \
--allow-source-download \
> /tmp/test-node.-log 2>&1-stdout</tt>
Опция <tt>--source-node</tt> задает адрес источника.
На сервере 192.168.1.2 это будет выглядеть так:
<tt>acestreamengine--stream-node \
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--support-node "192.168.1.3:8621" \
--allow-support-download \
> /tmp/test-node.-log 2>&1-stdout</tt>
На сервере 192.168.1.3:
<tt>acestreamengine--stream-node \
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--support-node "192.168.1.2:8621" \
--allow-support-download \
> /tmp/test-node.-log 2>&1-stdout</tt>
====Приватный источник с двумя узлами поддержки====
Иногда может возникнуть необходимость запретить клиентам напрямую обращаться к источнику трансляции. Например, источник может быть физически расположен на сервере в защищенной зоне без доступа из внешнего мира. В этом случае трансляцию можно организовать по следующей схеме:
*источник делается приватным (получать от него данные смогут только узлы поддержки, указанные явным образом)
*узлы поддержки получают данные от источника и отдают клиентам
*клиенты получают данные от узлов поддержки
== Просмотр трансляции пользователямиДля того, чтобы сделать источник приватным, следует указать опцию <tt>--private-source</tt>: <tt>acestreamengine --stream-source \ --name "test" \ --title "Тестовая трансляция" \ --source "<nowiki>http://192. ==168.1.100/stream</nowiki>" \ --bitrate 300000 \ --port 7764 \ --publish-dir "/home/www/streams" \ --cache-dir "/tmp/streams" \ --add-authorized-peers \ --skip-internal-tracker \ --tracker "udp://192.168.1.2:2710/announce" \ --support-node "192.168.1.2:8621" \ --support-node "192.168.1.3:8621" \ --private-source \ --log-stdout</tt>
Если два основных способа просмтра трансляцииСледует обратить внимание на то, что в данной конфигурации адрес трекера изменен на <tt>udp://192.168.1.2:2710/announce</tt>. Это сделано для поддержки старых версий клиентов, которые не обрабатывают список авторизованных пиров (подробнее здесь [[#Авторизованные узлы|Авторизованные узлы]]).
# пользователь скачивает файл Узлы поддержки на серверах 192.tslive и запускает его в TS Player# организатор трансляции создает веб-страницу для просмотра трансляции, пользователи заходят на данную страницу и смотрят трансляцию через браузер168В качестве шаблона для такой страницы можно использовать http://torrentstream1.org/stream/test2 и 192.php168. Необходимо только изменить ссылку на файл 1.tslive в этой строке3 запускаем как обычно:  <tt>this.loadTorrent("http://torrentstream.net/streams/test2.mpegts.tslive");</tt>  == Мониторинг трансляции == Программа tsengineacestreamengine --stream выводит всю отладочную информацию в STDERR. Успешный страрт трансляции выглядит примерно таким образом:-node \ --url "<ttnowiki>host:~# tsengine-stream --name test --source http://84192.22168.1591.204:8006 --bitrate 350000 --host mysite.com --destdir /tmp1/streams tracker url: http://mysitetest.com:7764/announceacelive</nowiki>" \ bitrate: 350000 piece size: 262144 dest --state-dir: "/tmp/streams" \ --source---------------------- createlivestream: open stream: url http://84node "192.22168.1591.204:8006 reader builtin 2012-07-16 12:56:36 stream: started input thread 2012-07-16 12:56:37 stream: created piece 0 speed 131.12 KiB/s 2012-07-16 12:56:38 stream: created piece 1 speed 183.15 KiB/s 2012-07-16 12:56:39 stream: created piece 2 speed 198.34 KiB/s7764" \ 2012-07-16 12:56:40 stream: created piece 3 speed 196.96 KiB/s 2012allow-07source-16 12:56:41 stream: created piece 4 speed 199.23 KiB/sdownload \ 2012-07-16 12:56:43 stream: created piece 5 speed 203.08 KiB/s 2012-07log-16 12:56:44 stream: created piece 6 speed 206.37 KiB/sstdout</tt> Основная выводимая информация: номера создаваемых кусков и скорость загрузки данных от источника трансляции. Остановка трансляции осуществляется нажатием Ctrl-C

Navigation menu