379
edits
Changes
→Запуск трансляции
Данный установочный пакет является аналогом пакета <tt>acestream-full</tt> из репозитория и включает в себя движок, плеер и плагин для браузеров.
== Запуск трансляции ==
===Общая схема работы===
Организация трансляции начинается с запуска источника (команда <tt>acestreamengine-stream</tt>).
Источник принимает на вход HTTP-поток (в данный момент поддерживаются HTTP-потоки с инкапсуляцией MPEG-TS) с орининалом трансляции и после запуска создает файл с расширением acelive. Данный файл является уникальным идентификатором трансляции и используется клиентами для подключения и просмотра.
===Синтаксис команды acestreamengine-stream===Команда <tt>'''-acestreamengine-name'''stream</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> - размер куска в байтах (если не задан, выставляется автоматически в зависимости от битрейта)
*<tt>--duration DURATION</tt> - размер кеша трансляции в формат ЧЧ:ММ:СС (по умолчанию один час: 01:00:00)
*<tt>--host HOST</tt> - вручную задать адрес локального трекера
*<tt>--port PORT</tt> - порт, на котором работает движок
*<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 TRACKERS</tt> - старый формат добавления трекеров (список announce url через запятую)
*<tt>--provider-key PROVIDER_KEY</tt> - ключ провайдера (только для коммерческих трансляций)
*<tt>--maxclients MAXCLIENTS</tt> - максимальное количество пиров, на которые одновременно отдаются данные с источника
*<tt>--show-pieces</tt> - выводить в лог номера кусков по мере их создания
*<tt>--show-peers</tt> - периодически выводить в лог список подключенных пиров
*<tt>--debug DEBUG</tt> - установить уровень отладки
''дополнительно''*<tt>'''-h, --source'''help</tt>- показать описание команд
''обязательные параметры''
*<tt>--url URL></tt> - ссылка на acelive файл трансляции
''необязательные параметры''*<tt>--port PORT</tt> - порт (по умолчанию 8621)*<tt>--state-dir STATE_DIR</tt> - папка для временных файлов (удаляется после остановки узла поддержки)*<tt>--source-node SOURCE_NODE</tt> - адрес источника трансляции (ip:port)*<tt>--support-node SUPPORT_NODE</tt> - добавить адрес другого узла поддержки (ip:port). Этот параметр может встречаться несколько раз.*<tt>--allow-source-download</tt> - разрешить получение данных от источника*<tt>--allow-support-download</tt> - разрешить получение данных от других узлов поддержки*<tt>--allow-peers-download</tt> - разрешить получение данных от обычных пиров*<tt>--max-incoming-connects MAX_INCOMING_CONNECTS</tt> - маскимальное кол-во входящих соединений (от других пиров) (по умолчанию 1000)*<tt>--max-outgoing-connects MAX_OUTGOING_CONNECTS</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>--show-pieces</tt> - выводить в лог номера кусков по мере их загрузки*<tt>--show-peers</tt> - периодически выводить в лог список подключенных пиров*<tt>--stats-report-interval STATS_REPORT_INTERVAL</tt> - задать интервал в секундах для вывода в лог информации о скорости загрузки/отдачи. По умолчанию 0 (не выводить).*<tt>'''--destdir'''debug DEBUG</tt>- установить уровень отладки
===Встроенный трекер===
Встроенный трекер - это трекер встроенный в источник трансляции. Если он не отключен опцией <tt>--skip-internal-tracker</tt>, то его адрес будет автоматически добавлен в acelive-файл.
Последние версии ПО ACE Stream поддерживают использование списка авторизованных узлов в acelive-файле. Для этого при создании трансляции задается опция <tt>--add-authorized-peers</tt>, после чего формируется список авторизованных узлов и добавляется в acelive-файл. В список авторизованных узлов попадает источник трансляции (если это не приватный источник) и все указанные узлы поддержки. Клиенты, которые получили данный acelive-файл, используют список для определения того, является ли какой-либо узел авторизованным.
На сервере 192.168.1.1 предполагается наличие веб-сервера с корневой папкой <tt>/home/www</tt>, а также двух папок:
*<tt>/home/www/streams</tt> - для хранения acelive-файлов, которые будут доступны для скачивания по ссылке вида <tt><nowiki>http://192.168.1.1/streams/test.acelive</nowiki></tt>
*<tt>/tmp/streams</tt> - для хранения кэша и служебных файлов трансляций
Последняя строка используется для записи логов в файл /tmp/test-source.log. <tt>acestreamengine-stream</tt> выводит всю отладочную информацию на консоль в STDERR.
Опция <tt>'''--host'''add-authorized-peers</tt>добавляет в acelive-файл список авторизованных узлов (в данном случае это источник: 192.168.1.1).
Для просмотра трансляции клиенты могут скачать файл трансляции по ссылке <tt><nowiki>http://192.168.1.1/streams/test.acelive</nowiki></tt> и запустить его в плеере ACE Stream, либо использовать другие способы ([[Способы просмотра трансляции]]).
В данном примере предполагаем, что XBT Tracker установлен и запущен на сервере 192.168.1.1.
Запуск трансляции теперь будет выглядеть таким образом:
<tt>acestreamengine-stream \
--name "test" \
--title "Тестовая трансляция" \
--source "<nowiki>http://192.168.1.100/stream</nowiki>" \
--bitrate 300000 \
--publish-dir "/home/www/streams" \
--cache-dir "/tmp/streams" \
--add-authorized-peers \
--skip-internal-tracker \
--tracker "udp://192.168.1.1:2710/announce" \
> /tmp/test-source.log 2>&1</tt>
Опция <tt>'''--trackers'''skip-internal-tracker</tt> отключает встроенный трекер, опция <tt>--tracker</tt>подключает внешний трекер.
Для максимально эффективной работы схемы с узлами поддержки источнику необходимо сообщить адреса этих узлов с помощью опции <tt>--support-node</tt>:
<tt>acestreamengine-stream \
--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.1:2710/announce" \
--support-node "192.168.1.2:8621" \
--support-node "192.168.1.3:8621" \
> /tmp/test-source.log 2>&1</tt>
Запускаем узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 (команды для запуска одинаковые): <tt>'''acestreamengine-node \ -provider-key'''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</tt>
Опция <tt>--allow-source-download</tt> разрешает узлу поддержки скачивать данные с источника (скачивание с других узлов поддержки и клиентов в данном случае запрещено).
Если необходимо разрешить узлам поддержки скачивать данные с других узлов поддержки, то следует задать список других узлов опцией <tt>'''--maxclients'''support-node</tt> и разрешить скачивание опцией <tt>--allow-support-download</tt>.
На сервере 192.168.1.3:
<tt>acestreamengine-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 \
--support-node "192.168.1.2:8621" \
--allow-support-download \
> /tmp/test-node.log 2>&1</tt>
== Просмотр трансляции пользователями. ==