117
edits
Changes
no edit summary
== Installation Launching broadcast==
=== Installing ACE Stream on Debian/Ubuntu from repository Main terms=== *'''Step 1Source''' Add link on appropriate repository into <tt>/etc/apt/sources.list</tt> file. Repository should be selected according to operating system. - a program that accepts broadcast''Debian 6+:'' <tt><nowiki>deb http://repo.acestream.org/debian/ squeeze main</nowiki></tt> or <tt><nowiki>deb http://repo.acestream.org/debian/ sid main</nowiki></tt> Note: packages in sid repository are assembled with dependencies that correspond to official sids HTTP-repositories stream and provides playback of Debianbroadcast using ACE Stream software.If you don*'t know, which repository to choose, use squeeze. ''Ubuntu 11.10:Support node'' <tt><nowiki>deb http://repo.acestream.org/ubuntu/ oneiric main</nowiki></tt> ''Ubuntu 12.04:'' <tt><nowiki>deb http://repo.acestream.org/ubuntu/ precise main</nowiki></tt> ''Ubuntu 12- a program allowing to scale broadcast using additional server equipment and Internet-channels.10:'' <tt><nowiki>deb http://repo.acestream.org/ubuntu/ quantal main</nowiki></tt> *'''Step 2Client''' Installing public key- ACE Stream software, which is used to play broadcast. To do this you have to run the following command:
''Debian'Ubuntu''': <tt>apt* 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-get update<engine_2.0.8-1precise6_i386.deb* http:/tt>/dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb <tt>apt* http://dl.acestream.org/ubuntu/acestream-get install engine_2.0.8-1quantal6_i386.deb* http://dl.acestream.org/ubuntu/acestream-engine<engine_2.0.8-1raring6_amd64.deb* http://dl.acestream.org/ubuntu/tt>acestream-engine_2.0.8-1raring6_i386.deb
''Ubuntu'Debian''': <tt>sudo apt* http://dl.acestream.org/debian/acestream-engine_2.0.8-get update<1sid5_amd64.deb* http://dl.acestream.org/debian/tt>acestream-engine_2.0.8-1sid5_i386.deb <tt>sudo apt* http://dl.acestream.org/debian/acestream-engine_2.0.8-get install 1squeeze5_amd64.deb* http://dl.acestream.org/debian/acestream-engine</tt>engine_2.0.8-1squeeze5_i386.deb
<span style=== Installing ACE "color: #009;">IMPORTANT!</span> All broadcasts created via new version of Ace Stream package on Ubuntu from deb-package ===You can install ACE Stream on Ubuntu without using repository(2. To do this you need to download the installation package 1 and higher) are not suppported by one client software of links below old versions (2.0.х and install it lower). If you attempt to watch a new broadcast using a package manager (for examplethe old engine, by double click on downloaded package)an error "Cannot load transport file" will appear.
===Common work scheme ===
The source accepts HTTP-stream to input (at this moment HTTP-streams with MPEG-TS encapsulation are supported) with original broadcast and creates a file with acelive extension after the launch. This file is a unique identifier of broadcast and it is used for connection and playback by clients.
===Syntax of acestreamengine--stream -source command===<tt>acestreamengine--stream-source</tt> command launches broadcast source.
''required parameters''
*<tt>--cache-dir CACHE_DIR</tt> - directory for creating service files (broadcast cache and others)
*<tt>--publish-dir PUBLISH_DIR</tt> - directory, in which acelive-file will be created
*<tt>--piecesize PIECESIZE</tt> - piece size in bytes , power of two (if it's not specified, it's set automatically depending on bitrate)
*<tt>--duration DURATION</tt> - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)
*<tt>--host HOST</tt> - set address of local tracker manually
*<tt>--provider-key PROVIDER_KEY</tt> - provider's key (only for commercial broadcasts)
*<tt>--maxclients MAXCLIENTS</tt> - maximum number of peers, on which data from the source are given simultaneously
*<tt>--showlog-piecesdebug DEBUG</tt> - show set the debug level (default is 0 - minimum log level)*<tt>--source-read-timeout SECONDS</tt> - timeout for reading data from the original source (in log numbers seconds). Default is 30.*<tt>--source-reconnect-interval SECONDS</tt> - interval is seconds, after which the engine will try to reconnect to the original source in case of pieces connection lost. Default is 5.*<tt>--pid-file-dir PATH</tt> - the directory where engine's pid file is created. Default is /tmp.*<tt>--provider-key</tt> - provider key (for an affiliate program)*<tt>--sid</tt> - content identificator for statistics(for an affiliate program)*<tt>--permanent</tt> - mark the broadcast as they are created24/7 (it's available all the time)*<tt>--date-start YYYY-MM-DD HH:mm:ss</tt> - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)*<tt>--date-end YYYY-MM-DD HH:mm:ss</tt> - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)*<tt>--premium</tt> - request a "premium" status for the broadcast*<tt>--upload-limit</tt> - limit upload speed (bytes/s, default is 0 - don't limit)*<tt>--max-connections</tt> - limit total number of connections (default is 1000)*<tt>--showmax-peers</tt> - periodically show in log list limit number of connected connections to other peers(default is 50)*<tt>--service-remote-access</tt> - enable remote statistics*<tt>--service-access-token</tt> - password for remote statistics access*<tt>--stats-report-interval</tt> - interval in seconds between internal statistics update (default is 60)*<tt>--debug DEBUGstats-report-peers</tt> - set debug levelupdate information about connected peers in the internal statistics (increases CPU load)
''additional''
*<tt>-h, --help</tt> - show commands' description
=== Syntax of acestreamengine--stream-node command===<tt>acestreamengine--stream-node</tt> command launches support node.
''required parameters''
*<tt>--allow-support-download</tt> - allow receiving data from other support nodes
*<tt>--allow-peers-download</tt> - allow receiving data from ordinary peers
*<tt>--max-incoming-connects MAX_INCOMING_CONNECTSconnections MAX_CONNECTIONS</tt> - maximum limit number of incoming total connections (from other peers) (by default: is 1000)*<tt>--max-outgoing-connects MAX_OUTGOING_CONNECTSpeers MAX_PEERS</tt> - maximum limit number of outgoing connections (to other peers) (by default: is 50)
*<tt>--max-upload-slots MAX_UPLOAD_SLOTS</tt> - maximum number of peers, on which data from support node are given simultaneously (by default: 7)
*<tt>--max-download-speed MAX_DOWNLOAD_SPEED</tt> - maximum download speed (byte/s). By default: 0 (no restrictions).
*<tt>--max-upload-speed MAX_UPLOAD_SPEED</tt> - maximum upload speed (byte/s). By default: 0 (no restrictions).
*<tt>--showlog-piecesdebug DEBUG</tt> -show in set the debug level (default is 0 - minimum log numbers of pieces as they are createdlevel)*<tt>--service-remote-access</tt> - enable remote statistics*<tt>--showservice-peersaccess-token</tt> - periodically show in log list of connected peers password for remote statistics access*<tt>--stats-report-interval STATS_REPORT_INTERVAL</tt> - set interval in seconds to show in log information about download/upload speep. By between internal statistics update (default: 0 (do not showis 60).*<tt>--debug DEBUGstats-report-peers</tt> - set debug levelupdate information about connected peers in the internal statistics (increases CPU load)
''additional''
We launch the source on server 192.168.1.1:
<tt>acestreamengine--stream -source \
--name "test" \
--title "Test broadcast" \
--publish-dir "/home/www/streams" \
--cache-dir "/tmp/streams" \
--add-authorized-peers \ > /tmp/test-source.log 2>&1</tt>
The last line is used to write logs into file /tmp/test-source.log. By default <tt>acestreamengine--stream-source</tt> shows outputs all debug information in console in STDERRthe STDOUT.
<tt>--add-authorized-peers</tt> option adds the list of authorized nodes to acelive-file (in this case, it's the source: 192.168.1.1).
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.
Now broadcast's launch will look like:
<tt>acestreamengine--stream -source \
--name "test" \
--title "Test broadcast" \
--add-authorized-peers \
--skip-internal-tracker \
--tracker "udp://192.168.1.1:2710/announce" \ > /tmp/test-source.log 2>&1</tt>
<tt>--skip-internal-tracker</tt> option disconnects embedded tracker, <tt>--tracker</tt> option connects external tracker.
using <tt>--support-node</tt> option:
<tt>acestreamengine --supportstream-node</tt>: <tt>acestreamengine-stream source \
--name "test" \
--title "Test broadcast" \
--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>
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):
<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</tt>
Option <tt>--source-node</tt> sets source address.
On server 192.168.1.2 it will look like:
<tt>acestreamengine--stream-node \
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--allow-source-download \
--support-node "192.168.1.3:8621" \
--allow-support-download \ > /tmp/test-node.log 2>&1</tt>
On server 192.168.1.3:
<tt>acestreamengine--stream-node \
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--allow-source-download \
--support-node "192.168.1.2:8621" \
--allow-support-download \ > /tmp/test-node.log 2>&1</tt>
====Приватный источник с двумя узлами поддержкиPrivate source with two support nodes====Иногда может возникнуть необходимость запретить клиентам напрямую обращаться к источнику трансляцииSometimes it may be necessary to prevent clients from direct access to broadcast source. НапримерFor example, источник может быть физически расположен на сервере в защищенной зоне без доступа из внешнего мираthe source may be located on server in protected area without access from the outer world. В этом случае трансляцию можно организовать по следующей схемеIn this case broadcast can be organized by the following scheme:*источник делается приватным the source is made private (получать от него данные смогут только узлы поддержкиonly support nodes, указанные явным образомspecified explicitly, can receive data from it)*узлы поддержки получают данные от источника и отдают клиентамsupport nodes receive data from the source and give to clients*клиенты получают данные от узлов поддержкиclients receive data from support nodes
--name "test" \
--title "Тестовая трансляцияTest broadcast" \
--source "<nowiki>http://192.168.1.100/stream</nowiki>" \
--bitrate 300000 \
--support-node "192.168.1.2:8621" \
--support-node "192.168.1.3:8621" \
--private-source \ > /tmp/test-source.log 2>&1</tt> Следует обратить внимание на то, что в данной конфигурации адрес трекера изменен на <tt>udp://192.168.1.2:2710/announce</tt>. Это сделано для поддержки старых версий клиентов, которые не обрабатывают список авторизованных пиров (подробнее здесь [[#Авторизованные узлы|Авторизованные узлы]]).
--url "<nowiki>http://192.168.1.1/streams/test.acelive</nowiki>" \
--state-dir "/tmp" \
--source-node "192.168.1.1:7764" \
--allow-source-download \</tt> ====Recent scripts and configuration examples==== > Python-based launch scripts with configuration examples and some brief explanation available via https:/tmp/test-nodegithub.log 2>&1<com/acestream/tt>streaming-utils