<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.acestream.media/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ffx</id>
	<title>Ace Stream Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.acestream.media/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ffx"/>
	<link rel="alternate" type="text/html" href="https://wiki.acestream.media/Special:Contributions/Ffx"/>
	<updated>2026-10-07T03:55:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=749</id>
		<title>Configuration Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=749"/>
		<updated>2024-04-27T10:02:12Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two configuration files:&lt;br /&gt;
* main (acestream.conf)&lt;br /&gt;
* user-defined (acestream_user.conf)&lt;br /&gt;
&lt;br /&gt;
Engine reads configuration files on startup. First engine loads the main file, then engine reads user-defined file if it exists.&lt;br /&gt;
Options in user-defined file overwrite the same options in the main file.&lt;br /&gt;
&lt;br /&gt;
The reason to have two configuration files is because the auto-update system on Windows prevents main file from being modified. You can change the main file but it will be restored to the original state during the next auto-update.&lt;br /&gt;
&lt;br /&gt;
On Windows files are located here:&lt;br /&gt;
* main: %APPDATA%/ACEStream/engine/acestream.conf&lt;br /&gt;
* user-defined: %APPDATA%/ACEStream/engine/acestream_user.conf&lt;br /&gt;
&lt;br /&gt;
Alternatively, custom user configuration file can be loaded from elsewhere, by using &amp;quot;@&amp;quot; prefix to the file path in the command-line:&lt;br /&gt;
* load custom &amp;quot;ace.conf&amp;quot; file from some directory: &amp;#039;&amp;#039;acestreamengine --client-console @/home/user/ace.conf&amp;#039;&amp;#039;&lt;br /&gt;
Works for both Linux and Windows versions.&lt;br /&gt;
&lt;br /&gt;
Engine does not check configuration files at runtime, they loading once during startup. So if you want to update configuration please follow these steps:&lt;br /&gt;
* stop engine&lt;br /&gt;
* update user-defined configuration file (create it if it doesn&amp;#039;t exist)&lt;br /&gt;
* start engine&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=748</id>
		<title>Configuration Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=748"/>
		<updated>2024-04-27T10:00:33Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two configuration files:&lt;br /&gt;
* main (acestream.conf)&lt;br /&gt;
* user-defined (acestream_user.conf)&lt;br /&gt;
&lt;br /&gt;
Engine reads configuration files on startup. First engine loads the main file, then engine reads user-defined file if it exists.&lt;br /&gt;
Options in user-defined file overwrite the same options in the main file.&lt;br /&gt;
&lt;br /&gt;
The reason to have two configuration files is because the auto-update system on Windows prevents main file from being modified. You can change the main file but it will be restored to the original state during the next auto-update.&lt;br /&gt;
&lt;br /&gt;
On Windows files are located here:&lt;br /&gt;
* main: %APPDATA%/ACEStream/engine/acestream.conf&lt;br /&gt;
* user-defined: %APPDATA%/ACEStream/engine/acestream_user.conf&lt;br /&gt;
&lt;br /&gt;
Alternatively, custom user configuration file can be loaded from elsewhere, by using &amp;quot;@&amp;quot; prefix to the file path in the command-line:&lt;br /&gt;
* load custom &amp;quot;ace.conf&amp;quot; file from some directory: &amp;#039;&amp;#039;acestreamengine --client-console @/home/user/ace.conf&amp;#039;&amp;#039;&lt;br /&gt;
Works for both Linux and Windows versions.&lt;br /&gt;
&lt;br /&gt;
Engine does not check configuration files at runtime, there are only read on startup. So of you want to update configuration please follow these steps:&lt;br /&gt;
* stop engine&lt;br /&gt;
* update user-defined configuration file (create it if it doesn&amp;#039;t exist)&lt;br /&gt;
* start engine&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=744</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=744"/>
		<updated>2021-10-17T12:49:48Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Transition from versions 2.0.х to version 2.1 and higher */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
If you face any problems, please, write to the forum (https://forum.acestream.media/latest) or email &amp;#039;support@acestream.net&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.1.х to version 3.0.x and higher===&lt;br /&gt;
See main article about Ace Stream v.3 - https://wiki.acestream.media/AceStream_3.0/en&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based launch scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=743</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=743"/>
		<updated>2021-10-17T11:01:35Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Transition from versions 2.0.х to version 2.1 and higher */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.1.х to version 3.0.x and higher===&lt;br /&gt;
See main article about Ace Stream v.3 - https://wiki.acestream.media/AceStream_3.0/en&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based launch scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=AceStream_3.0&amp;diff=742</id>
		<title>AceStream 3.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=AceStream_3.0&amp;diff=742"/>
		<updated>2021-10-17T11:00:45Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Где скачать==&lt;br /&gt;
https://wiki.acestream.media/Download&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;#039;&amp;#039;3.0.3&amp;#039;&amp;#039;&lt;br /&gt;
*исправлен баг с падением движка на некоторых трансляциях&lt;br /&gt;
*снижена нагрузка на процессор при отдаче на высоких скоростях&lt;br /&gt;
*оптимизированы алгоритмы поиска новых пиров&lt;br /&gt;
*оптимизировано взаимодействие клиентов со стартовыми серверами&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.2&amp;#039;&amp;#039;&lt;br /&gt;
*добавлена возможность фильтровать трафик на спец. узлах (см. [[#Фильтрация трафика|Фильтрация трафика]])&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.1&amp;#039;&amp;#039;&lt;br /&gt;
*проведена масштабная оптимизация работы всех модулей&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a18&amp;#039;&amp;#039;&lt;br /&gt;
*исправлен баг, из-за которого узлы поддержки могли потерять связь с источником&lt;br /&gt;
*параметр &amp;lt;tt&amp;gt;--title&amp;lt;/tt&amp;gt; стал обязательным (в этом параметре передается &amp;quot;читабельное&amp;quot; название трансляции, которое выводится у пользователей в плеере при просмотре)&lt;br /&gt;
*добавлены два обязательных параметра для источника:&lt;br /&gt;
**&amp;lt;tt&amp;gt;--quality&amp;lt;/tt&amp;gt; - качество канала; возможные значения:&lt;br /&gt;
***SD&lt;br /&gt;
***HD&lt;br /&gt;
**&amp;lt;tt&amp;gt;--category&amp;lt;/tt&amp;gt; - категория канала; возможные значения:&lt;br /&gt;
***informational - Информационный&lt;br /&gt;
***entertaining - Развлекательный&lt;br /&gt;
***educational - Познавательный&lt;br /&gt;
***movies - кино&lt;br /&gt;
***documentaries - Документалистика &lt;br /&gt;
***sport - Спортивный&lt;br /&gt;
***fashion - Мода&lt;br /&gt;
***music - Музыкальный&lt;br /&gt;
***regional - Региональный&lt;br /&gt;
***ethnic - Этнический&lt;br /&gt;
***religion - Религиозный&lt;br /&gt;
***teleshop - Телемагазин&lt;br /&gt;
***erotic_18_plus - Эротический 18+&lt;br /&gt;
***other_18_plus - Другие 18+&lt;br /&gt;
***cyber_games - Cyber Games&lt;br /&gt;
***amateur - Любительский&lt;br /&gt;
***webcam - вебкамера&lt;br /&gt;
***kids - детский&lt;br /&gt;
***series - сериалы&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a12&amp;#039;&amp;#039;&lt;br /&gt;
*значительно оптимизирована нагрузка на процессор&lt;br /&gt;
*ликвидированы утечки памяти&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a5&amp;#039;&amp;#039;&lt;br /&gt;
*добавлены стартовые узлы&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a2&amp;#039;&amp;#039;&lt;br /&gt;
*добавлены узлы поддержки&lt;br /&gt;
*добавлены опции для конфигурации приватных узлов и схемы распределения трафика между узлами поддержки и источником&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a1&amp;#039;&amp;#039;&lt;br /&gt;
*первая альфа-версия&lt;br /&gt;
&lt;br /&gt;
==Как установить поверх старой версии==&lt;br /&gt;
* скачать архив для нужной ОС&lt;br /&gt;
* распаковать во временную папку (например, в /tmp/acestream)&lt;br /&gt;
* скопировать соответствующие файлы из временной папки в корневые папки /usr/bin/ и /usr/share/acestream (все старые файлы и папки можно удалить)&lt;br /&gt;
&lt;br /&gt;
ВАЖНО: для работы новой версии движка должен быть установлен пакет &amp;lt;tt&amp;gt;python-setuptools&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Как запустить без удаления старой версии==&lt;br /&gt;
Альфа-версия может быть запущена на сервере одновременно с любой релизной версией.&lt;br /&gt;
&lt;br /&gt;
Для запуска необходимо:&lt;br /&gt;
* скачать архив для нужной ОС&lt;br /&gt;
* распаковать архив в любую папку (например, в /opt/acestream/engine_new)&lt;br /&gt;
* запустить файл acestreamengine в распакованной папке с параметром --lib-path /path/to/acestream_libraries. Пример:&lt;br /&gt;
 &amp;lt;tt&amp;gt;/opt/acestream/engine_new/acestreamengine --lib-path /opt/acestream/engine_new&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр --lib-path задает путь к библиотекам Ace Stream. По умолчанию используется путь /usr/share/acestream. Если на сервере уже установлена релизная версия движка, то без указания параметра --lib-path будет запущена она. Чтобы точно знать, какая версия движка запустилась, можно проверить версию из командной строки. Например, если уже установлена версия 2.1.6, то без указания --lib-path результат будет такой:&lt;br /&gt;
 &amp;lt;tt&amp;gt;# /opt/acestream/engine_new/acestreamengine --version&lt;br /&gt;
 version: 2.1.6 revision: 293&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С указанием --lib-path запустится новая версия:&lt;br /&gt;
 &amp;lt;tt&amp;gt;# /opt/acestream/engine_new/acestreamengine --lib-path /opt/acestream/engine_new --version&lt;br /&gt;
 version: 3.0.0-a1 revision: 565&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Запуск на CentOS ===&lt;br /&gt;
На CentOS есть некоторые особенности запуска движка.&lt;br /&gt;
&lt;br /&gt;
Стандартная библиотека openssl на CentOS не поддерживает некоторый необходимый для движка функционал. В связи с этим в комплекте с движком для CentOS идет пересобранная библиотека openssl и модуль python-m2crypto, являющийся надстройкой над openssl. Эти библиотеки находятся в папке usr в архиве с движком. Для их использования необходимо скопировать папки lib64 и local из папки usr в соответствующие папки в /usr. Если на сервере уже установлен движок предыдущей версии, то эти библиотеки уже есть в вашей системе и их копировать не нужно.&lt;br /&gt;
&lt;br /&gt;
Для запуска движка под CentOS вместо acestreamengine используется скрипт start.sh в папке с движком.&lt;br /&gt;
&lt;br /&gt;
Этот скрипт устанавливает переменную среды LD_LIBRARY_PATH=/usr/local/ssl/lib перед запуском движка, чтобы использовалась пересобранная версия библиотеки openssl.&lt;br /&gt;
&lt;br /&gt;
Также этот скрипт автоматически передает движку путь к библиотекам через параметр --lib-path, поэтому указывать его дополнительно не нужно.&lt;br /&gt;
&lt;br /&gt;
==Изменения в параметрах запуска==&lt;br /&gt;
В новой версии есть некоторые отличия по параметрам запуска.&lt;br /&gt;
&lt;br /&gt;
===Новые флаги для запуска движка в разных режимах===&lt;br /&gt;
*--stream-source-node (вместо --stream-source)&lt;br /&gt;
*--stream-support-node (вместо --stream-node)&lt;br /&gt;
&lt;br /&gt;
===Новые параметры для настройки кеша===&lt;br /&gt;
*--live-cache-type (string) - тип кеша: disk - хранить кеш на диске в папке, указанной параметром --cache-dir, memory - хранить кеш в оперативной памяти (по умолчанию: disk)&lt;br /&gt;
*--live-cache-size (integer) - максимальный размер кеша в байтах (по умолчанию: 209715200 байт (200 Мб))&lt;br /&gt;
&lt;br /&gt;
===Новые параметры для конфигурации инфраструктуры узлов поддержки===&lt;br /&gt;
*--private-node (0 or 1) - если указать 1, то узел будет приватным (по умолчанию 0)&lt;br /&gt;
*--download-from (string) - добавить адрес к списку узлов, с которых данному узлу разрешено получать данные. Адрес должен задаваться в формате ipv4_address:port. Этот параметр может встречаться несколько раз.&lt;br /&gt;
*--upload-to (string) - добавить адрес к списку узлов, которым данному узлу разрешено отдавать данные. Адрес должен задаваться в формате ipv4_address:port. Этот параметр может встречаться несколько раз.&lt;br /&gt;
*--monitor-node-ip (string) - ipv4 адрес мониторинг-сервера&lt;br /&gt;
&lt;br /&gt;
===Новые параметры для запуска источника===&lt;br /&gt;
*--metatracker (string) - добавить адрес метатрекера в транспортный файл&lt;br /&gt;
*--startup-node (string) - добавить адрес стартового узла в транспортный файл&lt;br /&gt;
&lt;br /&gt;
===Эти параметры уже не используются===&lt;br /&gt;
*--stream-source (изменен на --stream-source-node)&lt;br /&gt;
*--stream-node (изменен на --stream-support-node)&lt;br /&gt;
*--add-authorized-peers (список авторизированных пиров больше не добавляется в транспортный файл)&lt;br /&gt;
*--private-source (заменен на --private-node)&lt;br /&gt;
*--support-node&lt;br /&gt;
*--source-node&lt;br /&gt;
*--allow-source-download&lt;br /&gt;
*--allow-support-download&lt;br /&gt;
*--allow-peers-download&lt;br /&gt;
&lt;br /&gt;
==Новый функционал==&lt;br /&gt;
&lt;br /&gt;
===Настройка узлов поддержки===&lt;br /&gt;
В новой версии узлам поддержки необходимо явным образом указывать, с каких узлов они должны скачивать данные. Для этого используется параметр &amp;lt;tt&amp;gt;--download-from&amp;lt;/tt&amp;gt;. Список узлов, с которых разрешено скачивание, может быть изменен без перезапуска узла поддержки через веб-интерфейс узла (см. ниже). Например, если по адресу 192.168.1.2:7764 запущен узел-источник и мы хотим запустить узел поддержки, который будет качать данные только с источника, то команда для запуска узла поддержки будет выглядеть так:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
 --stream-support-node \&lt;br /&gt;
 --url http://192.168.1.2/transport/test.acelive \&lt;br /&gt;
 --port 8631 \&lt;br /&gt;
 --download-from &amp;quot;192.168.1.2:7764&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Оптимизизация распределения трафика===&lt;br /&gt;
Начиная с версии 3.0.5 узлы поддержки умеют автоматически находить пиров с хорошей скоростью отдачи и подсоединять их к себе. Данный алгоритм позволяет оптимизировать распределение трафика. Во время подключения таких пиров общее кол-во подсоединенных пиров может превысить значение &amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt;. Максимальное кол-во пиров сверх значения &amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; задается опцией &amp;lt;tt&amp;gt;--core-sandbox-max-peers&amp;lt;/tt&amp;gt; (по умолчанию 5). Если задать &amp;lt;tt&amp;gt;--core-sandbox-max-peers&amp;lt;/tt&amp;gt; равным нулю, то алгоритм оптимизации распределения трафика будет отключен, поэтому делать это крайне не рекомендуется.&lt;br /&gt;
&lt;br /&gt;
===Приватные узлы===&lt;br /&gt;
Приватный узел отдает данные только узлам, которые явным образом добавлены в его список разрешенных. Для того, чтобы сделать узел приватным, нужно запустить его с параметром &amp;lt;tt&amp;gt;--private-node 1&amp;lt;/tt&amp;gt;. Для добавления адреса в список разрешенных на отдачу используется параметр &amp;lt;tt&amp;gt;--upload-to&amp;lt;/tt&amp;gt;. Приватным может быть как узел-источник, так узел поддержки. Приватный узел отбивает входящие соединения со всех адресов, кроме указанных параметрами &amp;lt;tt&amp;gt;--download-from&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;--upload-to&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;--monitor-node-ip&amp;lt;/tt&amp;gt;. Для фильтрации используется только ip-адрес (порт не используется). Параметр &amp;lt;tt&amp;gt;--monitor-node-ip&amp;lt;/tt&amp;gt; задает ip-адрес сервера мониторинга и используется в том случае, если нужно обеспечить мониторинг приватного узла (без указание этого параметра приватный узел будет отбивать все запросы от сервера мониторинга).&lt;br /&gt;
&lt;br /&gt;
Пример запуска приватного источника, который будет отдавать данные только узлу поддержки из предыдущего примера:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
  --stream-source-node \&lt;br /&gt;
  --port 7764 \&lt;br /&gt;
  --source &amp;quot;http://brodilo.tv/channel.php&amp;quot; \&lt;br /&gt;
  --name &amp;quot;test&amp;quot; \&lt;br /&gt;
  --title &amp;quot;test&amp;quot; \&lt;br /&gt;
  --bitrate 350000 \&lt;br /&gt;
  --publish-dir /var/www/transport \&lt;br /&gt;
  --cache-dir /var/cache/acestream \&lt;br /&gt;
  --private-node 1 \&lt;br /&gt;
  --upload-to &amp;quot;192.168.1.3:8631&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стартовые узлы===&lt;br /&gt;
Стартовый узел предназначен для обеспечения максимально быстрого старта трансляции у пользователей.&lt;br /&gt;
&lt;br /&gt;
Особенность работы стартового узла - постоянная ротация соединений. При получении новых входящих соединений стартовый узел разрывает соединения с узлами, которые подключились ранее и уже скачали определенный объем данных.&lt;br /&gt;
&lt;br /&gt;
Для запуска движка в режиме стартового узла используется параметр &amp;lt;tt&amp;gt;--stream-startup-node&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Стартовый узел принимает такой же набор параметров, как и узел поддержки.&lt;br /&gt;
&lt;br /&gt;
Стартовый узел принимает такой же набор параметров, как и узел поддержки, плюс некоторые дополнительные параметры:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-max-connections (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - максимальное количество узлов, с которым стартовый узел держит постоянные соединения (если к узлу подключится больше других узлов, чем указано в этом параметре, лишние соединения будут разорваны).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-cleanup-interval (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - интервал очистки лишних соединений в секундах (по умолчанию: 1).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-upload-buffer (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - минимальный буфер в секундах, который будет отдан каждому подсоединившемуся узлу перед тем, как его можно будет отключить&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-time-limit (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - максимальная длительность соединения в секундах, после достижения которой соединение может быть разорвано, даже если узел еще не получил необходмый объем данных.&lt;br /&gt;
&lt;br /&gt;
Пример запуска стартового узла:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
 --stream-startup-node \&lt;br /&gt;
 --url http://192.168.1.2/transport/test.acelive \&lt;br /&gt;
 --port 8632 \&lt;br /&gt;
 --download-from &amp;quot;192.168.1.2:7764&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы стартовый сервер нормально работал, все узлы-клиенты должны знать его адрес и порт.&lt;br /&gt;
Для этого адрес и порт стартового сервера необходимо либо внести в транспортный файл (опция --startup-node при создании трансляции), либо использовать метатрекер для оповещения клиентов об адресах стартовых серверов.&lt;br /&gt;
&lt;br /&gt;
Пример запуска источника с указанием адреса стартового узла:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
  --stream-source-node \&lt;br /&gt;
  --port 7764 \&lt;br /&gt;
  --source &amp;quot;http://brodilo.tv/channel.php&amp;quot; \&lt;br /&gt;
  --startup-node &amp;quot;192.168.1.3:8632&amp;quot;&lt;br /&gt;
  --name &amp;quot;test&amp;quot; \&lt;br /&gt;
  --title &amp;quot;test&amp;quot; \&lt;br /&gt;
  --quality SD \&lt;br /&gt;
  --category entertaining&lt;br /&gt;
  --bitrate 350000 \&lt;br /&gt;
  --publish-dir /var/www/transport \&lt;br /&gt;
  --cache-dir /var/cache/acestream \&lt;br /&gt;
  --private-node 1 \&lt;br /&gt;
  --upload-to &amp;quot;192.168.1.3:8632&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Метатрекеры===&lt;br /&gt;
&lt;br /&gt;
Метатрекер - это сервер, который сообщает узлам о доступных трекерах и стартовых узлах.&lt;br /&gt;
&lt;br /&gt;
URL метатрекера задается на источнике при создании трансляции и записывается в транспортный файл.&lt;br /&gt;
&lt;br /&gt;
Метатрекеры позволяют динамически добавлять трекеры и/или стартовые узлы для трансляции без необходимости перезапуска трансляции и пересоздания транспортного файла.&lt;br /&gt;
&lt;br /&gt;
Пример запуска источника с метатрекером:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
  --stream-source-node \&lt;br /&gt;
  --port 7764 \&lt;br /&gt;
  --source &amp;quot;http://brodilo.tv/channel.php&amp;quot; \&lt;br /&gt;
  --metatracker &amp;quot;http://example.org/metatracker.php&amp;quot;&lt;br /&gt;
  --name &amp;quot;test&amp;quot; \&lt;br /&gt;
  --title &amp;quot;test&amp;quot; \&lt;br /&gt;
  --bitrate 350000 \&lt;br /&gt;
  --publish-dir /var/www/transport \&lt;br /&gt;
  --cache-dir /var/cache/acestream \&lt;br /&gt;
  --private-node 1 \&lt;br /&gt;
  --upload-to &amp;quot;192.168.1.3:8631&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метатрекер принимает запросы по протоколу HTTP и выдает ответ в формате JSON, поэтому метатрекер может быть реализован на базе любого веб-сервера.&lt;br /&gt;
&lt;br /&gt;
Каждый узел при запуске трансляции отправляет на метатрекер HTTP GET запрос с параметром &amp;lt;tt&amp;gt;infohash&amp;lt;/tt&amp;gt; (хеш трансляции в виде hex-строки). Пример запроса на метатрекер:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://example.org/metatracker.php?infohash=a94a8fe5ccb19ba61c4c0873d391e987982fbbd3&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ответа:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;trackers&amp;quot;: [&amp;quot;tracker_url_1&amp;quot;, &amp;quot;tracker_url_2&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;startup_nodes&amp;quot;: [&amp;quot;node1_address&amp;quot;, &amp;quot;node2_address&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;interval&amp;quot;: UPDATE_INTERVAL_IN_SECONDS&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где&lt;br /&gt;
*tracker_url_1, tracker_url_2 - URL трекеров&lt;br /&gt;
*node1_address, node2_address - адреса стартовых узлов в виде строк в формате ip:port (например, 192.168.1.2:8632)&lt;br /&gt;
*UPDATE_INTERVAL_IN_SECONDS - интервал обновления в секундах (как часто каждый клиент должен повторно обращаться на метатрекер)&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;trackers&amp;quot;:[&amp;quot;udp:\/\/tracker.example.org:2710\/announce&amp;quot;],&lt;br /&gt;
    &amp;quot;startup_nodes&amp;quot;:[&amp;quot;192.168.1.3:8632&amp;quot;],&lt;br /&gt;
    &amp;quot;interval&amp;quot;:3600&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример серверного кода метатрекера на PHP:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
$infohash = isset($_GET[&amp;#039;infohash&amp;#039;]) ? $_GET[&amp;#039;infohash&amp;#039;] : &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
$trackers = array(&lt;br /&gt;
    &amp;#039;udp://tracker.example.org:2710/announce&amp;#039;,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$startup_nodes = array(&lt;br /&gt;
    &amp;#039;192.168.1.3:8632&amp;#039;,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$data = array(&lt;br /&gt;
    &amp;#039;trackers&amp;#039;      =&amp;gt; $trackers,&lt;br /&gt;
    &amp;#039;startup_nodes&amp;#039; =&amp;gt; $startup_nodes,&lt;br /&gt;
    &amp;#039;interval&amp;#039;      =&amp;gt; 30,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
header(&amp;#039;Content-Type: application/json&amp;#039;);&lt;br /&gt;
echo json_encode($data);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Веб-интерфейс узла===&lt;br /&gt;
Каждый узел имеет веб-интерфейс для просмотра текущего состояния, а также возможности изменения некоторых параметров &amp;quot;на лету&amp;quot; (без перезапуска узла).&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс работает на основном порту узла (заданном параметром &amp;lt;tt&amp;gt;--port&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
По умолчанию веб-интерфейс доступен только с той же машины, на которой запущен узел.&lt;br /&gt;
Для того, чтобы разрешить удаленный доступ, необходимо запустить узел с опцией &amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Также можно задать пароль на веб-интерфейс для предотвращения несанкционированного доступа с помощью опции &amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полный список опций для настройки веб-интерфейса:&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - частота обновления статистики узла в секундах (по умолчанию 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - если данная опция задана, то в мониторинг будет выдаваться список узлов, с которыми в данный момент соединен данный узел (по умолчанию список узлов не выводится)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - разрешить удаленный доступ на веб-интерфейс&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - задать пароль на веб-интерфейс&lt;br /&gt;
&lt;br /&gt;
Доступ к веб-интерфейсу осуществляется по HTTP-GET запросом на порт узла:&lt;br /&gt;
*мониторинг - &amp;lt;nowiki&amp;gt;http://node.address:PORT/app/TOKEN/monitoring&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*управление - &amp;lt;nowiki&amp;gt;http://node.address:PORT/app/TOKEN/update&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если узел запущен без опции &amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt;, то TOKEN в запросе не указывается.&lt;br /&gt;
&amp;lt;br/&amp;gt;Ответы выдаются в формате JSON.&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
*запрос на узел без пароля на веб-интерфейс:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/monitor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*запрос на узел с паролем qwerty на веб-интерфейс:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/qwerty/monitor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Мониторинг====&lt;br /&gt;
Интерфейс мониторинга выдает такую информацию:&lt;br /&gt;
*&amp;lt;tt&amp;gt;version&amp;lt;/tt&amp;gt; - версия узла&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_connections&amp;lt;/tt&amp;gt; - максимальное кол-во TCP-соединений&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_peers&amp;lt;/tt&amp;gt; - максимальное кол-во одновременно подсоединенных узлов&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_upload_slots&amp;lt;/tt&amp;gt; - максимальное кол-во открытых слотов для раздачи&lt;br /&gt;
*&amp;lt;tt&amp;gt;download_speed&amp;lt;/tt&amp;gt; - текущая скорость загрузки данных (байт/с)&lt;br /&gt;
*&amp;lt;tt&amp;gt;upload_speed&amp;lt;/tt&amp;gt; - текущая скорость отдачи данных (байт/с)&lt;br /&gt;
*&amp;lt;tt&amp;gt;connected_peers_count&amp;lt;/tt&amp;gt; - кол-во подсоединенных узлов&lt;br /&gt;
*&amp;lt;tt&amp;gt;connected_peers&amp;lt;/tt&amp;gt; - список подсоединенных узлов (пустой, если не задана опция --stats-report-peers)&lt;br /&gt;
*&amp;lt;tt&amp;gt;upload_slots&amp;lt;/tt&amp;gt; - текущее кол-во слотов для раздачи&lt;br /&gt;
&lt;br /&gt;
====Управление====&lt;br /&gt;
Для изменения параметров узла &amp;quot;на лету&amp;quot; нужно отправить запрос такого вида на веб-интерфейс:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/update?param1=value1&amp;amp;param2=value2...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
param1 и param2 задают названия параметров, которые необходимо обновить, value1 и value2 - новые значения для параметров.&lt;br /&gt;
&lt;br /&gt;
Доступные для обновления параметры:&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_upload_slots&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/update?max_peers=100&amp;amp;max_upload_slots=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 (держать соединения с 100 узлами одновременно и открыть 30 слотов на раздачу)&lt;br /&gt;
&lt;br /&gt;
===Фильтрация трафика===&lt;br /&gt;
Начиная с версии 3.0.2 добавлена возможность фильтровать трафик на спец. узлах (источнике, узле поддержки и стартовом узле). Фильтровать можно по ip-адресам либо по геотаргетингу. Правила для фильтрации должны быть вынесены в отдельный конфигурационный файл, путь к которому передается спец. узлу в параметре --ip-filter-config.&lt;br /&gt;
&lt;br /&gt;
Конфигурационный файл представляется собой текстовый файл в формате JSON с такой структурой:&lt;br /&gt;
 &amp;lt;tt&amp;gt;{&lt;br /&gt;
  &amp;quot;groups&amp;quot;: {&lt;br /&gt;
    &amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;: {&lt;br /&gt;
      &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
      &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;: {&lt;br /&gt;
      &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
      &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;blacklist&amp;quot;: {&lt;br /&gt;
    &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;groups&amp;quot;: [&amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;whitelist&amp;quot;: {&lt;br /&gt;
    &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;groups&amp;quot;: [&amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;limit_groups&amp;quot;: {&lt;br /&gt;
    &amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;: &amp;quot;30%&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;: &amp;quot;10%&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
 }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Раздел &amp;lt;tt&amp;gt;groups&amp;lt;/tt&amp;gt; используется для создания именованных групп, на которые можно ссылать в других разделах файла.&lt;br /&gt;
Каждая группа может состоять из массива ip-адресов (&amp;lt;tt&amp;gt;addresses&amp;lt;/tt&amp;gt;) либо кодов стран (&amp;lt;tt&amp;gt;countries&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Массив &amp;lt;tt&amp;gt;addresses&amp;lt;/tt&amp;gt; может  содержать как адреса отдельных хостов, так и адреса подсетей в формате xx.xx.xx.xx/yy. На данный момент разрешено использовать только подсети /24, /16 и /8.&lt;br /&gt;
&lt;br /&gt;
Массив &amp;lt;tt&amp;gt;countries&amp;lt;/tt&amp;gt; должен содержать коды стран в верхнем регистре (согласно базе [https://www.maxmind.com MaxMind])&lt;br /&gt;
&lt;br /&gt;
Раздел &amp;lt;tt&amp;gt;whitelist&amp;lt;/tt&amp;gt; задает белый список. Узел отбивает соединения со всех адресов, которые не входят в белый список.&lt;br /&gt;
&lt;br /&gt;
Раздел &amp;lt;tt&amp;gt;blacklist&amp;lt;/tt&amp;gt; задает черный список. Узел отбивает соединения со всех адресов, которые входят в черный список.&lt;br /&gt;
&lt;br /&gt;
Раздел &amp;lt;tt&amp;gt;limit_groups&amp;lt;/tt&amp;gt; задает ограничения по максимальному количеству соединений для каждой группы (в процентах от общего максимального количества соединений).&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=AceStream_3.0/en&amp;diff=741</id>
		<title>AceStream 3.0/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=AceStream_3.0/en&amp;diff=741"/>
		<updated>2021-10-17T10:58:44Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Where to download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Where to download==&lt;br /&gt;
https://wiki.acestream.media/Download&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;#039;&amp;#039;3.0.2&amp;#039;&amp;#039;&lt;br /&gt;
*ability to filter traffic at special nodes is added (look at [[#Traffic filtration|Traffic filtration]])&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.1&amp;#039;&amp;#039;&lt;br /&gt;
*a large-scale optimization of all modules was held&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a18&amp;#039;&amp;#039;&lt;br /&gt;
*bug, because of which some support nodes could lose connection with the source, was fixed&lt;br /&gt;
*parameter &amp;lt;tt&amp;gt;--title&amp;lt;/tt&amp;gt; became required (this parameter transfers &amp;quot;readable&amp;quot; name of broadcast which is displayed at users&amp;#039; players during playback)&lt;br /&gt;
*two required parameters for the source are added:&lt;br /&gt;
**&amp;lt;tt&amp;gt;--quality&amp;lt;/tt&amp;gt; - channel&amp;#039;s quality; possible values:&lt;br /&gt;
***SD&lt;br /&gt;
***HD&lt;br /&gt;
**&amp;lt;tt&amp;gt;--category&amp;lt;/tt&amp;gt; - channel&amp;#039;s category; possible values:&lt;br /&gt;
***informational&lt;br /&gt;
***entertaining&lt;br /&gt;
***educational&lt;br /&gt;
***movies&lt;br /&gt;
***documentaries&lt;br /&gt;
***sport&lt;br /&gt;
***fashion&lt;br /&gt;
***music&lt;br /&gt;
***regional&lt;br /&gt;
***ethnic&lt;br /&gt;
***religion&lt;br /&gt;
***teleshop&lt;br /&gt;
***erotic_18_plus&lt;br /&gt;
***other_18_plus&lt;br /&gt;
***cyber_games&lt;br /&gt;
***amateur&lt;br /&gt;
***webcam&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a12&amp;#039;&amp;#039;&lt;br /&gt;
*CPU usage was significantly optimized &lt;br /&gt;
*memory leaks were eliminated&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a5&amp;#039;&amp;#039;&lt;br /&gt;
*start nodes are added&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a2&amp;#039;&amp;#039;&lt;br /&gt;
*support nodes are added&lt;br /&gt;
*options for configuration of private nodes and schemes of distribution of traffic between support nodes and a source are added&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;3.0.0-a1&amp;#039;&amp;#039;&lt;br /&gt;
*the first alpha-version&lt;br /&gt;
&lt;br /&gt;
==How to install over the old version==&lt;br /&gt;
* download package for your OS&lt;br /&gt;
* unzip to a temporary folder (for example, to /tmp/acestream)&lt;br /&gt;
* copy appropriate files from temporary folder to root folders /usr/bin/ and /usr/share/acestream (all old files and folders can be deleted)&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: For the work of a new engine package &amp;lt;tt&amp;gt;python-setuptools&amp;lt;/tt&amp;gt; must be installed.&lt;br /&gt;
&lt;br /&gt;
==How to launch without deleting an old version==&lt;br /&gt;
Alpha-version can be launched on a server simultaneously with any release version.&lt;br /&gt;
&lt;br /&gt;
For the launching you need to:&lt;br /&gt;
* download archive for your OS&lt;br /&gt;
* unpack archive in any folder (for example, /opt/acestream/engine_new)&lt;br /&gt;
* launch acestreamengine file in the unpacked folder with a parameter --lib-path /path/to/acestream_libraries. Example:&lt;br /&gt;
 &amp;lt;tt&amp;gt;/opt/acestream/engine_new/acestreamengine --lib-path /opt/acestream/engine_new&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameter --lib-path sets the path to Ace Stream libraries. By default the path /usr/share/acestream is used. If the release version of the engine is already installed on the server, it will be launched without specifying the parameter --lib-path. To know for sure which version was launched, you can check the version from command line. For example, if version 2.1.6 is already installed, the result without specifying --lib-path will be following:&lt;br /&gt;
 &amp;lt;tt&amp;gt;# /opt/acestream/engine_new/acestreamengine --version&lt;br /&gt;
 version: 2.1.6 revision: 293&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With specifying --lib-path a new version will be launched:&lt;br /&gt;
 &amp;lt;tt&amp;gt;# /opt/acestream/engine_new/acestreamengine --lib-path /opt/acestream/engine_new --version&lt;br /&gt;
 version: 3.0.0-a1 revision: 565&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Launch on CentOS ===&lt;br /&gt;
On CentOS there are some features of the engine launch.&lt;br /&gt;
&lt;br /&gt;
Standard library openssl on CentOS do not support some necessary for the engine functions. In this regard, together with the engine for CentOS there is a recompiled library openssl and module python-m2crypto, which is superstructure over openssl. These libraries are in the folder usr in archieve with the engine. To use them you have to copy folders &amp;quot;lib64&amp;quot; and &amp;quot;local&amp;quot; from the folder &amp;quot;usr&amp;quot; into appropriate folders in /usr. If the engine of the previous version is installed on the server, these libraries are in your system and there is no need to copy them.&lt;br /&gt;
&lt;br /&gt;
To launch the engine under CentOS script start.sh is used instead of acestreamengine in the folder with the engine.&lt;br /&gt;
&lt;br /&gt;
This script sets an environment variable LD_LIBRARY_PATH=/usr/local/ssl/lib before the engine launch, so the recompiled version of the library openssl was used.&lt;br /&gt;
&lt;br /&gt;
Also this script automatically passes the path to libraries to the engine through the parameter --lib-path, so there is no need to specify it additionally.&lt;br /&gt;
&lt;br /&gt;
==Changes in launch parameters==&lt;br /&gt;
In a new version there are some differences on launch parameters.&lt;br /&gt;
&lt;br /&gt;
===New flags for the engine launch in different modes===&lt;br /&gt;
*--stream-source-node (instead of --stream-source)&lt;br /&gt;
*--stream-support-node (instead of --stream-node)&lt;br /&gt;
&lt;br /&gt;
===New parameters for setting up cache===&lt;br /&gt;
*--live-cache-type (string) - cache type: disk - store the cache on the disk in the folder specified by parameter --cache-dir, memory - store the cache in random-access memory (by default: disk)&lt;br /&gt;
*--live-cache-size (integer) - maximum size of the cache in bytes (by default: 209715200 bytes (200 Mb))&lt;br /&gt;
&lt;br /&gt;
===New parameters for configuration of support nodes infrastructure===&lt;br /&gt;
*--private-node (0 or 1) - if you specify 1, the node will be private (by default: 0)&lt;br /&gt;
*--download-from (string) - add the address to a list of nodes from which this node is allowed to receive data. The address must be specified in a format ipv4_address:port. This parameter may occur more than once.&lt;br /&gt;
*--upload-to (string) - add the address to the list of nodes to which this node is allowed to give data. The address must be specified in a format ipv4_address:port. This parameter may occur more than once.&lt;br /&gt;
*--monitor-node-ip (string) - ipv4 address of monitoring-server&lt;br /&gt;
&lt;br /&gt;
===New parameters to launch the source===&lt;br /&gt;
*--metatracker (string) - add the address of metatracker to the transport file&lt;br /&gt;
&lt;br /&gt;
===These parameters are not used any more===&lt;br /&gt;
*--stream-source (is changed to --stream-source-node)&lt;br /&gt;
*--stream-node (is changed to --stream-support-node)&lt;br /&gt;
*--add-authorized-peers (list of authorized peers is not added to transport file any more)&lt;br /&gt;
*--private-source (is changed to --private-node)&lt;br /&gt;
*--support-node&lt;br /&gt;
*--source-node&lt;br /&gt;
*--allow-source-download&lt;br /&gt;
*--allow-support-download&lt;br /&gt;
*--allow-peers-download&lt;br /&gt;
&lt;br /&gt;
==New functional==&lt;br /&gt;
&lt;br /&gt;
===Setting up support nodes===&lt;br /&gt;
In a new version it is necessary to explicitly specify to support nodes from which nodes they have to download data. For this, parameter &amp;lt;tt&amp;gt;--download-from&amp;lt;/tt&amp;gt; is used. A list of nodes, from which downloading is allowed, can be changed without restarting support node through node&amp;#039;s web-interface (look below). For example, if  node-source is launched by address 192.168.1.2:7764 and we want to launch support node which loads data only from the source, a command to launch support node will be following:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
 --stream-support-node \&lt;br /&gt;
 --url http://192.168.1.2/transport/test.acelive \&lt;br /&gt;
 --port 8631 \&lt;br /&gt;
 --download-from &amp;quot;192.168.1.2:7764&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Private nodes===&lt;br /&gt;
Private node gives data only to nodes that explicitly are added to its list of allowed. In order to make a node private you have to launch it with a parameter &amp;lt;tt&amp;gt;--private-node 1&amp;lt;/tt&amp;gt;. To add the address to the list of allowed to upload a parameter &amp;lt;tt&amp;gt;--upload-to&amp;lt;/tt&amp;gt; is used. Both, node-source and support node, can be private. Private node repulses incoming connections from all addresses except specified by parameters &amp;lt;tt&amp;gt;--download-from&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;--upload-to&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--monitor-node-ip&amp;lt;/tt&amp;gt;. To filter only ip-address is used (port is not used). Parameter &amp;lt;tt&amp;gt;--monitor-node-ip&amp;lt;/tt&amp;gt; sets ip-address of the monitoring server and is used in case if there is a need to provide monitoring of the private node (without specifying this parameter private node will repulse all requests from the monitoring server).&lt;br /&gt;
&lt;br /&gt;
Example of launching the private source which will give data only to support node from the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
  --stream-source-node \&lt;br /&gt;
  --port 7764 \&lt;br /&gt;
  --source &amp;quot;http://brodilo.tv/channel.php&amp;quot; \&lt;br /&gt;
  --name &amp;quot;test&amp;quot; \&lt;br /&gt;
  --title &amp;quot;test&amp;quot; \&lt;br /&gt;
  --bitrate 350000 \&lt;br /&gt;
  --publish-dir /var/www/transport \&lt;br /&gt;
  --cache-dir /var/cache/acestream \&lt;br /&gt;
  --private-node 1 \&lt;br /&gt;
  --upload-to &amp;quot;192.168.1.3:8631&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start nodes===&lt;br /&gt;
Start node is intended to provide the fastest possible start of a broadcast from users&amp;#039; side.&lt;br /&gt;
&lt;br /&gt;
A special feature of the start node is a constant rotation of connections. When new incoming connections are received the start node terminates connections to nodes which were connected earlier and have already downloaded certain amount of data.&lt;br /&gt;
&lt;br /&gt;
To launch the engine in the start node mode parameter &amp;lt;tt&amp;gt;--stream-startup-node&amp;lt;/tt&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
The start node takes the same set of parameters as the support node.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Стартовый узел принимает такой же набор параметров, как и узел поддержки, плюс некоторые дополнительные параметры:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-max-connections (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - максимальное количество узлов, с которым стартовый узел держит постоянные соединения (если к узлу подключится больше других узлов, чем указано в этом параметре, лишние соединения будут разорваны).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-cleanup-interval (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - интервал очистки лишних соединений в секундах (по умолчанию: 1).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-upload-buffer (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - минимальный буфер в секундах, который будет отдан каждому подсоединившемуся узлу перед тем, как его можно будет отключить&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;--startup-node-time-limit (integer)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039; - максимальная длительность соединения в секундах, после достижения которой соединение может быть разорвано, даже если узел еще не получил необходмый объем данных.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of launching the start node:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
 --stream-startup-node \&lt;br /&gt;
 --url http://192.168.1.2/transport/test.acelive \&lt;br /&gt;
 --port 8632 \&lt;br /&gt;
 --download-from &amp;quot;192.168.1.2:7764&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Metatrackers===&lt;br /&gt;
&lt;br /&gt;
Metatracker is a server which informs nodes about available trackers and start nodes.&lt;br /&gt;
&lt;br /&gt;
Metatracker&amp;#039;s URL is given at the source when creating a broadcast and is recorded to the transport file.&lt;br /&gt;
&lt;br /&gt;
Metatrackers allow to add trackers and/or start nodes for the broadcast automatically without the need to restart the broadcast and recreate the transport file.&lt;br /&gt;
&lt;br /&gt;
Example of launching a source with the metatracker:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;acestreamengine \&lt;br /&gt;
  --stream-source-node \&lt;br /&gt;
  --port 7764 \&lt;br /&gt;
  --source &amp;quot;http://brodilo.tv/channel.php&amp;quot; \&lt;br /&gt;
  --metatracker &amp;quot;http://example.org/metatracker.php&amp;quot;&lt;br /&gt;
  --name &amp;quot;test&amp;quot; \&lt;br /&gt;
  --title &amp;quot;test&amp;quot; \&lt;br /&gt;
  --bitrate 350000 \&lt;br /&gt;
  --publish-dir /var/www/transport \&lt;br /&gt;
  --cache-dir /var/cache/acestream \&lt;br /&gt;
  --private-node 1 \&lt;br /&gt;
  --upload-to &amp;quot;192.168.1.3:8631&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metatracker accepts requests via HTTP protocol and gives responds in JSON format, therefore the metatracker can be implemented on the basis of any web server.&lt;br /&gt;
&lt;br /&gt;
When broadcast starts, each node sends to the metatracker HTTP GET request with parameter &amp;lt;tt&amp;gt;infohash&amp;lt;/tt&amp;gt; (broadcast hash as a hex-string). Example of the request to the metatracker:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://example.org/metatracker.php?infohash=a94a8fe5ccb19ba61c4c0873d391e987982fbbd3&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Respond format:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;trackers&amp;quot;: [&amp;quot;tracker_url_1&amp;quot;, &amp;quot;tracker_url_2&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;startup_nodes&amp;quot;: [&amp;quot;node1_address&amp;quot;, &amp;quot;node2_address&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;interval&amp;quot;: UPDATE_INTERVAL_IN_SECONDS&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
*tracker_url_1, tracker_url_2 - trackers&amp;#039; URL&lt;br /&gt;
*node1_address, node2_address - start nodes&amp;#039; addresses as strings in ip:port format (for example, 192.168.1.2:8632)&lt;br /&gt;
*UPDATE_INTERVAL_IN_SECONDS - update interval in seconds (how often each client has to reapply to metatreker)&lt;br /&gt;
&lt;br /&gt;
Respond example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;trackers&amp;quot;:[&amp;quot;udp:\/\/tracker.example.org:2710\/announce&amp;quot;],&lt;br /&gt;
    &amp;quot;startup_nodes&amp;quot;:[&amp;quot;192.168.1.2:8632&amp;quot;],&lt;br /&gt;
    &amp;quot;interval&amp;quot;:3600&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a server code on PHP:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&lt;br /&gt;
$infohash = isset($_GET[&amp;#039;infohash&amp;#039;]) ? $_GET[&amp;#039;infohash&amp;#039;] : &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
$trackers = array(&lt;br /&gt;
    &amp;#039;udp://tracker.example.org:2710/announce&amp;#039;,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$startup_nodes = array(&lt;br /&gt;
    &amp;#039;192.168.1.2:8632&amp;#039;,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$data = array(&lt;br /&gt;
    &amp;#039;trackers&amp;#039;      =&amp;gt; $trackers,&lt;br /&gt;
    &amp;#039;startup_nodes&amp;#039; =&amp;gt; $startup_nodes,&lt;br /&gt;
    &amp;#039;interval&amp;#039;      =&amp;gt; 30,&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
header(&amp;#039;Content-Type: application/json&amp;#039;);&lt;br /&gt;
echo json_encode($data);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Node&amp;#039;s web-interface===&lt;br /&gt;
Every node has web-interface to view current status, as well as options to change some of the parameters &amp;quot;on the fly&amp;quot; (without restarting the node).&lt;br /&gt;
&lt;br /&gt;
Web-interface works on the main port of the node (specified by parameter &amp;lt;tt&amp;gt;--port&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
By default web-interface is available only from the same machine, from which the node was launched.&lt;br /&gt;
To allow  remote access, you have to launch the node with option &amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Also you can set a password for web-interface to prevent unauthorized access, using option &amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full list of options to customize web-interface:&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - frequency of node&amp;#039;s statistics update, in seconds (by default 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - if this option is set, a list of nodes that are currently connected to the node will be shown in monitoring (by default node list is not displayed).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - allow remote access to web-interface&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - set a password for web-interface&lt;br /&gt;
&lt;br /&gt;
Access to web-interface is performed via HTTP-GET request to the node&amp;#039;s port:&lt;br /&gt;
*monitoring - &amp;lt;nowiki&amp;gt;http://node.address:PORT/app/TOKEN/monitoring&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*control - &amp;lt;nowiki&amp;gt;http://node.address:PORT/app/TOKEN/update&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If node was launched without option &amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt;, then TOKEN is not specified in the request.&lt;br /&gt;
&amp;lt;br/&amp;gt;Responses are given in JSON format.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
*request to the node without the password for web-interface:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/monitor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*request to the node with the password &amp;quot;qwerty&amp;quot; for web-interface:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/qwerty/monitor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Monitoring====&lt;br /&gt;
Interface of monitoring gives the following information:&lt;br /&gt;
*&amp;lt;tt&amp;gt;version&amp;lt;/tt&amp;gt; - node&amp;#039;s version&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_connections&amp;lt;/tt&amp;gt; - maximum number of TCP-connections&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_peers&amp;lt;/tt&amp;gt; - maximum number of concurrently connected nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_upload_slots&amp;lt;/tt&amp;gt; - maximum number of opened upload slots&lt;br /&gt;
*&amp;lt;tt&amp;gt;download_speed&amp;lt;/tt&amp;gt; - current speed of data download (byte/s)&lt;br /&gt;
*&amp;lt;tt&amp;gt;upload_speed&amp;lt;/tt&amp;gt; - current speed of data upload (byte/s)&lt;br /&gt;
*&amp;lt;tt&amp;gt;connected_peers_count&amp;lt;/tt&amp;gt; - number of connected nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;connected_peers&amp;lt;/tt&amp;gt; - list of connected nodes (empty, if option --stats-report-peers is not set)&lt;br /&gt;
*&amp;lt;tt&amp;gt;upload_slots&amp;lt;/tt&amp;gt; - current number of upload slots&lt;br /&gt;
&lt;br /&gt;
====Management====&lt;br /&gt;
To change node&amp;#039;s parameters &amp;quot;on the fly&amp;quot; you have to send a request of the following kind to web-interface:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/update?param1=value1&amp;amp;param2=value2...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
param1 and param2 set names of parameters that have to be updated, value1 and value2 are new values for the parameters.&lt;br /&gt;
&lt;br /&gt;
Available for updating parameters:&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_upload_slots&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.1.3:8640/app/update?max_peers=100&amp;amp;max_upload_slots=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 (keep the connection with 100 nodes simultaneously and open 30 upload slots)&lt;br /&gt;
&lt;br /&gt;
===Traffic filtration===&lt;br /&gt;
Starting from version 3.0.2 an ability to filter traffic at special nodes (source, support node and start node) was added. You can filter by ip-addresses or by geotargeting. Rules for the filtration should be put in a separate configuration file, path to which is passed in a special node in parameter --ip-filter-config.&lt;br /&gt;
&lt;br /&gt;
Configuration file is a text file in JSON format with the following structure:&lt;br /&gt;
 &amp;lt;tt&amp;gt;{&lt;br /&gt;
  &amp;quot;groups&amp;quot;: {&lt;br /&gt;
    &amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;: {&lt;br /&gt;
      &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
      &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;: {&lt;br /&gt;
      &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
      &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;blacklist&amp;quot;: {&lt;br /&gt;
    &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;groups&amp;quot;: [&amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;whitelist&amp;quot;: {&lt;br /&gt;
    &amp;quot;addresses&amp;quot;: [&amp;quot;&amp;lt;ip_address_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;ip_address_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;countries&amp;quot;: [&amp;quot;&amp;lt;country_code_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;country_code_2&amp;gt;&amp;quot;, ...],&lt;br /&gt;
    &amp;quot;groups&amp;quot;: [&amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;, ...]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;limit_groups&amp;quot;: {&lt;br /&gt;
    &amp;quot;&amp;lt;group_1&amp;gt;&amp;quot;: &amp;quot;30%&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;lt;group_2&amp;gt;&amp;quot;: &amp;quot;10%&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
 }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Section &amp;lt;tt&amp;gt;groups&amp;lt;/tt&amp;gt; is used to create named groups, that can be referenced in other sections of the file.&lt;br /&gt;
Each group may consist of an array ip-addresses (&amp;lt;tt&amp;gt;addresses&amp;lt;/tt&amp;gt;) or country codes (&amp;lt;tt&amp;gt;countries&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Array &amp;lt;tt&amp;gt;addresses&amp;lt;/tt&amp;gt; may contain addresses of individual hosts, as well as addresses of subnetworks in the format xx.xx.xx.xx/yy. At this moment it is allowed to use only subnetworks /24, /16 and /8.&lt;br /&gt;
&lt;br /&gt;
Array &amp;lt;tt&amp;gt;countries&amp;lt;/tt&amp;gt; has to contain country codes in uppercase (according to the base [https://www.maxmind.com MaxMind])&lt;br /&gt;
&lt;br /&gt;
Section &amp;lt;tt&amp;gt;whitelist&amp;lt;/tt&amp;gt; sets a white list. The node rejects connections from all addresses that are not included in a white list. &lt;br /&gt;
&lt;br /&gt;
Section &amp;lt;tt&amp;gt;blacklist&amp;lt;/tt&amp;gt; sets a black list. The node rejects connections from all addresses from a black list.&lt;br /&gt;
&lt;br /&gt;
Section &amp;lt;tt&amp;gt;limit_groups&amp;lt;/tt&amp;gt; sets limits on the maximum number of connections for each group (in percentage of the total maximum number of connections).&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=740</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=740"/>
		<updated>2021-10-17T10:57:39Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Transition from versions 2.0.х to version 2.1 and higher */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.1.х to version 3.0.x and higher===&lt;br /&gt;
See main article about Ace Stream v.3 - https://wiki.acestream.media/AceStream_3.0/en&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based launch scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=734</id>
		<title>Wiki/Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=734"/>
		<updated>2020-07-18T08:15:23Z</updated>

		<summary type="html">&lt;p&gt;Ffx: Removed redirect to Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ace Stream is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component.&lt;br /&gt;
&lt;br /&gt;
Ace Stream allows you to provide the best in the world audio-visual quality of the online broadcast, without any need for maintenance of the park servers and expenditures for payment of network traffic!&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Install_Ubuntu&amp;diff=733</id>
		<title>Install Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Install_Ubuntu&amp;diff=733"/>
		<updated>2020-07-16T13:58:52Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Third party builds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing Ace Stream Engine ==&lt;br /&gt;
&lt;br /&gt;
To run Ace Stream Engine you need to install some dependencies, download a tarball and unpack it in any folder you want. After that engine can be run from that folder with simple shell script included in the package.&lt;br /&gt;
&lt;br /&gt;
Here is an example how to install Ace Stream 3.1.14 for Ubuntu 14 in the folder /opt/acestream&lt;br /&gt;
&lt;br /&gt;
1. Download the latest version (you can find actual links [[Download|here]])&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;wget &amp;quot;http://dl.acestream.org/linux/acestream_3.1.14_ubuntu_14.04_x86_64.tar.gz&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
2. Unpack tarball:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tar zxvf acestream_3.1.14_ubuntu_14.04_x86_64.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
3. Move Ace Stream to the selected folder:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mv acestream_3.1.14_ubuntu_14.04_x86_64 /opt/acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
4. Install dependencies:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install python-setuptools&lt;br /&gt;
sudo apt-get install python-m2crypto&lt;br /&gt;
sudo apt-get install python-apsw&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
5. Optional dependencies to use GTK GUI:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install python-gtk2&lt;br /&gt;
sudo apt-get install python-appindicator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run engine with this command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine have several operational modes and you must select one of them when starting. For example, to start client engine on Ubuntu with GTK GUI use this command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine --client-gtk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start client engine without GUI:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine --client-console&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The full list of available options is [[Engine_Configuration|here]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing Ace Stream Player ==&lt;br /&gt;
&lt;br /&gt;
=== Build from sources ===&lt;br /&gt;
Player sources are here: https://bitbucket.org/AceStream/acestreamplayer&lt;br /&gt;
&lt;br /&gt;
You can find build instructions in the project&amp;#039;s readme.&lt;br /&gt;
&lt;br /&gt;
Please note that you have to get a valid product key to build fully operational player. There are more details about this in the readme.&lt;br /&gt;
&lt;br /&gt;
=== Third party builds ===&lt;br /&gt;
You can also try some third-party builds of Ace Player, for example - https://github.com/Jcryton/acestreamplayer-2.2/releases&lt;br /&gt;
&lt;br /&gt;
Please note, those builds are unofficial, and with any troubles encountered you should ask their authors for support.&lt;br /&gt;
&lt;br /&gt;
===Configure engine autorun===&lt;br /&gt;
Ace Stream Player tries to connect to the engine and start it if it&amp;#039;s not already started.&lt;br /&gt;
&lt;br /&gt;
Player executes this command to start engine:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/usr/bin/acestreamengine --client-gtk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this work you need to create &amp;lt;tt&amp;gt;/usr/bin/acestreamengine&amp;lt;/tt&amp;gt; shell script which points to the folder where you have installed engine in. For example, if you have installed engine in &amp;lt;tt&amp;gt;/opt/acestream&amp;lt;/tt&amp;gt; then the script will be:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
ROOT=/opt/acestream&lt;br /&gt;
LD_LIBRARY_PATH=${ROOT}/lib ${ROOT}/acestreamengine --lib-path ${ROOT} $@&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Install_Ubuntu&amp;diff=732</id>
		<title>Install Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Install_Ubuntu&amp;diff=732"/>
		<updated>2020-07-16T13:57:07Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Installing Ace Stream Player */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing Ace Stream Engine ==&lt;br /&gt;
&lt;br /&gt;
To run Ace Stream Engine you need to install some dependencies, download a tarball and unpack it in any folder you want. After that engine can be run from that folder with simple shell script included in the package.&lt;br /&gt;
&lt;br /&gt;
Here is an example how to install Ace Stream 3.1.14 for Ubuntu 14 in the folder /opt/acestream&lt;br /&gt;
&lt;br /&gt;
1. Download the latest version (you can find actual links [[Download|here]])&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;wget &amp;quot;http://dl.acestream.org/linux/acestream_3.1.14_ubuntu_14.04_x86_64.tar.gz&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
2. Unpack tarball:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tar zxvf acestream_3.1.14_ubuntu_14.04_x86_64.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
3. Move Ace Stream to the selected folder:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mv acestream_3.1.14_ubuntu_14.04_x86_64 /opt/acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
4. Install dependencies:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install python-setuptools&lt;br /&gt;
sudo apt-get install python-m2crypto&lt;br /&gt;
sudo apt-get install python-apsw&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
5. Optional dependencies to use GTK GUI:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install python-gtk2&lt;br /&gt;
sudo apt-get install python-appindicator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run engine with this command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Engine have several operational modes and you must select one of them when starting. For example, to start client engine on Ubuntu with GTK GUI use this command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine --client-gtk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start client engine without GUI:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/opt/acestream/start-engine --client-console&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The full list of available options is [[Engine_Configuration|here]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing Ace Stream Player ==&lt;br /&gt;
&lt;br /&gt;
=== Build from sources ===&lt;br /&gt;
Player sources are here: https://bitbucket.org/AceStream/acestreamplayer&lt;br /&gt;
&lt;br /&gt;
You can find build instructions in the project&amp;#039;s readme.&lt;br /&gt;
&lt;br /&gt;
Please note that you have to get a valid product key to build fully operational player. There are more details about this in the readme.&lt;br /&gt;
&lt;br /&gt;
=== Third party builds ===&lt;br /&gt;
You can also try some third-party builds of Ace Player, for example - https://github.com/Jcryton/acestreamplayer-2.2 &lt;br /&gt;
&lt;br /&gt;
Please note, those builds are unofficial, and with any troubles encountered you should ask their authors for support.&lt;br /&gt;
&lt;br /&gt;
===Configure engine autorun===&lt;br /&gt;
Ace Stream Player tries to connect to the engine and start it if it&amp;#039;s not already started.&lt;br /&gt;
&lt;br /&gt;
Player executes this command to start engine:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;/usr/bin/acestreamengine --client-gtk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this work you need to create &amp;lt;tt&amp;gt;/usr/bin/acestreamengine&amp;lt;/tt&amp;gt; shell script which points to the folder where you have installed engine in. For example, if you have installed engine in &amp;lt;tt&amp;gt;/opt/acestream&amp;lt;/tt&amp;gt; then the script will be:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
ROOT=/opt/acestream&lt;br /&gt;
LD_LIBRARY_PATH=${ROOT}/lib ${ROOT}/acestreamengine --lib-path ${ROOT} $@&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Download&amp;diff=730</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Download&amp;diff=730"/>
		<updated>2020-07-09T13:19:18Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find the links the latest versions of Ace Stream software for all available platforms.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* stable version: http://dl.acestream.org/products/acestream-full/win/latest&lt;br /&gt;
* beta version: http://dl.acestream.org/products/acestream3-beta/win/latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Ace Stream Media===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine/android/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine/android/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine-beta/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine-beta/android/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine-beta/android/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Media for Android TV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android-tv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine/android-tv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine/android-tv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Engine===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-core/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-core/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-core-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-core-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Engine for Android TV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android-tv/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android-tv/acestream-core/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android-tv/acestream-core/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android-tv/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android-tv/acestream-core-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android-tv/acestream-core-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream LiveTV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.live&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-livetv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-livetv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-livetv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-livetv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-livetv-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-livetv-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-livetv-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-livetv-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Become a beta tester===&lt;br /&gt;
If you want to become an Android beta tester, please visit one of these links:&lt;br /&gt;
&lt;br /&gt;
* Ace Stream Media: https://play.google.com/apps/testing/org.acestream.media&lt;br /&gt;
* Ace Stream Media for Android TV: https://play.google.com/apps/testing/org.acestream.media.atv&lt;br /&gt;
* Ace Stream Engine: https://play.google.com/apps/testing/org.acestream.core&lt;br /&gt;
* Ace Stream Engine for Android TV: https://play.google.com/apps/testing/org.acestream.core.atv&lt;br /&gt;
* Ace Stream LiveTV: https://play.google.com/apps/testing/org.acestream.live&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 18&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.49_ubuntu_18.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 16&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 14&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_14.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 12&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_12.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 9&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.49_debian_9.9_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 8&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.49_debian_8.11_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;More info&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can find more info about linux builds and packages prepared by community on our forum: https://forum.acestream.org/t/ace-stream-3-1-for-ubuntu-ru-en/3359&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=729</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=729"/>
		<updated>2020-06-22T11:16:48Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://acestream.readthedocs.io | Ace Stream docs&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player legacy source&lt;br /&gt;
** https://github.com/Jcryton/acestreamplayer-2.2 | Ace Player JC fork&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=728</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=728"/>
		<updated>2020-06-22T11:16:00Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://acestream.readthedocs.io | Ace Stream docs&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player legacy source&lt;br /&gt;
** https://github.com/Jcryton/acestreamplayer-2.2 | Ace Player 3&amp;#039;party fork&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=727</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=727"/>
		<updated>2020-06-22T11:15:25Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://acestream.readthedocs.io | Ace Stream docs&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player legacy source&lt;br /&gt;
** https://github.com/Jcryton/acestreamplayer-2.2 | Ace Player 3rd party fork&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=726</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=726"/>
		<updated>2020-06-22T11:12:15Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player source code&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;br /&gt;
** https://acestream.readthedocs.io | Ace Stream docs&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=725</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=725"/>
		<updated>2020-06-22T11:11:38Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player source code&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;br /&gt;
** https://acestream.readthedocs.io | Ace Stream documentation&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=724</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=724"/>
		<updated>2020-06-22T10:58:21Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org | Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** https://bitbucket.org/AceStream/acestreamplayer/src/master | Ace Player source code&lt;br /&gt;
** https://github.com/acestream | Ace Stream on GitHub&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Download&amp;diff=723</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Download&amp;diff=723"/>
		<updated>2020-06-20T22:21:45Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find the links the latest versions of Ace Stream software for all available platforms.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* stable version: http://dl.acestream.org/products/acestream-full/win/latest&lt;br /&gt;
* beta version: http://dl.acestream.org/products/acestream3-beta/win/latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Ace Stream Media===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine/android/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine/android/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine-beta/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine-beta/android/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine-beta/android/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Media for Android TV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android-tv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine/android-tv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine/android-tv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Engine===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-core/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-core/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-core-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-core-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream Engine for Android TV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android-tv/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android-tv/acestream-core/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android-tv/acestream-core/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android-tv/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android-tv/acestream-core-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android-tv/acestream-core-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Ace Stream LiveTV===&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.live&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-livetv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-livetv/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-livetv/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-livetv/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARMv7 (32 bit): http://dl.acestream.org/products/android/acestream-livetv-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-livetv-beta/x86/latest&lt;br /&gt;
** ARMv8 (64 bit): http://dl.acestream.org/products/android/acestream-livetv-beta/armv8_64/latest&lt;br /&gt;
** x86_64: http://dl.acestream.org/products/android/acestream-livetv-beta/x86_64/latest&lt;br /&gt;
&lt;br /&gt;
===Become a beta tester===&lt;br /&gt;
If you want to become an Android beta tester, please visit one of these links:&lt;br /&gt;
&lt;br /&gt;
* Ace Stream Media: https://play.google.com/apps/testing/org.acestream.media&lt;br /&gt;
* Ace Stream Media for Android TV: https://play.google.com/apps/testing/org.acestream.media.atv&lt;br /&gt;
* Ace Stream Engine: https://play.google.com/apps/testing/org.acestream.core&lt;br /&gt;
* Ace Stream Engine for Android TV: https://play.google.com/apps/testing/org.acestream.core.atv&lt;br /&gt;
* Ace Stream LiveTV: https://play.google.com/apps/testing/org.acestream.live&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 18&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://acestream.org/downloads/linux/acestream_3.1.49_ubuntu_18.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 16&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 14&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_14.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 12&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_12.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 9&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://acestream.org/downloads/linux/acestream_3.1.49_debian_9.9_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 8&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://acestream.org/downloads/linux/acestream_3.1.49_debian_8.11_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;More info&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can find more info about linux builds and packages prepared by community on our forum: https://forum.acestream.org/t/ace-stream-3-1-for-ubuntu-ru-en/3359&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=721</id>
		<title>Wiki/Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=721"/>
		<updated>2020-06-11T19:37:39Z</updated>

		<summary type="html">&lt;p&gt;Ffx: Changed redirect target from Https://wiki.acestream.org/Main Page to Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #REDIRECT [[Main_Page]]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=720</id>
		<title>Wiki/Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Wiki/Main_Page&amp;diff=720"/>
		<updated>2020-06-11T19:36:37Z</updated>

		<summary type="html">&lt;p&gt;Ffx: Redirected page to Https://wiki.acestream.org/Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #REDIRECT [[https://wiki.acestream.org/Main_Page]]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=719</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=719"/>
		<updated>2020-06-09T17:35:07Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org|Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
** Download|Distributions&lt;br /&gt;
** Install Ubuntu|Install Linux&lt;br /&gt;
** Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** Multi Stream|Multi Stream&lt;br /&gt;
** Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine Service API|Engine Service API&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming&amp;diff=718</id>
		<title>Streaming</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming&amp;diff=718"/>
		<updated>2020-06-09T17:32:29Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Запуск трансляции==&lt;br /&gt;
&lt;br /&gt;
===Основные термины===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Источник&amp;#039;&amp;#039;&amp;#039; - программа, которая принимает на вход HTTP-поток трансляции и обеспечивает просмотр трансляции с помощью ПО Ace Stream&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Узел поддержки&amp;#039;&amp;#039;&amp;#039; - программа, позволяющая масштабировать трансляцию за счет использования дополнительного серверного оборудования и интернет-каналов&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Клиент&amp;#039;&amp;#039;&amp;#039; - ПО Ace Stream, которое используется для просмотра трансляции&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Timeshift&amp;#039;&amp;#039;&amp;#039; - временной интервал, в рамках которого в клиенты могут осуществлять перемотку трансляции&lt;br /&gt;
&lt;br /&gt;
===Переход с версий 2.0.х на версию 2.1 и выше===&lt;br /&gt;
С 10 сентября 2013 года доступна обновленная версия движка 2.1.6 под Ubuntu, Debian и CentOS.&lt;br /&gt;
&lt;br /&gt;
Перед полномасштабным использованием новой версии мы рекомендуем по возможности протестировать ее на одной или нескольких трансляциях.&lt;br /&gt;
&lt;br /&gt;
При возникновении каких-либо проблем просьба писать на форум http://forum.torrentstream.org либо на почту support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Старые версии временно доступны по прямым ссылкам:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ВНИМАНИЕ!&amp;lt;/span&amp;gt; В ближайшее время поддержка старых версий будет прекращена.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;ВАЖНО!&amp;lt;/span&amp;gt; Все трансляции, созданные с помощью новой версии Ace Stream (2.1 и выше) не поддерживаются клиентским ПО старых версий (2.0.х и ниже). При попытке просмотреть новую трансляцию с помощью старого движка будет выдаваться ошибка &amp;quot;Cannot load transport file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Изменения в параметрах запуска====&lt;br /&gt;
В новой версии изменились некоторые параметры запуска источников и узлов поддержки из командной строки, поэтому запуск со старой командной строкой работать не будет.&lt;br /&gt;
&lt;br /&gt;
Основные изменения:&lt;br /&gt;
* используется один исполняемый файл &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; различные режимы запуска (источник, узел поддержки) задаются опциями:&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* изменена система логирования. В старых версия движок всю отладочную информацию выводил в STDERR и для записи логов в файл требовалось перенаправлять вывод. В новой версии можно в опциях задать, куда писать логи - в STDOUT, в STDERR, в файл либо в syslog. Для файлов поддерживается ротация логов по размеру. Описание всех опций смотрите в разделе [[#Команда acestreamengine|Команда acestreamengine]]&lt;br /&gt;
&lt;br /&gt;
===Команда acestreamengine===&lt;br /&gt;
Начиная с версии 2.1 Ace Stream Engine для Linux представляет собой один исполняемый файл &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, который работает в различных режимах в зависимости от заданных параметров.&lt;br /&gt;
&lt;br /&gt;
Режим работы задается одним из следующих параметров:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента из консоли (без графического интерфейса)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента с графическим интерфейсом WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента с графическим интерфейсом GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - запустить источник трансляции&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - запустить узел поддержки&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - создать транспортный файл из существующего контента (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - создать мультипотоковый транспортный файл&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - показать версию движка&lt;br /&gt;
&lt;br /&gt;
Каждый режим работы имеет свои обязательные и необязательные параметры, описанные в соответствующих разделах.&lt;br /&gt;
&lt;br /&gt;
Также всех режимов работы есть общие параметры, которые управляют выводом отладочной информации.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - выводить информацию в STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - выводить информацию в STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - выводить информацию в указанный файл&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - максимальный размер файла (в байтах)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - сколько резервных логов хранить (резервный лог файл создается при достижении лимита, указанного паметром --log-max-size)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - включить буферизацию вывода в файл (с использованием буфера указанного размера в байтах)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - выводить информацию в syslog-сервер по указанному адресу&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - порт syslog-сервера&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - используемый facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - включить буферизацию вывода в syslog (с использованием буфера указанного размера в байтах)&lt;br /&gt;
&lt;br /&gt;
===Общая схема работы===&lt;br /&gt;
Организация трансляции начинается с запуска источника (команда &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Источник принимает на вход HTTP-поток (в данный момент поддерживаются HTTP-потоки с инкапсуляцией MPEG-TS) с оригиналом трансляции и после запуска создает файл с расширением acelive. Данный файл является уникальным идентификатором трансляции и используется клиентами для подключения и просмотра.&lt;br /&gt;
&lt;br /&gt;
===Синтаксис команды acestreamengine --stream-source===&lt;br /&gt;
Команда &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; запускает источник трансляции.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;обязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME (*)&amp;lt;/tt&amp;gt; - название трансляции (это название используется при создании файла acelive и других служебных файлов)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - источник (ссылка на http-поток)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE (*)&amp;lt;/tt&amp;gt; - средний битрейт потока в байтах в секунду&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;необязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE (*)&amp;lt;/tt&amp;gt; - &amp;quot;читабельное&amp;quot; название трансляции (это название выводится у клиентов). Если не задано, берется из --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - устаревший параметр, лучше использовать --cache-dir и --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - папка для создания служебных файлов (кеш трансляции и другие)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - папка, в которой будет создан acelive-файл&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE (*)&amp;lt;/tt&amp;gt; - размер куска в байтах, в степени 2 (если не задан, выставляется автоматически в зависимости от битрейта)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION (*)&amp;lt;/tt&amp;gt; - размер кеша трансляции в формат ЧЧ:ММ:СС (по умолчанию один час: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST (*)&amp;lt;/tt&amp;gt; - вручную задать адрес локального трекера&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT (*)&amp;lt;/tt&amp;gt; - порт, на котором работает движок. По умолчанию 7764.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker (*)&amp;lt;/tt&amp;gt; - отключить локальный трекер&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers (*)&amp;lt;/tt&amp;gt; - добавить список авторизованных пиров в acelive файл&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source (*)&amp;lt;/tt&amp;gt; - сделать источник приватным&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE (*)&amp;lt;/tt&amp;gt; - добавить узел поддержки (в формате ip:port). Этот параметр может встречаться несколько раз, если нужно добавить несколько узлов поддержки.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER (*)&amp;lt;/tt&amp;gt; - добавить трекер (announce url). Этот параметр может встречаться несколько раз.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - максимальное количество пиров, на которые одновременно отдаются данные с источника. По умолчанию 7.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - установить уровень отладки (по умолчанию 0 - минимальный)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - таймаут на чтение данных из оригинального источника (в секундах). По умолчанию 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - интервал в секундах, через который движок попробует повторно подсоединиться к оригинальному источнику при обрыве связи. По умолчанию 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - папка, в которой будет создан pid-файл движка. По умолчанию /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key (*)&amp;lt;/tt&amp;gt; - ключ провайдера (используется для партнерской программы)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid (*)&amp;lt;/tt&amp;gt; - идентификатор трансляции для статистики (используется для партнерской программы)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent (*)&amp;lt;/tt&amp;gt; - отметить трансляцию, которая идет 24/7 (круглосуточная трансляция)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss (*)&amp;lt;/tt&amp;gt; - указать дату и время начала трансляции (для трансляций с ограниченным временем вещания)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss (*)&amp;lt;/tt&amp;gt; - указать дату и время окончания трансляции (для трансляций с ограниченным временем вещания)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium (*)&amp;lt;/tt&amp;gt; - запросить статус &amp;quot;премиум&amp;quot; для трансляции&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - ограничить скорость отдачи (в байтах/с, по умолчанию 0 - не ограничивать)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - максимальное общее кол-во соединений (по умолчанию 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - максимальное кол-во подключений к пирам (по умолчанию 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - разрешить удаленный просмотр статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - ключ доступа для удаленной статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - интервал в секундах между обновлениями внутренней статистики (по умолчанию 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - обновлять данные по пирам во внутренней статистике&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;дополнительно&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - показать описание команд&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;примечание&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Изменение параметров, отмеченных звездочками, приводит к изменению Content ID трансляции&lt;br /&gt;
&lt;br /&gt;
===Синтаксис команды acestreamengine --stream-node===&lt;br /&gt;
Команда &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; запускает узел поддержки&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;обязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - ссылка на acelive файл трансляции&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;необязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - порт (по умолчанию 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - папка для временных файлов (удаляется после остановки узла поддержки)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - адрес источника трансляции (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - добавить адрес другого узла поддержки (ip:port). Этот параметр может встречаться несколько раз.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - разрешить получение данных от источника&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - разрешить получение данных от других узлов поддержки&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - разрешить получение данных от обычных пиров&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - максимальное общее кол-во соединений (по умолчанию 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - максимальное кол-во подключений к пирам (по умолчанию 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - максимальное количество пиров, на которые одновременно отдаются данные с узла поддержки (по умолчанию 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - максимальная скорость загрузки (байт/с). По умолчанию 0 (без ограничений).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - максимальная скорость отдачи (байт/с). По умолчанию 0 (без ограничений).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval STATS_REPORT_INTERVAL&amp;lt;/tt&amp;gt; - интервал в секундах между обновлениями внутренней статистики (по умолчанию 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - обновлять данные по пирам во внутренней статистике&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - разрешить удаленный просмотр статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - ключ доступа для удаленной статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - установить уровень отладки&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;дополнительно&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - показать описание команд&lt;br /&gt;
&lt;br /&gt;
===Встроенный трекер===&lt;br /&gt;
Встроенный трекер - это трекер встроенный в источник трансляции. Если он не отключен опцией &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt;, то его адрес будет автоматически добавлен в acelive-файл.&lt;br /&gt;
&lt;br /&gt;
При организации трансляций с большим количеством пользователей мы рекомендуем отключать встроенный трекер и заменять его внешним трекером с хорошей производительностью (например, [http://xbtt.sourceforge.net/tracker/ XBT Tracker])&lt;br /&gt;
&lt;br /&gt;
===Авторизованные узлы===&lt;br /&gt;
Для того, чтобы клиент подключился к трансляции и начал просмотр, ему необходимо либо установить соединение минимум с двумя другими узлами, либо установить соединение с авторизованным узлом. Авторизованный узел - это узел, который был отмечен создателем трансляции как такой, которому можно &amp;quot;доверять&amp;quot;. Как правило, это источник трансляции и/или узлы поддержки.&lt;br /&gt;
&lt;br /&gt;
Последние версии ПО ACE Stream поддерживают использование списка авторизованных узлов в acelive-файле. Для этого при создании трансляции задается опция &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt;, после чего формируется список авторизованных узлов и добавляется в acelive-файл. В список авторизованных узлов попадает источник трансляции (если это не приватный источник) и все указанные узлы поддержки. Клиенты, которые получили данный acelive-файл, используют список для определения того, является ли какой-либо узел авторизованным.&lt;br /&gt;
&lt;br /&gt;
Если в acelive-файл не был добавлен список авторизованных узлов, либо у клиента установлена старая версия ACE Stream, которая не распознает данный список, то авторизованным узлом считается узел, IP адрес которого совпадает с адресом первого трекера в списке трекеров. Если встроенный трекер на источнике не отключен, то он будет первым в списке и клиенты будут считать источник авторизованным узлом. В случае, если встроенный трекер отключен, для поддержки старых клиентов мы рекомендуем ставить на первое место трекер, расположенный на том же сервере, что и источник трансляции (чтобы адреса первого трекера и источника совпадали), либо использовать как минимум один узел поддержки (чтобы клиенты при старте могли установить соединение сразу с двумя пирами, даже если больше никто не смотрит трансляцию).&lt;br /&gt;
&lt;br /&gt;
===Timeshift===&lt;br /&gt;
Функция &amp;quot;Timeshift&amp;quot; дает пользователям возможность осуществить перемотку трансляции на некоторое время назад, а также поставить трансляцию на паузу и вернуться к просмотру в удобное для них время.&lt;br /&gt;
&lt;br /&gt;
Время, на которое может осуществляться перемотка назад, задается при создании трансляции опцией &amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt;. Время указывается в формате ЧЧ:ММ:СС.&lt;br /&gt;
&lt;br /&gt;
Например, при указании опции &amp;lt;tt&amp;gt;--duration 00:30:00&amp;lt;/tt&amp;gt; будет задан интервал 30 минут.&lt;br /&gt;
&lt;br /&gt;
===Примеры===&lt;br /&gt;
Для примеров предположим наличие локальной сети с тремя серверами:&lt;br /&gt;
*192.168.1.1 - сервер для источника&lt;br /&gt;
*192.168.1.2 - сервер для узла поддержки&lt;br /&gt;
*192.168.1.3 - сервер для узла поддержки&lt;br /&gt;
*192.168.1.100 - сервер, который отдает оригинальный поток трансляции (HTTP MPEG-TS) по адресу &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (средний битрейт потока - 300 000 байт/с)&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.1 предполагается наличие веб-сервера с корневой папкой &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt;, а также двух папок:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - для хранения acelive-файлов, которые будут доступны для скачивания по ссылке вида &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - для хранения кэша и служебных файлов трансляций&lt;br /&gt;
&lt;br /&gt;
====Источник с встроенным трекером====&lt;br /&gt;
Это наиболее простой способ запуск трансляции, не требующий запуска узлов поддержки и установки дополнительных трекеров. Данный способ подходит для трансляций с небольшим количество пользователей.&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.1 запускаем источник:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; добавляет в acelive-файл список авторизованных узлов (в данном случае это источник: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
После запуска трансляции в папке /home/www/streams будет создан файл test.acelive, в папке &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; будут созданы такие файлы:&lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - кэш трансляции. Размер этого файла примерно равен длительность_потока_в_секундах (опция &amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt;, по умолчанию 1 час) * битрейт байт&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - здесь хранится информация для корректного перезапуска трансляции&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - ключ для цифровой подписи трансляции&lt;br /&gt;
&lt;br /&gt;
Для просмотра трансляции клиенты могут скачать файл трансляции по ссылке &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; и запустить его в плеере ACE Stream, либо использовать другие способы ([[Способы просмотра трансляции]]).&lt;br /&gt;
&lt;br /&gt;
====Источник с внешним трекером====&lt;br /&gt;
Если трансляция предполагает большое количество пользователей, то желательно использовать внешний трекер и отключить встроенный (для снижения нагрузки на источник).&lt;br /&gt;
&lt;br /&gt;
В качестве внешнего трекера мы советуем использовать [http://xbtt.sourceforge.net/tracker/ XBT Tracker]&lt;br /&gt;
&lt;br /&gt;
В данном примере предполагаем, что XBT Tracker установлен и запущен на сервере 192.168.1.1.&lt;br /&gt;
Запуск трансляции теперь будет выглядеть таким образом:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; отключает встроенный трекер, опция &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; подключает внешний трекер.&lt;br /&gt;
&lt;br /&gt;
====Источник с двумя узлами поддержки====&lt;br /&gt;
В случае, если на источнике не хватает пропускной способности исходящего канала для нормальной работы трансляции, можно использовать узлы поддержки. Чаще всего узел поддержки представляет собой узел, который принимает данные от источника и отдает клиентам (хотя узел поддержки также может принимать данные от других узлов поддержки и даже от клиентов, в зависимости от его настроек). Узел поддержки имеет смысл ставить на отдельном сервере с хорошей шириной исходящего канала.&lt;br /&gt;
&lt;br /&gt;
Для максимально эффективной работы схемы с узлами поддержки источнику необходимо сообщить адреса этих узлов с помощью опции &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 (команды для запуска одинаковые):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; задает адрес источника.&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; разрешает узлу поддержки скачивать данные с источника (скачивание с других узлов поддержки и клиентов в данном случае запрещено).&lt;br /&gt;
&lt;br /&gt;
Если необходимо разрешить узлам поддержки скачивать данные с других узлов поддержки, то следует задать список других узлов опцией &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; и разрешить скачивание опцией &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.2 это будет выглядеть так:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Приватный источник с двумя узлами поддержки====&lt;br /&gt;
Иногда может возникнуть необходимость запретить клиентам напрямую обращаться к источнику трансляции. Например, источник может быть физически расположен на сервере в защищенной зоне без доступа из внешнего мира. В этом случае трансляцию можно организовать по следующей схеме:&lt;br /&gt;
*источник делается приватным (получать от него данные смогут только узлы поддержки, указанные явным образом)&lt;br /&gt;
*узлы поддержки получают данные от источника и отдают клиентам&lt;br /&gt;
*клиенты получают данные от узлов поддержки&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы сделать источник приватным, следует указать опцию &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что в данной конфигурации адрес трекера изменен на &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. Это сделано для поддержки старых версий клиентов, которые не обрабатывают список авторизованных пиров (подробнее здесь [[#Авторизованные узлы|Авторизованные узлы]]).&lt;br /&gt;
&lt;br /&gt;
Узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 запускаем как обычно:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=717</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=717"/>
		<updated>2020-06-09T17:31:43Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Old versions are temporarily available in repository and by direct links:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based launch scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=716</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=716"/>
		<updated>2020-06-09T17:30:15Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org|Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
**Download|Distributions&lt;br /&gt;
**Install Ubuntu|Install Linux&lt;br /&gt;
**Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
**Multi Stream|Multi Stream&lt;br /&gt;
**Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** WebPlugin|Web Plugin&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=715</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=715"/>
		<updated>2020-06-09T17:28:30Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org|Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Deployment&lt;br /&gt;
**Download|Download&lt;br /&gt;
**Install Ubuntu|Install Linux&lt;br /&gt;
**Install Windows|Install Windows&lt;br /&gt;
* Broadcasting&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
**Multi Stream|Multi Stream&lt;br /&gt;
**Create HLS Broadcast|HLS Broadcast&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** WebPlugin|Web Plugin&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=714</id>
		<title>Playlist API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=714"/>
		<updated>2020-06-09T17:06:24Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Brief description==&lt;br /&gt;
Playlist API allows to export playlist in different formats from Ace Stream Media Server. API available since version 3.1.28.&lt;br /&gt;
&lt;br /&gt;
API endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_host&amp;gt;:6878/playlist/get&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parameters:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;format&amp;#039;&amp;#039; (list) - set output format;&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (list) - filter by category (media type);&lt;br /&gt;
* &amp;#039;&amp;#039;subcategory&amp;#039;&amp;#039; (string) - filter by subcategory (tags);&lt;br /&gt;
* &amp;#039;&amp;#039;favorites&amp;#039;&amp;#039; (bool, default is 0) - filter favorites; favorites=0 means to output both favorite and non-favorite items;&lt;br /&gt;
* &amp;#039;&amp;#039;items&amp;#039;&amp;#039; (list of integers) - filter by playlist item ids;&lt;br /&gt;
* &amp;#039;&amp;#039;host&amp;#039;&amp;#039; (string) - configure playback URL: set &amp;quot;host&amp;quot; part of URL. Actually this is an IP address of Ace Stream Media Server. By default the host from endpoint URL is used;&lt;br /&gt;
* &amp;#039;&amp;#039;protocol&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback URL: set output protocol (http or hls);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: enabled audio transcoding;&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode MP3 to AAC (by default MP3 is not transcoded);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode only AC3 to AAC and don&amp;#039;t transcode other codecs;&lt;br /&gt;
* &amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback ULR: set preferred audio language;&lt;br /&gt;
* &amp;#039;&amp;#039;download&amp;#039;&amp;#039; (bool, default is 0) - download playlist as file;&lt;br /&gt;
* &amp;#039;&amp;#039;skip_autosearch&amp;#039;&amp;#039; (bool, default is 0) - don&amp;#039;t replace playlist data with autosearch results; this doesn&amp;#039;t affect playlist items with disabled autosearch.&lt;br /&gt;
* &amp;#039;&amp;#039;generate_player_id&amp;#039;&amp;#039; (bool, default is 0) - with this option engine will output playlist with random &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; ([[Engine_HTTP_API#Player ID]]) for each item.&lt;br /&gt;
&lt;br /&gt;
Boolean values are passed as 0 or 1 (e.g. transcode_audio=1), list of integers is passed as string of values concatenated with comma (e.g. items=14,115,127).&lt;br /&gt;
&lt;br /&gt;
Allowed values for list parameters:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;format&amp;#039;&amp;#039;&amp;#039; - acestream, m3u, json;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039; - tv, movies, music_video, music, other;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;protocol&amp;#039;&amp;#039;&amp;#039; - http, hls.&lt;br /&gt;
&lt;br /&gt;
==Playlist output formats==&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;m3u&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is intented for different media players.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;acestream&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is used to export playlist in such way so it can be imported in the Ace Stream software running somewhere else.&lt;br /&gt;
At the moment we use M3U format with some additional fields, specific to Ace Stream.&lt;br /&gt;
Each playlist item is identified either by Content ID (start with acestream://) or infohash (starts with magnet:). Infohash is used when Content ID is not available for some playlist item.&lt;br /&gt;
Both types of identifiers are recognized by Ace Stream Media Server when playlist is imported.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;json&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is indented to be used for automation. Playlist is returned as list of items, each item is an object with such fields:&lt;br /&gt;
* &amp;#039;&amp;#039;id&amp;#039;&amp;#039; (integer) - playlist item id unique for this media server; this id can be passed in &amp;quot;items&amp;quot; parameter to filter specific playlist items;&lt;br /&gt;
* &amp;#039;&amp;#039;title&amp;#039;&amp;#039; (string) - title;&lt;br /&gt;
* &amp;#039;&amp;#039;playback_url&amp;#039;&amp;#039; (string)  playback URL;&lt;br /&gt;
* &amp;#039;&amp;#039;content_id&amp;#039;&amp;#039; (string) - Content ID (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;infohash&amp;#039;&amp;#039; (string) - infohash (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;transport_file_url&amp;#039;&amp;#039; (string) - transport file URL (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (string) - media type (see list for &amp;quot;category&amp;quot; parameter);&lt;br /&gt;
* &amp;#039;&amp;#039;is_live&amp;#039;&amp;#039; (integer) - 1: live content, 0: VOD, -1: unknown;&lt;br /&gt;
* &amp;#039;&amp;#039;auto_search&amp;#039;&amp;#039; (bool) - whether autosearch is enabled for this playlist item;&lt;br /&gt;
* &amp;#039;&amp;#039;tags&amp;#039;&amp;#039; (list of strings) - list of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;m3u&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=m3u&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;acestream&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 acestream://acbfd1954084ffc68c65b0948485e5d0f82173e2&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 magnet:?xt=urn:btih:7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;json&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=json&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 [&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: false,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 1&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: &amp;quot;acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;quot;,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;a1231ebb2a26263cb37b305fced076961990812e&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 3&lt;br /&gt;
 },&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: true,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 2&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: null,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 4&lt;br /&gt;
 }&lt;br /&gt;
 ]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=713</id>
		<title>Playlist API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=713"/>
		<updated>2020-06-09T17:03:08Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Brief description ==&lt;br /&gt;
Playlist API allows to export playlist in different formats from Ace Stream Media Server.&lt;br /&gt;
&lt;br /&gt;
API endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_host&amp;gt;:6878/playlist/get&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parameters:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;format&amp;#039;&amp;#039; (list) - set output format;&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (list) - filter by category (media type);&lt;br /&gt;
* &amp;#039;&amp;#039;subcategory&amp;#039;&amp;#039; (string) - filter by subcategory (tags);&lt;br /&gt;
* &amp;#039;&amp;#039;favorites&amp;#039;&amp;#039; (bool, default is 0) - filter favorites; favorites=0 means to output both favorite and non-favorite items;&lt;br /&gt;
* &amp;#039;&amp;#039;items&amp;#039;&amp;#039; (list of integers) - filter by playlist item ids;&lt;br /&gt;
* &amp;#039;&amp;#039;host&amp;#039;&amp;#039; (string) - configure playback URL: set &amp;quot;host&amp;quot; part of URL. Actually this is an IP address of Ace Stream Media Server. By default the host from endpoint URL is used;&lt;br /&gt;
* &amp;#039;&amp;#039;protocol&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback URL: set output protocol (http or hls);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: enabled audio transcoding;&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode MP3 to AAC (by default MP3 is not transcoded);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode only AC3 to AAC and don&amp;#039;t transcode other codecs;&lt;br /&gt;
* &amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback ULR: set preferred audio language;&lt;br /&gt;
* &amp;#039;&amp;#039;download&amp;#039;&amp;#039; (bool, default is 0) - download playlist as file;&lt;br /&gt;
* &amp;#039;&amp;#039;skip_autosearch&amp;#039;&amp;#039; (bool, default is 0) - don&amp;#039;t replace playlist data with autosearch results; this doesn&amp;#039;t affect playlist items with disabled autosearch.&lt;br /&gt;
* &amp;#039;&amp;#039;generate_player_id&amp;#039;&amp;#039; (bool, default is 0) - with this option engine will output playlist with random &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; ([[Engine_HTTP_API#Player ID]]) for each item.&lt;br /&gt;
&lt;br /&gt;
Boolean values are passed as 0 or 1 (e.g. transcode_audio=1), list of integers is passed as string of values concatenated with comma (e.g. items=14,115,127).&lt;br /&gt;
&lt;br /&gt;
Allowed values for list parameters:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;format&amp;#039;&amp;#039;&amp;#039; - acestream, m3u, json;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039; - tv, movies, music_video, music, other;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;protocol&amp;#039;&amp;#039;&amp;#039; - http, hls.&lt;br /&gt;
&lt;br /&gt;
== Playlist output formats ==&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;m3u&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is intented for different media players.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;acestream&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is used to export playlist in such way so it can be imported in the Ace Stream software running somewhere else.&lt;br /&gt;
At the moment we use M3U format with some additional fields, specific to Ace Stream.&lt;br /&gt;
Each playlist item is identified either by Content ID (start with acestream://) or infohash (starts with magnet:). Infohash is used when Content ID is not available for some playlist item.&lt;br /&gt;
Both types of identifiers are recognized by Ace Stream Media Server when playlist is imported.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;json&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is indented to be used for automation. Playlist is returned as list of items, each item is an object with such fields:&lt;br /&gt;
* &amp;#039;&amp;#039;id&amp;#039;&amp;#039; (integer) - playlist item id unique for this media server; this id can be passed in &amp;quot;items&amp;quot; parameter to filter specific playlist items;&lt;br /&gt;
* &amp;#039;&amp;#039;title&amp;#039;&amp;#039; (string) - title;&lt;br /&gt;
* &amp;#039;&amp;#039;playback_url&amp;#039;&amp;#039; (string)  playback URL;&lt;br /&gt;
* &amp;#039;&amp;#039;content_id&amp;#039;&amp;#039; (string) - Content ID (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;infohash&amp;#039;&amp;#039; (string) - infohash (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;transport_file_url&amp;#039;&amp;#039; (string) - transport file URL (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (string) - media type (see list for &amp;quot;category&amp;quot; parameter);&lt;br /&gt;
* &amp;#039;&amp;#039;is_live&amp;#039;&amp;#039; (integer) - 1: live content, 0: VOD, -1: unknown;&lt;br /&gt;
* &amp;#039;&amp;#039;auto_search&amp;#039;&amp;#039; (bool) - whether autosearch is enabled for this playlist item;&lt;br /&gt;
* &amp;#039;&amp;#039;tags&amp;#039;&amp;#039; (list of strings) - list of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;m3u&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=m3u&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;acestream&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 acestream://acbfd1954084ffc68c65b0948485e5d0f82173e2&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 magnet:?xt=urn:btih:7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;json&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=json&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 [&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: false,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 1&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: &amp;quot;acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;quot;,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;a1231ebb2a26263cb37b305fced076961990812e&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 3&lt;br /&gt;
 },&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: true,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 2&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: null,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 4&lt;br /&gt;
 }&lt;br /&gt;
 ]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=712</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=712"/>
		<updated>2020-06-09T16:59:45Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org|Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Development&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** WebPlugin|Web Plugin&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;br /&gt;
** Product key|Product key&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=711</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=711"/>
		<updated>2020-06-09T16:59:20Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** https://forum.acestream.org|Ace Stream forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Development&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Playlist API|Playlist API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine HTTP API|HTTP API&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** WebPlugin|Web Plugin&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=710</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=710"/>
		<updated>2020-06-09T16:56:23Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Development&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine HTTP API|Engine HTTP API&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** WebPlugin|WebPlugin&lt;br /&gt;
** JavaScript Library|JavaScript Library&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=709</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=MediaWiki:Sidebar&amp;diff=709"/>
		<updated>2020-06-09T16:54:05Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Development&lt;br /&gt;
** Product key|Product key&lt;br /&gt;
** Search API|Search API&lt;br /&gt;
** Engine API|Engine API&lt;br /&gt;
** Engine HTTP API|Engine HTTP API&lt;br /&gt;
** Streaming|Streaming&lt;br /&gt;
** WebPlugin|WebPlugin&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Main_Page&amp;diff=708</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Main_Page&amp;diff=708"/>
		<updated>2020-06-08T19:54:31Z</updated>

		<summary type="html">&lt;p&gt;Ffx: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; allows you to provide the best in the world audio-visual quality of the online broadcast, without any need for maintenance of the park servers and expenditures for payment of network traffic!&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__ &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 95%;&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;| &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center; color: #333; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8;font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Installation&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Download]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Windows|Install on Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Android|Install on Android]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Ubuntu|Install on Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Releases&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[AceStream_3.0/en|AceStream 3]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Partners&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Resellers|Resellers]]&lt;br /&gt;
&lt;br /&gt;
[[Developers|Developers]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Broadcasting&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Create HLS Broadcast]]&lt;br /&gt;
&lt;br /&gt;
[[Check engine version/en|Check engine version]]&lt;br /&gt;
&lt;br /&gt;
[[Embedded Player/en|Embedded Player]]&lt;br /&gt;
&lt;br /&gt;
[[Multi Stream/en|Multi Stream]]&lt;br /&gt;
&lt;br /&gt;
[[Streaming/en|Streaming]]&lt;br /&gt;
&lt;br /&gt;
[[Premium Broadcasts/en|Premium Broadcasts]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Playlist API]]&lt;br /&gt;
&lt;br /&gt;
[[Search API]]&lt;br /&gt;
&lt;br /&gt;
[[Engine HTTP API]]&lt;br /&gt;
&lt;br /&gt;
[[Product key|Product key]]&lt;br /&gt;
&lt;br /&gt;
[[Tracker/en|Tracker]]&lt;br /&gt;
&lt;br /&gt;
[[Content ID Generation|Content ID Generation]]&lt;br /&gt;
&lt;br /&gt;
[[External Playlist/en|External Playlist]]&lt;br /&gt;
&lt;br /&gt;
[[OAuth2/en|OAuth2 protocol]]&lt;br /&gt;
&lt;br /&gt;
[[WebPlugin/en|WebPlugin]]&lt;br /&gt;
&lt;br /&gt;
[[Create Transport File/en|Create Transport File]]&lt;br /&gt;
&lt;br /&gt;
[[Engine API/en|Engine API]]&lt;br /&gt;
&lt;br /&gt;
[[API Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Engine_Service_API|Engine Service API]]&lt;br /&gt;
&lt;br /&gt;
[[Reseller API|Reseller API]]&lt;br /&gt;
&lt;br /&gt;
[[Developer API|Developer API]]&lt;br /&gt;
&lt;br /&gt;
[[Application_Developers_Example|Examples for application developers]]&lt;br /&gt;
&lt;br /&gt;
[[Using_Ace_Stream_as_service_on_Android|Using the engine as a service for Android]]&lt;br /&gt;
&lt;br /&gt;
[[Launch_Ace_Stream_on_Android|Launch Ace Stream on Android]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- end of the middle section --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Ace_Stream_Wiki:Community_portal&amp;diff=707</id>
		<title>Ace Stream Wiki:Community portal</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Ace_Stream_Wiki:Community_portal&amp;diff=707"/>
		<updated>2020-06-08T19:53:22Z</updated>

		<summary type="html">&lt;p&gt;Ffx: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; allows you to provide the best in the world audio-visual quality of the online broadcast, without any need for maintenance of the park servers and expenditures for payment of network traffic!&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__ &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 95%;&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;| &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center; color: #333; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8;font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Installation&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Download]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Windows|Install on Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Android|Install on Android]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Ubuntu|Install on Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Releases&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[AceStream_3.0/en|AceStream 3]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Partners&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Resellers|Resellers]]&lt;br /&gt;
&lt;br /&gt;
[[Developers|Developers]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Broadcasting&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Create HLS Broadcast]]&lt;br /&gt;
&lt;br /&gt;
[[Check engine version/en|Check engine version]]&lt;br /&gt;
&lt;br /&gt;
[[Embedded Player/en|Embedded Player]]&lt;br /&gt;
&lt;br /&gt;
[[Multi Stream/en|Multi Stream]]&lt;br /&gt;
&lt;br /&gt;
[[Streaming/en|Streaming]]&lt;br /&gt;
&lt;br /&gt;
[[Premium Broadcasts/en|Premium Broadcasts]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Playlist API]]&lt;br /&gt;
&lt;br /&gt;
[[Search API]]&lt;br /&gt;
&lt;br /&gt;
[[Engine HTTP API]]&lt;br /&gt;
&lt;br /&gt;
[[Product key|Product key]]&lt;br /&gt;
&lt;br /&gt;
[[Tracker/en|Tracker]]&lt;br /&gt;
&lt;br /&gt;
[[Content ID Generation|Content ID Generation]]&lt;br /&gt;
&lt;br /&gt;
[[External Playlist/en|External Playlist]]&lt;br /&gt;
&lt;br /&gt;
[[OAuth2/en|OAuth2 protocol]]&lt;br /&gt;
&lt;br /&gt;
[[WebPlugin/en|WebPlugin]]&lt;br /&gt;
&lt;br /&gt;
[[Create Transport File/en|Create Transport File]]&lt;br /&gt;
&lt;br /&gt;
[[Engine API/en|Engine API]]&lt;br /&gt;
&lt;br /&gt;
[[API Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Engine_Service_API|Engine Service API]]&lt;br /&gt;
&lt;br /&gt;
[[Reseller API|Reseller API]]&lt;br /&gt;
&lt;br /&gt;
[[Developer API|Developer API]]&lt;br /&gt;
&lt;br /&gt;
[[Application_Developers_Example|Examples for application developers]]&lt;br /&gt;
&lt;br /&gt;
[[Using_Ace_Stream_as_service_on_Android|Using the engine as a service for Android]]&lt;br /&gt;
&lt;br /&gt;
[[Launch_Ace_Stream_on_Android|Launch Ace Stream on Android]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- end of the middle section --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Create_HLS_Broadcast&amp;diff=697</id>
		<title>Create HLS Broadcast</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Create_HLS_Broadcast&amp;diff=697"/>
		<updated>2019-09-26T07:34:22Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Create transport file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To create HLS broadcast you must first create transport file and then (optionally) start one or more support nodes.&lt;br /&gt;
&lt;br /&gt;
Support nodes are not required for HLS broadcasts with direct access to original HLS server (both manifest and chunks).&lt;br /&gt;
&lt;br /&gt;
For other modes (when you hide manifest or chunks or both from clients) support servers are required.&lt;br /&gt;
&lt;br /&gt;
=== Create transport file ===&lt;br /&gt;
To create transport file start engine with &amp;lt;tt&amp;gt;--create-hls-transport&amp;lt;/tt&amp;gt; flag.&lt;br /&gt;
&lt;br /&gt;
Available options:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--url&amp;#039;&amp;#039;&amp;#039; (mandatory, string): URL of HLS playlist (m3u8). Note - only &amp;quot;live&amp;quot; HLS manifests is supported, not &amp;quot;VOD&amp;quot; (with #EXT-X-ENDLIST tag at the end of m3u8 file).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--title&amp;#039;&amp;#039;&amp;#039; (mandatory, string): Title of the broadcast&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--output-public&amp;#039;&amp;#039;&amp;#039; (mandatory, string): Path of resulting public transport file&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--category&amp;#039;&amp;#039;&amp;#039;: (mandatory, string, multiple): Category (several options add several categories). List of available categories is [[Channel Category|here]]&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--provider-key&amp;#039;&amp;#039;&amp;#039;: (optional, string): Provider key (for statistics)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--sid&amp;#039;&amp;#039;&amp;#039;: (optional, string): Provider channel id (for statistics)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--tracker&amp;#039;&amp;#039;&amp;#039;: (optional, string, multiple): URL of the tracker (several options add several trackers)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--hide-hls-manifest&amp;#039;&amp;#039;&amp;#039; (optional, flag): Don&amp;#039;t include HLS manifest URL in the public transport file&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--output-private&amp;#039;&amp;#039;&amp;#039; (mandatory when --hide-hls-manifest is set, string): Path of resulting private transport file&lt;br /&gt;
&amp;lt;!-- --base-url --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/opt/acestream/start-engine&lt;br /&gt;
--create-hls-transport&lt;br /&gt;
--title &amp;quot;My broadcast&amp;quot;&lt;br /&gt;
--url http://myserver.com/my_broadcast.m3u8&lt;br /&gt;
--output-public /data/public/my_broadcast.acelive&lt;br /&gt;
--provider-key &amp;quot;my provider key&amp;quot;&lt;br /&gt;
--sid &amp;quot;my-broadcast&amp;quot;&lt;br /&gt;
--tracker &amp;quot;udp://tracker1.myserver.com:2710/announce&amp;quot;&lt;br /&gt;
--tracker &amp;quot;udp://tracker2.myserver.com:2710/announce&amp;quot;&lt;br /&gt;
--category informational&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you create transport file without &amp;lt;tt&amp;gt;--hide-hls-manifest&amp;lt;/tt&amp;gt; option then HLS manifest URL is placed inside transport file and thus available to all clients.&lt;br /&gt;
In this case you can distribute transport file even without special support nodes.&lt;br /&gt;
&lt;br /&gt;
When you specify &amp;lt;tt&amp;gt;--hide-hls-manifest&amp;lt;/tt&amp;gt; option engine outputs two transport files:&lt;br /&gt;
*public transport file which should be distributed to clients (it doesn&amp;#039;t contain HLS manifest URL)&lt;br /&gt;
*private transport file (with HLS manifest URL) which should be used on your support nodes&lt;br /&gt;
&lt;br /&gt;
In this case clients don&amp;#039;t have direct access to HLS manifest and you must setup at least one support node.&lt;br /&gt;
&lt;br /&gt;
=== Start support node ===&lt;br /&gt;
HLS support node is started with the same options as regular support node.&lt;br /&gt;
&lt;br /&gt;
You must pass URL of the transport file with &amp;lt;tt&amp;gt;--url&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
If you have created transport file with &amp;lt;tt&amp;gt;--hide-hls-manifest&amp;lt;/tt&amp;gt; option then you should pass private transport file to support node.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/opt/acestream/start-engine&lt;br /&gt;
--stream-support-node&lt;br /&gt;
--url http://myserver.com/transport-files/my_broadcast_private.acelive&lt;br /&gt;
--port 8641&lt;br /&gt;
--max-peers 25&lt;br /&gt;
--cache-dir /data/cache&lt;br /&gt;
--pid-file-dir /data/pid&lt;br /&gt;
--log-file /data/logs/node.log&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are some special flags for HLS broadcasts:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--hide-hls-segments&amp;#039;&amp;#039;&amp;#039;: don&amp;#039;t send info about HLS segments (chunks) URLs into P2P network. With this flag clients will never access original HLS server (neither manifest nor chunks).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--hls-skip-metadata-broadcast&amp;#039;&amp;#039;&amp;#039;: send info about HLS segments URLs to directly connected peers only and prevent sending this info into P2P pool. Use this flag if you want to limit number of clients who has direct access to your original HLS server.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;--hls-skip-data&amp;#039;&amp;#039;&amp;#039;: don&amp;#039;t download HLS segments (chunks) on the support node. If you set this flag then support node will handle only HLS manifest. Chunks should be downloaded from original HLS server.&lt;br /&gt;
&lt;br /&gt;
Be careful: specifying both &amp;lt;tt&amp;gt;--hide-hls-segments&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--hls-skip-data&amp;lt;/tt&amp;gt; options at the same time makes no sense.&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=696</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=696"/>
		<updated>2019-09-11T10:36:55Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Recent scripts and configuration examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ACE Stream on Debian/Ubuntu from repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Add link on appropriate repository into &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Repository should be selected according to operating system.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 6:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ squeeze main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 or&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ sid main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: packages in sid repository are assembled with dependencies that correspond to official sid-repositories of Debian.&lt;br /&gt;
If you don&amp;#039;t know, which repository to choose, use squeeze.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 7:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ wheezy main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 11.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ oneiric main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ precise main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ quantal main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 13.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ raring main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing public key. To do this you have to run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;wget -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing the right package. For example, for engine installation you have to install acestream-engine package.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following packages are available in the repository for Ubuntu:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-engine&amp;#039;&amp;#039;&amp;#039; - engine&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-mozilla-plugin&amp;#039;&amp;#039;&amp;#039; - plug-in for browser&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player&amp;#039;&amp;#039;&amp;#039; - desktop player&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player-data&amp;#039;&amp;#039;&amp;#039; - set of common libraries for the player and plug-in&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-full&amp;#039;&amp;#039;&amp;#039; - full package, including all of the above&lt;br /&gt;
&lt;br /&gt;
For Debian only the engine (acestream-engine) is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Installing ACE Stream package on Ubuntu from deb-package ===&lt;br /&gt;
You can install ACE Stream on Ubuntu without using repository. To do this you need to download the installation package by one of links below and install it using a package manager (for example, by double click on downloaded package).&lt;br /&gt;
&lt;br /&gt;
Package for 32-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/i368/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package for 64-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/amd64/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supported versions of Ubuntu: 11.10, 12.04, 12.10&lt;br /&gt;
&lt;br /&gt;
This intallation package is an analog of &amp;lt;tt&amp;gt;acestream-full&amp;lt;/tt&amp;gt; package from repository. It includes the engine, player and plug-in for browsers.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing Ace Stream on the CentOS ===&lt;br /&gt;
Requirements:&lt;br /&gt;
* installed python 2.6&lt;br /&gt;
* installed module python-argparse&lt;br /&gt;
&lt;br /&gt;
To install Ace Stream on CentOS you need:&lt;br /&gt;
* download an archive that corresponds to your CentOS version (links are below)&lt;br /&gt;
* extract files from archive and copy contents to /usr dir&lt;br /&gt;
&lt;br /&gt;
The following packages are available at this moment:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 5 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/5/acestream-engine-2.1.6_4-centos5-x86_64.tar.gz&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 6 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/6/acestream-engine-2.1.6_4-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
This package was tested on CentOS 5.8 and 6.3.&lt;br /&gt;
&lt;br /&gt;
==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Old versions are temporarily available in repository and by direct links:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based launch scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=695</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=695"/>
		<updated>2019-09-11T10:36:12Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Private source with two support nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ACE Stream on Debian/Ubuntu from repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Add link on appropriate repository into &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Repository should be selected according to operating system.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 6:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ squeeze main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 or&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ sid main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: packages in sid repository are assembled with dependencies that correspond to official sid-repositories of Debian.&lt;br /&gt;
If you don&amp;#039;t know, which repository to choose, use squeeze.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 7:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ wheezy main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 11.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ oneiric main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ precise main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ quantal main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 13.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ raring main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing public key. To do this you have to run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;wget -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing the right package. For example, for engine installation you have to install acestream-engine package.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following packages are available in the repository for Ubuntu:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-engine&amp;#039;&amp;#039;&amp;#039; - engine&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-mozilla-plugin&amp;#039;&amp;#039;&amp;#039; - plug-in for browser&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player&amp;#039;&amp;#039;&amp;#039; - desktop player&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player-data&amp;#039;&amp;#039;&amp;#039; - set of common libraries for the player and plug-in&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-full&amp;#039;&amp;#039;&amp;#039; - full package, including all of the above&lt;br /&gt;
&lt;br /&gt;
For Debian only the engine (acestream-engine) is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Installing ACE Stream package on Ubuntu from deb-package ===&lt;br /&gt;
You can install ACE Stream on Ubuntu without using repository. To do this you need to download the installation package by one of links below and install it using a package manager (for example, by double click on downloaded package).&lt;br /&gt;
&lt;br /&gt;
Package for 32-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/i368/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package for 64-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/amd64/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supported versions of Ubuntu: 11.10, 12.04, 12.10&lt;br /&gt;
&lt;br /&gt;
This intallation package is an analog of &amp;lt;tt&amp;gt;acestream-full&amp;lt;/tt&amp;gt; package from repository. It includes the engine, player and plug-in for browsers.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing Ace Stream on the CentOS ===&lt;br /&gt;
Requirements:&lt;br /&gt;
* installed python 2.6&lt;br /&gt;
* installed module python-argparse&lt;br /&gt;
&lt;br /&gt;
To install Ace Stream on CentOS you need:&lt;br /&gt;
* download an archive that corresponds to your CentOS version (links are below)&lt;br /&gt;
* extract files from archive and copy contents to /usr dir&lt;br /&gt;
&lt;br /&gt;
The following packages are available at this moment:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 5 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/5/acestream-engine-2.1.6_4-centos5-x86_64.tar.gz&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 6 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/6/acestream-engine-2.1.6_4-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
This package was tested on CentOS 5.8 and 6.3.&lt;br /&gt;
&lt;br /&gt;
==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Old versions are temporarily available in repository and by direct links:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Recent scripts and configuration examples====&lt;br /&gt;
Python-based scripts with configuration examples and some brief explanation available via https://github.com/acestream/streaming-utils&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=694</id>
		<title>Streaming/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming/en&amp;diff=694"/>
		<updated>2019-07-15T19:23:30Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Syntax of acestreamengine --stream-source command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ACE Stream on Debian/Ubuntu from repository ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Add link on appropriate repository into &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Repository should be selected according to operating system.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 6:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ squeeze main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 or&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ sid main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: packages in sid repository are assembled with dependencies that correspond to official sid-repositories of Debian.&lt;br /&gt;
If you don&amp;#039;t know, which repository to choose, use squeeze.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 7:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ wheezy main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 11.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ oneiric main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ precise main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ quantal main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 13.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ raring main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing public key. To do this you have to run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;wget -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installing the right package. For example, for engine installation you have to install acestream-engine package.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following packages are available in the repository for Ubuntu:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-engine&amp;#039;&amp;#039;&amp;#039; - engine&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-mozilla-plugin&amp;#039;&amp;#039;&amp;#039; - plug-in for browser&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player&amp;#039;&amp;#039;&amp;#039; - desktop player&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player-data&amp;#039;&amp;#039;&amp;#039; - set of common libraries for the player and plug-in&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-full&amp;#039;&amp;#039;&amp;#039; - full package, including all of the above&lt;br /&gt;
&lt;br /&gt;
For Debian only the engine (acestream-engine) is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Installing ACE Stream package on Ubuntu from deb-package ===&lt;br /&gt;
You can install ACE Stream on Ubuntu without using repository. To do this you need to download the installation package by one of links below and install it using a package manager (for example, by double click on downloaded package).&lt;br /&gt;
&lt;br /&gt;
Package for 32-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/i368/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package for 64-bit versions of Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/amd64/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supported versions of Ubuntu: 11.10, 12.04, 12.10&lt;br /&gt;
&lt;br /&gt;
This intallation package is an analog of &amp;lt;tt&amp;gt;acestream-full&amp;lt;/tt&amp;gt; package from repository. It includes the engine, player and plug-in for browsers.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing Ace Stream on the CentOS ===&lt;br /&gt;
Requirements:&lt;br /&gt;
* installed python 2.6&lt;br /&gt;
* installed module python-argparse&lt;br /&gt;
&lt;br /&gt;
To install Ace Stream on CentOS you need:&lt;br /&gt;
* download an archive that corresponds to your CentOS version (links are below)&lt;br /&gt;
* extract files from archive and copy contents to /usr dir&lt;br /&gt;
&lt;br /&gt;
The following packages are available at this moment:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 5 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/5/acestream-engine-2.1.6_4-centos5-x86_64.tar.gz&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 6 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/6/acestream-engine-2.1.6_4-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
This package was tested on CentOS 5.8 and 6.3.&lt;br /&gt;
&lt;br /&gt;
==Launching broadcast==&lt;br /&gt;
&lt;br /&gt;
===Main terms===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; - a program that accepts broadcast&amp;#039;s HTTP-stream and provides playback of broadcast using ACE Stream software.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Support node&amp;#039;&amp;#039;&amp;#039; - a program allowing to scale broadcast using additional server equipment and Internet-channels.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039; - ACE Stream software, which is used to play broadcast.&lt;br /&gt;
&lt;br /&gt;
===Transition from versions 2.0.х to version 2.1 and higher===&lt;br /&gt;
From September, 10, 2013, upgraded version of the engine (2.1.6) for Ubuntu, Debian and CentOS is available.&lt;br /&gt;
&lt;br /&gt;
Before using a new version for production, we recommend to test it on one or several broadcasts, if possible.&lt;br /&gt;
&lt;br /&gt;
If you face any problems, please, write to the forum (http://forum.torrentstream.org) or email support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Old versions are temporarily available in repository and by direct links:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ATTENTION!&amp;lt;/span&amp;gt; In the nearest future support for older versions will be stopped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;IMPORTANT!&amp;lt;/span&amp;gt; All broadcasts created via new version of Ace Stream (2.1 and higher) are not suppported by client software of old versions (2.0.х and lower). If you attempt to watch a new broadcast using the old engine, an error &amp;quot;Cannot load transport file&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
====Changes in launch parameters====&lt;br /&gt;
Some parameters of the launch of sources and support nodes from the command line have been changed, therefore the launch with the old command line will not work.&lt;br /&gt;
&lt;br /&gt;
Main changes:&lt;br /&gt;
* one executable file is used &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; different launch modes (a source, support node) are set by options:&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** instead of &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; you should launch &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* log system is changed. In old versions the engine output all debug information into STDERR and redirecting the output was required to write logs into a file. In a new version it is possible to define in options, where to write logs - into STDOUT, into STDERR, into a file or syslog. Rotation of logs by their size is supported for files. You can read description of all options in [[#acestreamengine command|acestreamengine command]]&lt;br /&gt;
&lt;br /&gt;
===acestreamengine command===&lt;br /&gt;
Starting from version 2.1 Ace Stream Engine for Linux represents a single executable file &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, which works in different modes, depending on specified parameters.&lt;br /&gt;
&lt;br /&gt;
Work mode is set by one of the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - launch engine in a client mode from console (without a graphic interface)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - launch engine in a client mode with a graphic interface GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - launch a source of broadcast&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - launch a support node&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - create a transport file from existing content (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - create a multi-stream transport file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - show engine version&lt;br /&gt;
&lt;br /&gt;
Each work mode has their own required and not required parameters, described in appropriate sections.&lt;br /&gt;
&lt;br /&gt;
Also all work modes have common parameters that manage the output of debug information.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - deduce information in STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - deduce information in STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - deduce information in a specified file&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - maximum file size (bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - how many backup logs have to be stored (backup log file is created when a limit, specified by a parameter --log-max-size, is reached)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into the file (using buffer of specified size in bytes)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - deduce information in syslog-server at the specified address&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - syslog-server port&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - used facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - enable buffering of output into syslog (using buffer of specified size in bytes)&lt;br /&gt;
&lt;br /&gt;
===Common work scheme ===&lt;br /&gt;
Broadcast organization starts from launching the source (command &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Syntax of acestreamengine --stream-source command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; command launches broadcast source.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; - broadcast name (this name is used when creating acelive and other service files)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - source (link to http-stream)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE&amp;lt;/tt&amp;gt; - average bitrate of stream in bytes per second&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE&amp;lt;/tt&amp;gt; - &amp;quot;readable&amp;quot; broadcast name (this name is shown to clients). If it&amp;#039;s not specified, it&amp;#039;s taken from --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - old parameter, it&amp;#039;s better to use --cache-dir and --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - directory for creating service files (broadcast cache and others)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - directory, in which acelive-file will be created&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE&amp;lt;/tt&amp;gt; - piece size in bytes, power of two (if it&amp;#039;s not specified, it&amp;#039;s set automatically depending on bitrate)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION&amp;lt;/tt&amp;gt; - size of broadcast cache in format HH:MM:SS (by default, one hour: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST&amp;lt;/tt&amp;gt; - set address of local tracker manually&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port, where the engine works&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; - disable local tracker&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; - add list of authorized peers to acelive file&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; - make the source private&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add support node (in format ip:port). This parameter may appear multiple times if several support nodes have to be added.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER&amp;lt;/tt&amp;gt; - add tracker(announce url). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--trackers TRACKERS&amp;lt;/tt&amp;gt; - old format for adding trackers (announce url list separated by commas)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key PROVIDER_KEY&amp;lt;/tt&amp;gt; - provider&amp;#039;s key (only for commercial broadcasts)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from the source are given simultaneously&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - timeout for reading data from the original source (in seconds). Default is 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - interval is seconds, after which the engine will try to reconnect to the original source in case of connection lost. Default is 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - the directory where engine&amp;#039;s pid file is created. Default is /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key&amp;lt;/tt&amp;gt; - provider key (for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid&amp;lt;/tt&amp;gt; - content identificator for statistics(for an affiliate program)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent&amp;lt;/tt&amp;gt; - mark the broadcast as 24/7 (it&amp;#039;s available all the time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast start (for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss&amp;lt;/tt&amp;gt; - set the data and time of the broadcast end(for the broadcasts which runs during a limited time)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium&amp;lt;/tt&amp;gt; - request a &amp;quot;premium&amp;quot; status for the broadcast&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - limit upload speed (bytes/s, default is 0 - don&amp;#039;t limit)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - limit total number of connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
=== Syntax of acestreamengine --stream-node command===&lt;br /&gt;
&amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; command launches support node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;required parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - link to acelive file of broadcast&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;optional parameters&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - port(by default: 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - directory for temporary files (it&amp;#039;s deleted after support node installation)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - address of broadcast source (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - add address of another support node (ip:port). This parameter may appear multiple times.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - allow receiving data from the source&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - allow receiving data from other support nodes&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - allow receiving data from ordinary peers&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - limit number of total connections (default is 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - limit number of connections to other peers (default is 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - maximum number of peers, on which data from support node are given simultaneously (by default: 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum download speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - maximum upload speed (byte/s). By default: 0 (no restrictions).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - set the debug level (default is 0 - minimum log level)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - enable remote statistics&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - password for remote statistics access&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - interval in seconds between internal statistics update (default is 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - update information about connected peers in the internal statistics (increases CPU load)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;additional&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - show commands&amp;#039; description&lt;br /&gt;
&lt;br /&gt;
===Embedded tracker===&lt;br /&gt;
Embedded tracker is a tracker embedded into broadcast source. If it&amp;#039;s not disabled by &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option, its address will be added to acelive-file automatically.&lt;br /&gt;
&lt;br /&gt;
When organizing broadcast with many users, we recommend to disable embedded tracker and replace it with external tracker with a good productivity (for example, [http://xbtt.sourceforge.net/tracker/ XBT Tracker]).&lt;br /&gt;
&lt;br /&gt;
===Authorized nodes===&lt;br /&gt;
Client have to establish connection with at least two other nodes or an authorized node, to be connected to broadcast and start playback. Authorized node is a node, which was marked by broadcast&amp;#039;s creator as a &amp;quot;trustworthy&amp;quot;. Usually it&amp;#039;s a broadcast source and/or support nodes.&lt;br /&gt;
&lt;br /&gt;
The latest versions of ACE Stream software support using list of authorized nodes in acelive-file. For this &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option is set when creating broadcast, after this the list of authorized nodes is created and added to acelive-file. Broadcast source (if it&amp;#039;s not private) and all specified support nodes are in the list of authorized nodes. Clients that received this acelive-file use the list to determine whether a node is authorized.&lt;br /&gt;
&lt;br /&gt;
If the list of authorized nodes was not added to acelive-file or an old version of ACE Stream, which doesn&amp;#039;t understand this list, is installed, then authorized node is a node, IP address of which matches address of the first tracker from trackers&amp;#039; list. If embedded tracker is enabled on the source, it will be the first one on the list and clients will consider the source as authorized node. If embedded tracker is disabled, to support other clients we recommend to put on the first place tracker, located on the same server as broadcast source (so addresses of the first tracker and the source matched) or use at least one support node (so clients, when starting broadcast, could connect to two peers simultaneously, even if nobody watches broadcast).&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
For examples let&amp;#039;s assume that there is a local network with three servers:&lt;br /&gt;
*192.168.1.1 - server for the source&lt;br /&gt;
*192.168.1.2 - server for support node&lt;br /&gt;
*192.168.1.3 - server for support node&lt;br /&gt;
*192.168.1.100 - server that gives original broadcast&amp;#039;s stream (HTTP MPEG-TS) at &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (average bitrate of stream - 300 000 byte/s)&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s assumed that on server 192.168.1.1 there is a web-server with a core directory &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt; and two other directories:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - for keeping acelive-files, which will be available for downloading by a link like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - for keeping cache and service files of broadcast&lt;br /&gt;
&lt;br /&gt;
====Source with embedded tracker====&lt;br /&gt;
This is the easiest way to launch broadcast that does not require launching support nodes and installing additional trackers. This method is suitable for broadcasts with a small number of users.&lt;br /&gt;
&lt;br /&gt;
We launch the source on server 192.168.1.1:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line is used to write logs into file /tmp/test-source.log. By default &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; outputs all debug information in the STDOUT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; option adds the list of authorized nodes to acelive-file (in this case, it&amp;#039;s the source: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
After broadcast&amp;#039;s launch a file test.acelive will be created in directory /home/www/streams, in directory &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; such files will be created: &lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - broadcast cache. This file&amp;#039;s size is approximately equal to stream_duration_in_seconds (&amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt; option, by default: 1 hour) * bitrate byte&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - information for correct restart of broadcast is kept here&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - key for a broadcast&amp;#039;s digital signature&lt;br /&gt;
&lt;br /&gt;
To watch broadcasts clients can download broadcast file at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and start it in ACE Stream player or use other ways ([[Ways to watch broadcasts]]).&lt;br /&gt;
&lt;br /&gt;
====Source with external tracker====&lt;br /&gt;
If broadcast involves a large number of users, it&amp;#039;s better to use external tracker and disable embedded one (to reduce burden on the source).&lt;br /&gt;
&lt;br /&gt;
We recommed to use [http://xbtt.sourceforge.net/tracker/ XBT Tracker] as external tracker.&lt;br /&gt;
&lt;br /&gt;
In this example we assume that XBT Tracker is installed and launched on server 192.168.1.1.&lt;br /&gt;
Now broadcast&amp;#039;s launch will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; option disconnects embedded tracker, &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; option connects external tracker.&lt;br /&gt;
&lt;br /&gt;
====Source with two support nodes====&lt;br /&gt;
If there is not enough upstream bandwidth for normal work of broadcast on the source, support nodes can be used. Support node is often a node that receives data from the source and gives to clients (though support node can also receive data from other support nodes and even clients, depending on its settings). It makes sense to install support node on a separate server with a good width of output channel.&lt;br /&gt;
&lt;br /&gt;
To make a scheme with support nodes work with maximum efficiency, addresses of these nodes must be given to the source&lt;br /&gt;
using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 (commands are the same):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; sets source address.&lt;br /&gt;
&lt;br /&gt;
Option &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; allows support node to download data from the source (downloading from other support nodes and clients in this case is forbidden).&lt;br /&gt;
&lt;br /&gt;
To allow support nodes to download data from other suppport nodes, you should set a list of other nodes using &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; option and allow downloading using &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.2 it will look like:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On server 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Private source with two support nodes====&lt;br /&gt;
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:&lt;br /&gt;
*the source is made private (only support nodes, specified explicitly, can receive data from it)&lt;br /&gt;
*support nodes receive data from the source and give to clients&lt;br /&gt;
*clients receive data from support nodes&lt;br /&gt;
&lt;br /&gt;
To make the source private, option &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt; must be specified:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Test broadcast&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in this configuration tracker&amp;#039;s address is changed to &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. It was made to support old versions of clients, which do not process a list of authorized peers (more details here [[#Authorized peers|Authorized peers]]).&lt;br /&gt;
&lt;br /&gt;
Launch support nodes on servers 192.168.1.2 and 192.168.1.3 as usual:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Streaming&amp;diff=693</id>
		<title>Streaming</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Streaming&amp;diff=693"/>
		<updated>2019-07-15T19:22:29Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Синтаксис команды acestreamengine --stream-source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка ==&lt;br /&gt;
&lt;br /&gt;
=== Установка ACE Stream на Debian/Ubuntu из репозитория ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Шаг 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Добавить ссылку на соответствующий репозиторий в файл &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Репозиторий следует выбирать в зависимости от операционной системы.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 6:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ squeeze main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 либо&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ sid main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примечание: пакеты в репозитории sid собраны с зависимостями, которые соответствуют официальным sid-репозиториям Debian.&lt;br /&gt;
Если вы не знаете, какой репозиторий выбрать, используйте squeeze.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian 7:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/debian/ wheezy main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 11.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ oneiric main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ precise main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 12.10:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ quantal main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu 13.04:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;deb http://repo.acestream.org/ubuntu/ raring main&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Шаг 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Установка публичного ключа. Для этого необходимо выполнить следующую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;wget -O - http://repo.acestream.org/keys/acestream.public.key | apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu:&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Шаг 3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Установка нужного пакета. Например, для установки движка нужно установить пакет acestream-engine&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get update&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo apt-get install acestream-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В репозитории для Ubuntu доступны следующие пакеты:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-engine&amp;#039;&amp;#039;&amp;#039; - движок&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-mozilla-plugin&amp;#039;&amp;#039;&amp;#039; - плагин для браузеров&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player&amp;#039;&amp;#039;&amp;#039; - десктопный плеер&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-player-data&amp;#039;&amp;#039;&amp;#039; - набор общих библиотек для плеера и плагина&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;acestream-full&amp;#039;&amp;#039;&amp;#039; - полный пакет, который включает в себя все вышеперечисленные&lt;br /&gt;
&lt;br /&gt;
Для Debian доступен только движок (acestream-engine).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Установка пакет ACE Stream на Ubuntu из deb-пакета ===&lt;br /&gt;
Можно установить ACE Stream на Ubuntu без использования репозитория. Для этого необходимо скачать установочный пакет по одной из ссылок ниже и установить пакет через менеджер пакетов (например, двойным кликом на скачанный файл пакета).&lt;br /&gt;
&lt;br /&gt;
Пакет для 32-битных версий Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/i368/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пакет для 64-битных версий Ubuntu:&lt;br /&gt;
 &amp;lt;tt&amp;gt;http://dl.torrentstream.org/products/acestream-full/ubuntu/amd64/latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживаемые версии Ubuntu: 11.10, 12.04, 12.10&lt;br /&gt;
&lt;br /&gt;
Данный установочный пакет является аналогом пакета &amp;lt;tt&amp;gt;acestream-full&amp;lt;/tt&amp;gt; из репозитория и включает в себя движок, плеер и плагин для браузеров.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Установка Ace Stream на CentOS ===&lt;br /&gt;
Для установки на CentOS необходимо:&lt;br /&gt;
* наличие установленного python 2.6&lt;br /&gt;
* наличие установленного модуля python-argparse&lt;br /&gt;
* скачать пакет, соответствующий версии CentOS (ссылки ниже)&lt;br /&gt;
* распаковать скачанный архив и скопировать содержимое в папку /usr&lt;br /&gt;
&lt;br /&gt;
На данный момент доступны такие пакеты:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 5 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/5/acestream-engine-2.1.6_4-centos5-x86_64.tar.gz&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CentOS 6 64bit&amp;#039;&amp;#039;&amp;#039;: http://dl.acestream.org/centos/6/acestream-engine-2.1.6_4-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
Данный пакет тестировался на версиях 5.8 и 6.3 соответственно.&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
Пакет для установки Ace Stream for Android:&lt;br /&gt;
http://dl.acestream.org/android/acestream-2.1.5.apk&lt;br /&gt;
&lt;br /&gt;
==== Информация для разработчиков  ====&lt;br /&gt;
Ace Stream for Android выполнен в виде сервиса, к которому могут подключаться сторонние приложения.&lt;br /&gt;
AIDL-файлы для подключения к Ace Stream:&lt;br /&gt;
* http://dl.acestream.org/android/IAceStreamEngine.aidl&lt;br /&gt;
* http://dl.acestream.org/android/IAceStreamEngineCallback.aidl&lt;br /&gt;
&lt;br /&gt;
После того, как стороннее приложение подключается к сервису Ace Stream, происходит следующее:&lt;br /&gt;
* если Ace Stream не запущен, то он запускается&lt;br /&gt;
* приложение получает порт для работы с Ace Stream Engine API через callback onStartEnd()&lt;br /&gt;
* приложение начинает работу с движком по API&lt;br /&gt;
&lt;br /&gt;
==Запуск трансляции==&lt;br /&gt;
&lt;br /&gt;
===Основные термины===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Источник&amp;#039;&amp;#039;&amp;#039; - программа, которая принимает на вход HTTP-поток трансляции и обеспечивает просмотр трансляции с помощью ПО Ace Stream&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Узел поддержки&amp;#039;&amp;#039;&amp;#039; - программа, позволяющая масштабировать трансляцию за счет использования дополнительного серверного оборудования и интернет-каналов&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Клиент&amp;#039;&amp;#039;&amp;#039; - ПО Ace Stream, которое используется для просмотра трансляции&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Timeshift&amp;#039;&amp;#039;&amp;#039; - временной интервал, в рамках которого в клиенты могут осуществлять перемотку трансляции&lt;br /&gt;
&lt;br /&gt;
===Переход с версий 2.0.х на версию 2.1 и выше===&lt;br /&gt;
С 10 сентября 2013 года доступна обновленная версия движка 2.1.6 под Ubuntu, Debian и CentOS.&lt;br /&gt;
&lt;br /&gt;
Перед полномасштабным использованием новой версии мы рекомендуем по возможности протестировать ее на одной или нескольких трансляциях.&lt;br /&gt;
&lt;br /&gt;
При возникновении каких-либо проблем просьба писать на форум http://forum.torrentstream.org либо на почту support@acestream.net.&lt;br /&gt;
&lt;br /&gt;
Старые версии временно доступны по прямым ссылкам:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1oneiric6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1precise6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1quantal6_i386.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/ubuntu/acestream-engine_2.0.8-1raring6_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1sid5_i386.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_amd64.deb&lt;br /&gt;
* http://dl.acestream.org/debian/acestream-engine_2.0.8-1squeeze5_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* http://dl.acestream.org/centos/6/acestream-engine-2.0.8_7-centos6-x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;ВНИМАНИЕ!&amp;lt;/span&amp;gt; В ближайшее время поддержка старых версий будет прекращена.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #009;&amp;quot;&amp;gt;ВАЖНО!&amp;lt;/span&amp;gt; Все трансляции, созданные с помощью новой версии Ace Stream (2.1 и выше) не поддерживаются клиентским ПО старых версий (2.0.х и ниже). При попытке просмотреть новую трансляцию с помощью старого движка будет выдаваться ошибка &amp;quot;Cannot load transport file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Изменения в параметрах запуска====&lt;br /&gt;
В новой версии изменились некоторые параметры запуска источников и узлов поддержки из командной строки, поэтому запуск со старой командной строкой работать не будет.&lt;br /&gt;
&lt;br /&gt;
Основные изменения:&lt;br /&gt;
* используется один исполняемый файл &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;; различные режимы запуска (источник, узел поддержки) задаются опциями:&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-node&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-client-console&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --client-console&amp;lt;/tt&amp;gt;&lt;br /&gt;
** вместо &amp;lt;tt&amp;gt;acestreamengine-client-gtk&amp;lt;/tt&amp;gt; следует запускать &amp;lt;tt&amp;gt;acestreamengine --client-gtk&amp;lt;/tt&amp;gt;&lt;br /&gt;
* изменена система логирования. В старых версия движок всю отладочную информацию выводил в STDERR и для записи логов в файл требовалось перенаправлять вывод. В новой версии можно в опциях задать, куда писать логи - в STDOUT, в STDERR, в файл либо в syslog. Для файлов поддерживается ротация логов по размеру. Описание всех опций смотрите в разделе [[#Команда acestreamengine|Команда acestreamengine]]&lt;br /&gt;
&lt;br /&gt;
===Команда acestreamengine===&lt;br /&gt;
Начиная с версии 2.1 Ace Stream Engine для Linux представляет собой один исполняемый файл &amp;lt;tt&amp;gt;acestreamengine&amp;lt;/tt&amp;gt;, который работает в различных режимах в зависимости от заданных параметров.&lt;br /&gt;
&lt;br /&gt;
Режим работы задается одним из следующих параметров:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-console&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента из консоли (без графического интерфейса)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-wx&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента с графическим интерфейсом WX&lt;br /&gt;
* &amp;lt;tt&amp;gt;--client-gtk&amp;lt;/tt&amp;gt; - запустить движок в режиме клиента с графическим интерфейсом GTK&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-source&amp;lt;/tt&amp;gt; - запустить источник трансляции&lt;br /&gt;
* &amp;lt;tt&amp;gt;--stream-node&amp;lt;/tt&amp;gt; - запустить узел поддержки&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport&amp;lt;/tt&amp;gt; - создать транспортный файл из существующего контента (VOD)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--create-transport-multi&amp;lt;/tt&amp;gt; - создать мультипотоковый транспортный файл&lt;br /&gt;
* &amp;lt;tt&amp;gt;--version&amp;lt;/tt&amp;gt; - показать версию движка&lt;br /&gt;
&lt;br /&gt;
Каждый режим работы имеет свои обязательные и необязательные параметры, описанные в соответствующих разделах.&lt;br /&gt;
&lt;br /&gt;
Также всех режимов работы есть общие параметры, которые управляют выводом отладочной информации.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stdout&amp;lt;/tt&amp;gt; - выводить информацию в STDOUT&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-stderr&amp;lt;/tt&amp;gt; - выводить информацию в STDERR&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file PATH&amp;lt;/tt&amp;gt; - выводить информацию в указанный файл&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-max-size SIZE&amp;lt;/tt&amp;gt; - максимальный размер файла (в байтах)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-backup-count COUNT&amp;lt;/tt&amp;gt; - сколько резервных логов хранить (резервный лог файл создается при достижении лимита, указанного паметром --log-max-size)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-file-buffer SIZE&amp;lt;/tt&amp;gt; - включить буферизацию вывода в файл (с использованием буфера указанного размера в байтах)&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog HOST&amp;lt;/tt&amp;gt; - выводить информацию в syslog-сервер по указанному адресу&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-port PORT&amp;lt;/tt&amp;gt; - порт syslog-сервера&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-facility FACILITY&amp;lt;/tt&amp;gt; - используемый facility&lt;br /&gt;
* &amp;lt;tt&amp;gt;--log-syslog-buffer SIZE&amp;lt;/tt&amp;gt; - включить буферизацию вывода в syslog (с использованием буфера указанного размера в байтах)&lt;br /&gt;
&lt;br /&gt;
===Общая схема работы===&lt;br /&gt;
Организация трансляции начинается с запуска источника (команда &amp;lt;tt&amp;gt;acestreamengine-stream&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Источник принимает на вход HTTP-поток (в данный момент поддерживаются HTTP-потоки с инкапсуляцией MPEG-TS) с оригиналом трансляции и после запуска создает файл с расширением acelive. Данный файл является уникальным идентификатором трансляции и используется клиентами для подключения и просмотра.&lt;br /&gt;
&lt;br /&gt;
===Синтаксис команды acestreamengine --stream-source===&lt;br /&gt;
Команда &amp;lt;tt&amp;gt;acestreamengine --stream-source&amp;lt;/tt&amp;gt; запускает источник трансляции.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;обязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--name NAME (*)&amp;lt;/tt&amp;gt; - название трансляции (это название используется при создании файла acelive и других служебных файлов)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source SOURCE&amp;lt;/tt&amp;gt; - источник (ссылка на http-поток)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--bitrate BITRATE (*)&amp;lt;/tt&amp;gt; - средний битрейт потока в байтах в секунду&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;необязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--title TITLE (*)&amp;lt;/tt&amp;gt; - &amp;quot;читабельное&amp;quot; название трансляции (это название выводится у клиентов). Если не задано, берется из --name&lt;br /&gt;
*&amp;lt;tt&amp;gt;--destdir DESTDIR&amp;lt;/tt&amp;gt; - устаревший параметр, лучше использовать --cache-dir и --publish-dir&lt;br /&gt;
*&amp;lt;tt&amp;gt;--cache-dir CACHE_DIR&amp;lt;/tt&amp;gt; - папка для создания служебных файлов (кеш трансляции и другие)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--publish-dir PUBLISH_DIR&amp;lt;/tt&amp;gt; - папка, в которой будет создан acelive-файл&lt;br /&gt;
*&amp;lt;tt&amp;gt;--piecesize PIECESIZE (*)&amp;lt;/tt&amp;gt; - размер куска в байтах, в степени 2 (если не задан, выставляется автоматически в зависимости от битрейта)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--duration DURATION (*)&amp;lt;/tt&amp;gt; - размер кеша трансляции в формат ЧЧ:ММ:СС (по умолчанию один час: 01:00:00)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--host HOST (*)&amp;lt;/tt&amp;gt; - вручную задать адрес локального трекера&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT (*)&amp;lt;/tt&amp;gt; - порт, на котором работает движок. По умолчанию 7764.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--skip-internal-tracker (*)&amp;lt;/tt&amp;gt; - отключить локальный трекер&lt;br /&gt;
*&amp;lt;tt&amp;gt;--add-authorized-peers (*)&amp;lt;/tt&amp;gt; - добавить список авторизованных пиров в acelive файл&lt;br /&gt;
*&amp;lt;tt&amp;gt;--private-source (*)&amp;lt;/tt&amp;gt; - сделать источник приватным&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE (*)&amp;lt;/tt&amp;gt; - добавить узел поддержки (в формате ip:port). Этот параметр может встречаться несколько раз, если нужно добавить несколько узлов поддержки.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--tracker TRACKER (*)&amp;lt;/tt&amp;gt; - добавить трекер (announce url). Этот параметр может встречаться несколько раз.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--maxclients MAXCLIENTS&amp;lt;/tt&amp;gt; - максимальное количество пиров, на которые одновременно отдаются данные с источника. По умолчанию 7.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - установить уровень отладки (по умолчанию 0 - минимальный)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-read-timeout SECONDS&amp;lt;/tt&amp;gt; - таймаут на чтение данных из оригинального источника (в секундах). По умолчанию 30.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-reconnect-interval SECONDS&amp;lt;/tt&amp;gt; - интервал в секундах, через который движок попробует повторно подсоединиться к оригинальному источнику при обрыве связи. По умолчанию 5.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--pid-file-dir PATH&amp;lt;/tt&amp;gt; - папка, в которой будет создан pid-файл движка. По умолчанию /tmp.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--provider-key (*)&amp;lt;/tt&amp;gt; - ключ провайдера (используется для партнерской программы)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--sid (*)&amp;lt;/tt&amp;gt; - идентификатор трансляции для статистики (используется для партнерской программы)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--permanent (*)&amp;lt;/tt&amp;gt; - отметить трансляцию, которая идет 24/7 (круглосуточная трансляция)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-start YYYY-MM-DD HH:mm:ss (*)&amp;lt;/tt&amp;gt; - указать дату и время начала трансляции (для трансляций с ограниченным временем вещания)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--date-end YYYY-MM-DD HH:mm:ss (*)&amp;lt;/tt&amp;gt; - указать дату и время окончания трансляции (для трансляций с ограниченным временем вещания)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--premium (*)&amp;lt;/tt&amp;gt; - запросить статус &amp;quot;премиум&amp;quot; для трансляции&lt;br /&gt;
*&amp;lt;tt&amp;gt;--upload-limit&amp;lt;/tt&amp;gt; - ограничить скорость отдачи (в байтах/с, по умолчанию 0 - не ограничивать)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections&amp;lt;/tt&amp;gt; - максимальное общее кол-во соединений (по умолчанию 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers&amp;lt;/tt&amp;gt; - максимальное кол-во подключений к пирам (по умолчанию 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - разрешить удаленный просмотр статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - ключ доступа для удаленной статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval&amp;lt;/tt&amp;gt; - интервал в секундах между обновлениями внутренней статистики (по умолчанию 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - обновлять данные по пирам во внутренней статистике&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;дополнительно&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - показать описание команд&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;примечание&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Изменение параметров, отмеченных звездочками, приводит к изменению Content ID трансляции&lt;br /&gt;
&lt;br /&gt;
===Синтаксис команды acestreamengine --stream-node===&lt;br /&gt;
Команда &amp;lt;tt&amp;gt;acestreamengine --stream-node&amp;lt;/tt&amp;gt; запускает узел поддержки&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;обязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--url URL&amp;gt;&amp;lt;/tt&amp;gt; - ссылка на acelive файл трансляции&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;необязательные параметры&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;--port PORT&amp;lt;/tt&amp;gt; - порт (по умолчанию 8621)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--state-dir STATE_DIR&amp;lt;/tt&amp;gt; - папка для временных файлов (удаляется после остановки узла поддержки)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--source-node SOURCE_NODE&amp;lt;/tt&amp;gt; - адрес источника трансляции (ip:port)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--support-node SUPPORT_NODE&amp;lt;/tt&amp;gt; - добавить адрес другого узла поддержки (ip:port). Этот параметр может встречаться несколько раз.&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; - разрешить получение данных от источника&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt; - разрешить получение данных от других узлов поддержки&lt;br /&gt;
*&amp;lt;tt&amp;gt;--allow-peers-download&amp;lt;/tt&amp;gt; - разрешить получение данных от обычных пиров&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-connections MAX_CONNECTIONS&amp;lt;/tt&amp;gt; - максимальное общее кол-во соединений (по умолчанию 1000)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-peers MAX_PEERS&amp;lt;/tt&amp;gt; - максимальное кол-во подключений к пирам (по умолчанию 50)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-slots MAX_UPLOAD_SLOTS&amp;lt;/tt&amp;gt; - максимальное количество пиров, на которые одновременно отдаются данные с узла поддержки (по умолчанию 7)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-download-speed MAX_DOWNLOAD_SPEED&amp;lt;/tt&amp;gt; - максимальная скорость загрузки (байт/с). По умолчанию 0 (без ограничений).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--max-upload-speed MAX_UPLOAD_SPEED&amp;lt;/tt&amp;gt; - максимальная скорость отдачи (байт/с). По умолчанию 0 (без ограничений).&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-interval STATS_REPORT_INTERVAL&amp;lt;/tt&amp;gt; - интервал в секундах между обновлениями внутренней статистики (по умолчанию 60)&lt;br /&gt;
*&amp;lt;tt&amp;gt;--stats-report-peers&amp;lt;/tt&amp;gt; - обновлять данные по пирам во внутренней статистике&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-remote-access&amp;lt;/tt&amp;gt; - разрешить удаленный просмотр статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--service-access-token&amp;lt;/tt&amp;gt; - ключ доступа для удаленной статистики&lt;br /&gt;
*&amp;lt;tt&amp;gt;--log-debug DEBUG&amp;lt;/tt&amp;gt; - установить уровень отладки&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;дополнительно&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;lt;tt&amp;gt;-h, --help&amp;lt;/tt&amp;gt; - показать описание команд&lt;br /&gt;
&lt;br /&gt;
===Встроенный трекер===&lt;br /&gt;
Встроенный трекер - это трекер встроенный в источник трансляции. Если он не отключен опцией &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt;, то его адрес будет автоматически добавлен в acelive-файл.&lt;br /&gt;
&lt;br /&gt;
При организации трансляций с большим количеством пользователей мы рекомендуем отключать встроенный трекер и заменять его внешним трекером с хорошей производительностью (например, [http://xbtt.sourceforge.net/tracker/ XBT Tracker])&lt;br /&gt;
&lt;br /&gt;
===Авторизованные узлы===&lt;br /&gt;
Для того, чтобы клиент подключился к трансляции и начал просмотр, ему необходимо либо установить соединение минимум с двумя другими узлами, либо установить соединение с авторизованным узлом. Авторизованный узел - это узел, который был отмечен создателем трансляции как такой, которому можно &amp;quot;доверять&amp;quot;. Как правило, это источник трансляции и/или узлы поддержки.&lt;br /&gt;
&lt;br /&gt;
Последние версии ПО ACE Stream поддерживают использование списка авторизованных узлов в acelive-файле. Для этого при создании трансляции задается опция &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt;, после чего формируется список авторизованных узлов и добавляется в acelive-файл. В список авторизованных узлов попадает источник трансляции (если это не приватный источник) и все указанные узлы поддержки. Клиенты, которые получили данный acelive-файл, используют список для определения того, является ли какой-либо узел авторизованным.&lt;br /&gt;
&lt;br /&gt;
Если в acelive-файл не был добавлен список авторизованных узлов, либо у клиента установлена старая версия ACE Stream, которая не распознает данный список, то авторизованным узлом считается узел, IP адрес которого совпадает с адресом первого трекера в списке трекеров. Если встроенный трекер на источнике не отключен, то он будет первым в списке и клиенты будут считать источник авторизованным узлом. В случае, если встроенный трекер отключен, для поддержки старых клиентов мы рекомендуем ставить на первое место трекер, расположенный на том же сервере, что и источник трансляции (чтобы адреса первого трекера и источника совпадали), либо использовать как минимум один узел поддержки (чтобы клиенты при старте могли установить соединение сразу с двумя пирами, даже если больше никто не смотрит трансляцию).&lt;br /&gt;
&lt;br /&gt;
===Timeshift===&lt;br /&gt;
Функция &amp;quot;Timeshift&amp;quot; дает пользователям возможность осуществить перемотку трансляции на некоторое время назад, а также поставить трансляцию на паузу и вернуться к просмотру в удобное для них время.&lt;br /&gt;
&lt;br /&gt;
Время, на которое может осуществляться перемотка назад, задается при создании трансляции опцией &amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt;. Время указывается в формате ЧЧ:ММ:СС.&lt;br /&gt;
&lt;br /&gt;
Например, при указании опции &amp;lt;tt&amp;gt;--duration 00:30:00&amp;lt;/tt&amp;gt; будет задан интервал 30 минут.&lt;br /&gt;
&lt;br /&gt;
===Примеры===&lt;br /&gt;
Для примеров предположим наличие локальной сети с тремя серверами:&lt;br /&gt;
*192.168.1.1 - сервер для источника&lt;br /&gt;
*192.168.1.2 - сервер для узла поддержки&lt;br /&gt;
*192.168.1.3 - сервер для узла поддержки&lt;br /&gt;
*192.168.1.100 - сервер, который отдает оригинальный поток трансляции (HTTP MPEG-TS) по адресу &amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt; (средний битрейт потока - 300 000 байт/с)&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.1 предполагается наличие веб-сервера с корневой папкой &amp;lt;tt&amp;gt;/home/www&amp;lt;/tt&amp;gt;, а также двух папок:&lt;br /&gt;
*&amp;lt;tt&amp;gt;/home/www/streams&amp;lt;/tt&amp;gt; - для хранения acelive-файлов, которые будут доступны для скачивания по ссылке вида &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; - для хранения кэша и служебных файлов трансляций&lt;br /&gt;
&lt;br /&gt;
====Источник с встроенным трекером====&lt;br /&gt;
Это наиболее простой способ запуск трансляции, не требующий запуска узлов поддержки и установки дополнительных трекеров. Данный способ подходит для трансляций с небольшим количество пользователей.&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.1 запускаем источник:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--add-authorized-peers&amp;lt;/tt&amp;gt; добавляет в acelive-файл список авторизованных узлов (в данном случае это источник: 192.168.1.1).&lt;br /&gt;
&lt;br /&gt;
После запуска трансляции в папке /home/www/streams будет создан файл test.acelive, в папке &amp;lt;tt&amp;gt;/tmp/streams&amp;lt;/tt&amp;gt; будут созданы такие файлы:&lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; - кэш трансляции. Размер этого файла примерно равен длительность_потока_в_секундах (опция &amp;lt;tt&amp;gt;--duration&amp;lt;/tt&amp;gt;, по умолчанию 1 час) * битрейт байт&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.restart&amp;lt;/tt&amp;gt; - здесь хранится информация для корректного перезапуска трансляции&lt;br /&gt;
*&amp;lt;tt&amp;gt;test.sauth&amp;lt;/tt&amp;gt; - ключ для цифровой подписи трансляции&lt;br /&gt;
&lt;br /&gt;
Для просмотра трансляции клиенты могут скачать файл трансляции по ссылке &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; и запустить его в плеере ACE Stream, либо использовать другие способы ([[Способы просмотра трансляции]]).&lt;br /&gt;
&lt;br /&gt;
====Источник с внешним трекером====&lt;br /&gt;
Если трансляция предполагает большое количество пользователей, то желательно использовать внешний трекер и отключить встроенный (для снижения нагрузки на источник).&lt;br /&gt;
&lt;br /&gt;
В качестве внешнего трекера мы советуем использовать [http://xbtt.sourceforge.net/tracker/ XBT Tracker]&lt;br /&gt;
&lt;br /&gt;
В данном примере предполагаем, что XBT Tracker установлен и запущен на сервере 192.168.1.1.&lt;br /&gt;
Запуск трансляции теперь будет выглядеть таким образом:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--skip-internal-tracker&amp;lt;/tt&amp;gt; отключает встроенный трекер, опция &amp;lt;tt&amp;gt;--tracker&amp;lt;/tt&amp;gt; подключает внешний трекер.&lt;br /&gt;
&lt;br /&gt;
====Источник с двумя узлами поддержки====&lt;br /&gt;
В случае, если на источнике не хватает пропускной способности исходящего канала для нормальной работы трансляции, можно использовать узлы поддержки. Чаще всего узел поддержки представляет собой узел, который принимает данные от источника и отдает клиентам (хотя узел поддержки также может принимать данные от других узлов поддержки и даже от клиентов, в зависимости от его настроек). Узел поддержки имеет смысл ставить на отдельном сервере с хорошей шириной исходящего канала.&lt;br /&gt;
&lt;br /&gt;
Для максимально эффективной работы схемы с узлами поддержки источнику необходимо сообщить адреса этих узлов с помощью опции &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.1:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 (команды для запуска одинаковые):&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--source-node&amp;lt;/tt&amp;gt; задает адрес источника.&lt;br /&gt;
&lt;br /&gt;
Опция &amp;lt;tt&amp;gt;--allow-source-download&amp;lt;/tt&amp;gt; разрешает узлу поддержки скачивать данные с источника (скачивание с других узлов поддержки и клиентов в данном случае запрещено).&lt;br /&gt;
&lt;br /&gt;
Если необходимо разрешить узлам поддержки скачивать данные с других узлов поддержки, то следует задать список других узлов опцией &amp;lt;tt&amp;gt;--support-node&amp;lt;/tt&amp;gt; и разрешить скачивание опцией &amp;lt;tt&amp;gt;--allow-support-download&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.2 это будет выглядеть так:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На сервере 192.168.1.3:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --allow-support-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Приватный источник с двумя узлами поддержки====&lt;br /&gt;
Иногда может возникнуть необходимость запретить клиентам напрямую обращаться к источнику трансляции. Например, источник может быть физически расположен на сервере в защищенной зоне без доступа из внешнего мира. В этом случае трансляцию можно организовать по следующей схеме:&lt;br /&gt;
*источник делается приватным (получать от него данные смогут только узлы поддержки, указанные явным образом)&lt;br /&gt;
*узлы поддержки получают данные от источника и отдают клиентам&lt;br /&gt;
*клиенты получают данные от узлов поддержки&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы сделать источник приватным, следует указать опцию &amp;lt;tt&amp;gt;--private-source&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-source \&lt;br /&gt;
 --name &amp;quot;test&amp;quot; \&lt;br /&gt;
 --title &amp;quot;Тестовая трансляция&amp;quot; \&lt;br /&gt;
 --source &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.100/stream&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --bitrate 300000 \&lt;br /&gt;
 --port 7764 \&lt;br /&gt;
 --publish-dir &amp;quot;/home/www/streams&amp;quot; \&lt;br /&gt;
 --cache-dir &amp;quot;/tmp/streams&amp;quot; \&lt;br /&gt;
 --add-authorized-peers \&lt;br /&gt;
 --skip-internal-tracker \&lt;br /&gt;
 --tracker &amp;quot;udp://192.168.1.2:2710/announce&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.2:8621&amp;quot; \&lt;br /&gt;
 --support-node &amp;quot;192.168.1.3:8621&amp;quot; \&lt;br /&gt;
 --private-source \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что в данной конфигурации адрес трекера изменен на &amp;lt;tt&amp;gt;udp://192.168.1.2:2710/announce&amp;lt;/tt&amp;gt;. Это сделано для поддержки старых версий клиентов, которые не обрабатывают список авторизованных пиров (подробнее здесь [[#Авторизованные узлы|Авторизованные узлы]]).&lt;br /&gt;
&lt;br /&gt;
Узлы поддержки на серверах 192.168.1.2 и 192.168.1.3 запускаем как обычно:&lt;br /&gt;
 &amp;lt;tt&amp;gt;acestreamengine --stream-node \&lt;br /&gt;
 --url &amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.1.1/streams/test.acelive&amp;lt;/nowiki&amp;gt;&amp;quot; \&lt;br /&gt;
 --state-dir &amp;quot;/tmp&amp;quot; \&lt;br /&gt;
 --source-node &amp;quot;192.168.1.1:7764&amp;quot; \&lt;br /&gt;
 --allow-source-download \&lt;br /&gt;
 --log-stdout&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Download&amp;diff=691</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Download&amp;diff=691"/>
		<updated>2019-06-10T13:35:12Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find the links the latest versions of Ace Stream software for all available platforms.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* stable version: http://dl.acestream.org/products/acestream-full/win/latest&lt;br /&gt;
* beta version: http://dl.acestream.org/products/acestream3-beta/win/latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android/latest&lt;br /&gt;
&lt;br /&gt;
==Android TV==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
==Android core versions==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AOSP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android/acestream-core/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core-beta/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android/acestream-core-beta/latest&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Android-TV&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android-tv/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android-tv/acestream-core/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android-tv/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android-tv/acestream-core-beta/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android-tv/acestream-core-beta/latest&lt;br /&gt;
&lt;br /&gt;
==Android Beta Test==&lt;br /&gt;
If you want to became an Android beta-tester, please visit one of these links:&lt;br /&gt;
&lt;br /&gt;
* Ace Stream Media: https://play.google.com/apps/testing/org.acestream.media&lt;br /&gt;
* Ace Stream Media for Android TV: https://play.google.com/apps/testing/org.acestream.media.atv&lt;br /&gt;
* Ace Stream Engine: https://play.google.com/apps/testing/org.acestream.core&lt;br /&gt;
* Ace Stream Engine for Android TV: https://play.google.com/apps/testing/org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 18&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* beta version, amd64: http://acestream.org/downloads/linux-beta/acestream_3.1.35_ubuntu_18.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 16&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 14&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_14.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 12&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_12.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 8&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_debian_8.7_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;More info&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can find more info about linux builds and packages prepared by community on our forum: http://forum.torrentstream.org/index.php?topic=12086.0&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Download&amp;diff=690</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Download&amp;diff=690"/>
		<updated>2019-06-10T13:22:53Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find the links the latest versions of Ace Stream software for all available platforms.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* stable version: http://dl.acestream.org/products/acestream-full/win/latest&lt;br /&gt;
* beta version: http://dl.acestream.org/products/acestream3-beta/win/latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android/latest&lt;br /&gt;
&lt;br /&gt;
==Android TV==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
==Android core versions==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;AOSP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android/acestream-core/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android/acestream-core/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/android/acestream-core-beta/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/android/acestream-core-beta/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/android/acestream-core-beta/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Android-TV&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
==Android Beta Test==&lt;br /&gt;
If you want to became an Android beta-tester, please visit one of these links:&lt;br /&gt;
&lt;br /&gt;
* Ace Stream Media: https://play.google.com/apps/testing/org.acestream.media&lt;br /&gt;
* Ace Stream Media for Android TV: https://play.google.com/apps/testing/org.acestream.media.atv&lt;br /&gt;
* Ace Stream Engine: https://play.google.com/apps/testing/org.acestream.core&lt;br /&gt;
* Ace Stream Engine for Android TV: https://play.google.com/apps/testing/org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 18&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* beta version, amd64: http://acestream.org/downloads/linux-beta/acestream_3.1.35_ubuntu_18.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 16&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 14&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_14.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 12&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_12.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 8&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_debian_8.7_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;More info&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can find more info about linux builds and packages prepared by community on our forum: http://forum.torrentstream.org/index.php?topic=12086.0&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Resellers&amp;diff=687</id>
		<title>Resellers</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Resellers&amp;diff=687"/>
		<updated>2019-02-18T11:51:13Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* API for Resellers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Terms==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Reseller&amp;#039;&amp;#039;&amp;#039; – Ace Stream user who has got rights to sell paid Ace Stream options&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;User key&amp;#039;&amp;#039;&amp;#039; - Ace Stream user&amp;#039;s ID&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Option&amp;#039;&amp;#039;&amp;#039; - additional service / software service of Ace Stream, which can be activated for a specific user key &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;App&amp;#039;&amp;#039;&amp;#039; - reseller&amp;#039;s product (site, mobile or desktop application), which is used to sell options&lt;br /&gt;
&lt;br /&gt;
==How to become a reseller==&lt;br /&gt;
* log in to site https://accounts.acestream.net using your login (if you do not have the login, you have to [https://accounts.acestream.net/register register])&lt;br /&gt;
* choose section [https://accounts.acestream.net/partnership &amp;quot;Partnership&amp;quot;] in a top menu&lt;br /&gt;
* click button &amp;quot;Become a reseller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==API for Resellers==&lt;br /&gt;
API for resellers allows you to activate different additional options for users of your apps.&lt;br /&gt;
&lt;br /&gt;
A common scheme of work of API for resellers looks like this:&lt;br /&gt;
* to activate a required option for a user your app (site, mobile or desktop app) sends a request to Ace Stream server, in which specifies user&amp;#039;s id, option and activation period&lt;br /&gt;
* the cost of specified option for the specified period is charged from your balance in Ace Stream system&lt;br /&gt;
* specified option is activated for the user whose id you specified in the request&lt;br /&gt;
&lt;br /&gt;
Full description of API for resellers you can find [[Reseller_API|here]].&lt;br /&gt;
&lt;br /&gt;
To work with API you will need the following two identifiers:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;API key&amp;#039;&amp;#039;&amp;#039; - string, used for reseller&amp;#039;s ID in API requests&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;API secret&amp;#039;&amp;#039;&amp;#039; - secret key, used for a digital signature of API requests&lt;br /&gt;
&lt;br /&gt;
You can find these identifiers in section Reseller -&amp;gt; API settings in a left menu. The reseller can change a secret key by themselves (button &amp;quot;Edit API settings&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Creating apps==&lt;br /&gt;
To start working with API for resellers you have to create at least one app. To do this click button &amp;quot;Create a new application&amp;quot; in section Reseller -&amp;gt; Applications in the left menu. After this you will be proposed to fill fields &amp;quot;Name&amp;quot; (mandatory) and &amp;quot;Application&amp;#039;s site&amp;quot;(optional).&lt;br /&gt;
&lt;br /&gt;
All your apps can be seen in section Reseller -&amp;gt; Applications in a table with the following fields:&lt;br /&gt;
* Name - app&amp;#039;s name that you specified when created the app&lt;br /&gt;
* APP_ID - app&amp;#039;s identifier (it is used in API requests)&lt;br /&gt;
* Edit - edit the app (you can change app&amp;#039;s name and site)&lt;br /&gt;
* OAuth - edit settings OAuth of this app&lt;br /&gt;
* API - open API-console of this app&lt;br /&gt;
&lt;br /&gt;
You will need OAuth settings only if you plan to identify users using OAuth2 technology (usually, it is necessary for sites&amp;#039; owners).&lt;br /&gt;
&lt;br /&gt;
API-console allows you to send requests on behalf of your application directly from site. The console is intended primarily to demonstrate the formation of requests to API (each request and response appear in text fields at the bottom of the page).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #a00;&amp;quot;&amp;gt;Attention!&amp;lt;/span&amp;gt; API-console is not an emulator of requests - all requests are real and are sent to production-servers. It means that when some paid option is activated from console money will be withdrawn from your balance. If you would like to work with API for resellers in a test mode, use [[Reseller_API_Sandbox|sandbox]].&lt;br /&gt;
&lt;br /&gt;
==Options activation reminder==&lt;br /&gt;
App engine can notice user about missing options. Notification method depends on API you choose:&lt;br /&gt;
* more about Engine API  [[Engine_API#example-missing-option-on-start|here]]&lt;br /&gt;
* more about HTTP API [[Engine_HTTP_API#stop-notifications|here]]&lt;br /&gt;
&lt;br /&gt;
==Activation of options for users==&lt;br /&gt;
To activate the option for user reseller has to call API method [[Reseller_API#activateService|activateService]] with the following data:&lt;br /&gt;
* API key&lt;br /&gt;
* APP_ID (application identifier)&lt;br /&gt;
* user key&lt;br /&gt;
* option ID&lt;br /&gt;
* ID of period for which an option has to be activated&lt;br /&gt;
&lt;br /&gt;
If the request was successful a certain amount of money will be charged from reseller&amp;#039;s balance, and the option for the requested period will be activated.&lt;br /&gt;
&lt;br /&gt;
If a specified option is already activated at this moment, then validation period of the option will continue for a stated period.&lt;br /&gt;
&lt;br /&gt;
API Key and APP_ID you can find out on the site in section [https://accounts.acestream.net/reseller Reseller].&lt;br /&gt;
&lt;br /&gt;
Identifiers of options and periods are described [[Reseller_API|here]]&lt;br /&gt;
&lt;br /&gt;
As it is seen from the description, to activate options reseller has to know user key. This key can be obtained in two ways: either via OAuth2 protocol, or to create a new key using API for resellers. The first method is more suitable for sites&amp;#039; owners. The second - for apps&amp;#039; developers. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
==Work scheme for sites&amp;#039; owners==&lt;br /&gt;
Sites&amp;#039; owners can get user key using OAuth2 protocol. To do this they have to do the following steps:&lt;br /&gt;
* reseller places on his site a button &amp;quot;Log in with Ace Stream&amp;quot;&lt;br /&gt;
* after pressing this button everything goes according to OAuth2:&lt;br /&gt;
** user is redirected to Ace Stream site&lt;br /&gt;
** if he&amp;#039;s not registered, he registers&lt;br /&gt;
** if he&amp;#039;s registered, but not logged in, he logs in&lt;br /&gt;
** if user logs in to reseller&amp;#039;s site via Ace Stream OAuth2 at the first time, he agrees to provide some of his personal data to reseller&amp;#039;s site (email and user key)&lt;br /&gt;
** user goes back to reseller&amp;#039;s site&lt;br /&gt;
** reseller&amp;#039;s site receives email and user key according to OAuth2&lt;br /&gt;
* now user is authorized at reseller&amp;#039;s site, and the reseller has user key, by which he can activate the option for user&lt;br /&gt;
&lt;br /&gt;
More detailed information about OAuth2 is [[OAuth2/en|here]].&lt;br /&gt;
&lt;br /&gt;
==Work scheme for apps&amp;#039; developers==&lt;br /&gt;
Apps&amp;#039; developers usually have access to [[Engine_Service_API/en|Engine service API]]. It gives them ability to upload user keys directly to Ace Stream Engine and activate options without direct user intervention.&lt;br /&gt;
&lt;br /&gt;
We propose the following work scheme:&lt;br /&gt;
* app checks  whether the required option is activated ([[Engine_Service_API#check_user_service|check_user_service]])&lt;br /&gt;
* if the option is not activated, app creates a new user key ([[Reseller_API#createUserKey|createUserKey]]) and uploads it to Ace Stream Engine ([[Engine_Service_API#load_extension|load_extension]])&lt;br /&gt;
* app activates a required option for a new user key ([[Reseller_API#activateService|activateService]])&lt;br /&gt;
&lt;br /&gt;
Described scheme assumes that reseller&amp;#039;s app and Ace Stream Engine are run on the same device.&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Download&amp;diff=686</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Download&amp;diff=686"/>
		<updated>2019-01-30T10:47:48Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you can find the links the latest versions of Ace Stream software for all available platforms.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* stable version: http://dl.acestream.org/products/acestream-full/win/latest&lt;br /&gt;
* beta version: http://dl.acestream.org/products/acestream3-beta/win/latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android/latest&lt;br /&gt;
&lt;br /&gt;
==Android TV==&lt;br /&gt;
* Google Play: https://play.google.com/store/apps/details?id=org.acestream.media.atv&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stable version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beta version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** ARM: http://dl.acestream.org/products/acestream-engine-beta/android-tv/armv7/latest&lt;br /&gt;
** x86: http://dl.acestream.org/products/acestream-engine-beta/android-tv/x86/latest&lt;br /&gt;
** universal (contains both ARM and x86): http://dl.acestream.org/products/acestream-engine-beta/android-tv/latest&lt;br /&gt;
&lt;br /&gt;
==Android Beta Test==&lt;br /&gt;
If you want to became an Android beta-tester, please visit one of these links:&lt;br /&gt;
&lt;br /&gt;
* Ace Stream Media: https://play.google.com/apps/testing/org.acestream.media&lt;br /&gt;
* Ace Stream Media for Android TV: https://play.google.com/apps/testing/org.acestream.media.atv&lt;br /&gt;
* Ace Stream Engine: https://play.google.com/apps/testing/org.acestream.core&lt;br /&gt;
* Ace Stream Engine for Android TV: https://play.google.com/apps/testing/org.acestream.core.atv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 18&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* beta version, amd64: http://acestream.org/downloads/linux-beta/acestream_3.1.35_ubuntu_18.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 16&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 14&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_14.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ubuntu 12&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_12.04_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debian 8&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* amd64: http://dl.acestream.org/linux/acestream_3.1.16_debian_8.7_x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;More info&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can find more info about linux builds and packages prepared by community on our forum: http://forum.torrentstream.org/index.php?topic=12086.0&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=685</id>
		<title>Configuration Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=685"/>
		<updated>2018-12-11T13:15:22Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two configuration files:&lt;br /&gt;
* main (acestream.conf)&lt;br /&gt;
* user-defined (acestream_user.conf)&lt;br /&gt;
&lt;br /&gt;
Engine reads configuration files on startup. First the main file is read, then engine reads user-defined file if it exists.&lt;br /&gt;
Options in user-defined file overwrite the same options in the main file.&lt;br /&gt;
&lt;br /&gt;
The reason to have two configuration files is because the auto-update system on Windows prevents main file from being modified. You can change the main file but if will be restored to the original state during the next auto-update.&lt;br /&gt;
&lt;br /&gt;
On Windows files are located here:&lt;br /&gt;
* main: %APPDATA%/ACEStream/engine/acestream.conf&lt;br /&gt;
* user-defined: %APPDATA%/ACEStream/engine/acestream_user.conf&lt;br /&gt;
&lt;br /&gt;
Alternatively, custom user configuration file can be loaded from elsewhere, by using &amp;quot;@&amp;quot; prefix to the file path in the command-line:&lt;br /&gt;
* load custom &amp;quot;ace.conf&amp;quot; file from some directory: &amp;#039;&amp;#039;acestreamengine --client-console @/home/user/ace.conf&amp;#039;&amp;#039;&lt;br /&gt;
Works for both Linux and Windows versions.&lt;br /&gt;
&lt;br /&gt;
Engine does not check configuration files at runtime, there are only read on startup. So of you want to update configuration please follow these steps:&lt;br /&gt;
* stop engine&lt;br /&gt;
* update user-defined configuration file (create it if it doesn&amp;#039;t exist)&lt;br /&gt;
* start engine&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=679</id>
		<title>Configuration Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Configuration_Files&amp;diff=679"/>
		<updated>2018-07-03T14:50:34Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two configuration files:&lt;br /&gt;
* main (acestream.conf)&lt;br /&gt;
* user-defined (acestream_user.conf)&lt;br /&gt;
&lt;br /&gt;
Engine reads configuration files on startup. First the main file is read, then engine reads user-defined file if it exists.&lt;br /&gt;
Options in user-defined file overwrite the same options in the main file.&lt;br /&gt;
&lt;br /&gt;
The reason to have two configuration files is because the auto-update system on Windows prevents main file from being modified. You can change the main file but if will be restored to the original state during the next auto-update.&lt;br /&gt;
&lt;br /&gt;
On Windows files are located here:&lt;br /&gt;
* main: %APPDATA%/ACEStream/engine/acestream.conf&lt;br /&gt;
* user-defined: %APPDATA%/ACEStream/engine/acestream_user.conf&lt;br /&gt;
&lt;br /&gt;
Engine does not check configuration files at runtime, there are only read on startup. So of you want to update configuration please follow these steps:&lt;br /&gt;
* stop engine&lt;br /&gt;
* update user-defined configuration file (create it if it doesn&amp;#039;t exist)&lt;br /&gt;
* start engine&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Search_API&amp;diff=678</id>
		<title>Search API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Search_API&amp;diff=678"/>
		<updated>2018-05-23T13:06:32Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* search */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Search API allows to search content in the Ace Stream P2P Network.&lt;br /&gt;
&lt;br /&gt;
It can be accessed by two ways:&lt;br /&gt;
*using Ace Stream Engine endpoint&lt;br /&gt;
*using server-side endpoint&lt;br /&gt;
&lt;br /&gt;
There are several differences between these two methods.&lt;br /&gt;
&lt;br /&gt;
Engine search API:&lt;br /&gt;
*is free to use&lt;br /&gt;
*has a limit of total requests coming from certain engine instance per day&lt;br /&gt;
*has a limit on requests frequency&lt;br /&gt;
*is suitable for making search requests from installed applications&lt;br /&gt;
&lt;br /&gt;
Server-side search API:&lt;br /&gt;
*is paid&lt;br /&gt;
Server-side search API provides 1000 search queries for free. If you need more, you may sign up for billing in the the admin-panel. Additional requests cost $1 per 10000 queries.&lt;br /&gt;
*has no limits&lt;br /&gt;
*allows to get search database snapshot&lt;br /&gt;
*is suitable for making server-to-server API calls&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span style=&amp;quot;color: #900;&amp;quot;&amp;gt;Beta testing period&amp;lt;/span&amp;gt;===&lt;br /&gt;
Server-side Search API is currently in beta testing and &amp;#039;&amp;#039;&amp;#039;is free to use&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can get personal API keys in the admin-panel at www.acestream.org after the end of the beta testing period of Ace Stream Search API.&lt;br /&gt;
&lt;br /&gt;
==Engine Search API==&lt;br /&gt;
Endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:6878/server/api&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ace Stream Engine must be running on the localhost.&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;method&amp;#039;&amp;#039;&amp;#039; - API method name&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;token&amp;#039;&amp;#039;&amp;#039; - Engine API access token (see below)&lt;br /&gt;
&lt;br /&gt;
Each request must contain Engine API access token which must be retrieved by this request:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:6878/server/api?method=get_api_access_token&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Token is sent in the response:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;result&amp;quot;: {&lt;br /&gt;
        &amp;quot;token&amp;quot;: &amp;quot;9d324ef909c50629ca3d23faddaa7358236b0bbe62dfd049416dc4d570b60b57&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Method &amp;quot;get_api_access_token&amp;quot; does not allow cross-domain requests so it cannot be called from regular javascript on the web page.&lt;br /&gt;
&lt;br /&gt;
==Server-side Search API==&lt;br /&gt;
Endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://search.acestream.net&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mandatory parameters:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;method&amp;#039;&amp;#039;&amp;#039; - API method name&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;api_version&amp;#039;&amp;#039;&amp;#039; - API version (currently it must be set to 1.0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;api_key&amp;#039;&amp;#039;&amp;#039; - API key (your personal key)&lt;br /&gt;
&lt;br /&gt;
To obtain you personal API key you must register and request it.&lt;br /&gt;
&lt;br /&gt;
Currently server-side API works in beta-testing mode and is available with API key &amp;quot;test_api_key&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Response format==&lt;br /&gt;
All responses are in JSON format.&lt;br /&gt;
&lt;br /&gt;
General response format is:&lt;br /&gt;
*success&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
  &amp;quot;result&amp;quot;: &amp;lt;object&amp;gt;,&lt;br /&gt;
  &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*error&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
  &amp;quot;result&amp;quot;: null,&lt;br /&gt;
  &amp;quot;error&amp;quot;: &amp;quot;error description&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API methods==&lt;br /&gt;
===search===&lt;br /&gt;
Makes a search request&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;query&amp;#039;&amp;#039;&amp;#039; (string) - search query&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039; (string) - filter by category (list of categories [[Channel Category|here]])&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;page&amp;#039;&amp;#039;&amp;#039; (integer) - page number (starting from 0, default is 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;page_size&amp;#039;&amp;#039;&amp;#039; (integer) - page size (default is 10, maximum value is 200)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;group_by_channels&amp;#039;&amp;#039;&amp;#039; (boolean, 0 or 1) - group output results by channel name (see examples)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;show_epg&amp;#039;&amp;#039;&amp;#039; (boolean, 0 or 1) - include EPG in the response (this works only when group_by_channels=1)&lt;br /&gt;
&lt;br /&gt;
Response fields:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;total&amp;#039;&amp;#039;&amp;#039; (integer) - total number of found items&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;results&amp;#039;&amp;#039;&amp;#039; (array of objects) - array of results (each result is an object, see below)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;time&amp;#039;&amp;#039;&amp;#039; (float) - query execution time&lt;br /&gt;
&lt;br /&gt;
Single item fields:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;infohash&amp;#039;&amp;#039;&amp;#039; (string) - channel infohash (unique identifier); it should be used to start channel playback&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; (string) - channel name&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;bitrate&amp;#039;&amp;#039;&amp;#039; (integer) - channel estimated bitrate (bytes per second)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;categories&amp;#039;&amp;#039;&amp;#039; (array of strings) - channel categories&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;availability_updated_at&amp;#039;&amp;#039;&amp;#039; (integer) - unix timestamp when channel availability was last updated at&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;availability&amp;#039;&amp;#039;&amp;#039; (float) - channel availability (number between 0-1)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;status&amp;#039;&amp;#039;&amp;#039; (integer) - channel status based on its availability; 2 means &amp;quot;green&amp;quot; status - channel is available; 1 means &amp;quot;yellow&amp;quot; status - there is no guaranty that channel is working. Can be used in query as additional filter.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;in_playlist&amp;#039;&amp;#039;&amp;#039; (boolean) - true if the channel is included in user&amp;#039;s playlist (available only on engine endpoint)&lt;br /&gt;
&lt;br /&gt;
===all===&lt;br /&gt;
This method retrieves search database snapshot.&lt;br /&gt;
&lt;br /&gt;
Data is returned &amp;quot;as-is&amp;quot;: there is no filtering, sorting or pagination.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;IMPORTANT&amp;#039;&amp;#039;&amp;#039;: this method is available on server-side endpoint only.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://search.acestream.net/all?api_version=1.0&amp;amp;api_key=test_api_key&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
===Simple output===&lt;br /&gt;
*engine endpoint&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:6878/server/api?method=search &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;token=9d324ef909c50629ca3d23faddaa7358236b0bbe62dfd049416dc4d570b60b57 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;query=discovery&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*server-side endpoint&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://search.acestream.net/?method=search &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;api_version=1.0 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;api_key=test_api_key &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;query=discovery&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;result&amp;quot;: {&lt;br /&gt;
        &amp;quot;total&amp;quot;: 28,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;Discovery HD&amp;quot;,&lt;br /&gt;
                &amp;quot;bitrate&amp;quot;: 506347,&lt;br /&gt;
                &amp;quot;availability_updated_at&amp;quot;: 1494970802,&lt;br /&gt;
                &amp;quot;infohash&amp;quot;: &amp;quot;09f1511aa2a596162bfb4f4d1146c2be545733f4&amp;quot;,&lt;br /&gt;
                &amp;quot;availability&amp;quot;: 1,&lt;br /&gt;
                &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                    &amp;quot;educational&amp;quot;&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;Discovery HD Showcase&amp;quot;,&lt;br /&gt;
                &amp;quot;bitrate&amp;quot;: 504510,&lt;br /&gt;
                &amp;quot;availability_updated_at&amp;quot;: 1494970802,&lt;br /&gt;
                &amp;quot;infohash&amp;quot;: &amp;quot;948e1b51363cc07ec4ac20ef10dc099f8c7e20b8&amp;quot;,&lt;br /&gt;
                &amp;quot;availability&amp;quot;: 1,&lt;br /&gt;
                &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                    &amp;quot;educational&amp;quot;&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
	    ... # some results are omitted&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;time&amp;quot;: &amp;quot;0.0237&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Grouped by channel name results===&lt;br /&gt;
*engine endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:6878/server/api?method=search &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;token=9d324ef909c50629ca3d23faddaa7358236b0bbe62dfd049416dc4d570b60b57 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;query=discovery &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;group_by_channels=1 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;show_epg=1&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
*server-side endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://search.acestream.net/?method=search &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;api_version=1.0 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;api_key=test_api_key &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;query=discovery &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;group_by_channels=1 &amp;amp;crarr;&lt;br /&gt;
    &amp;amp;show_epg=1&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;result&amp;quot;: {&lt;br /&gt;
        &amp;quot;total&amp;quot;: 11,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;items&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;status&amp;quot;: 2,&lt;br /&gt;
                        &amp;quot;name&amp;quot;: &amp;quot;Discovery HD&amp;quot;,&lt;br /&gt;
                        &amp;quot;bitrate&amp;quot;: 506347,&lt;br /&gt;
                        &amp;quot;channel_id&amp;quot;: 845,&lt;br /&gt;
                        &amp;quot;availability_updated_at&amp;quot;: 1494971282,&lt;br /&gt;
                        &amp;quot;infohash&amp;quot;: &amp;quot;09f1511aa2a596162bfb4f4d1146c2be545733f4&amp;quot;,&lt;br /&gt;
                        &amp;quot;availability&amp;quot;: 1,&lt;br /&gt;
                        &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                            &amp;quot;educational&amp;quot;&lt;br /&gt;
                        ]&lt;br /&gt;
                    }&lt;br /&gt;
                ],&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;Discovery HD&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;items&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;status&amp;quot;: 2,&lt;br /&gt;
                        &amp;quot;name&amp;quot;: &amp;quot;Discovery Channel&amp;quot;,&lt;br /&gt;
                        &amp;quot;bitrate&amp;quot;: 215035,&lt;br /&gt;
                        &amp;quot;channel_id&amp;quot;: 845,&lt;br /&gt;
                        &amp;quot;availability_updated_at&amp;quot;: 1494971282,&lt;br /&gt;
                        &amp;quot;infohash&amp;quot;: &amp;quot;6651feec9de120abf362c380841150cdc2742df2&amp;quot;,&lt;br /&gt;
                        &amp;quot;availability&amp;quot;: 0.99282296650718,&lt;br /&gt;
                        &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                            &amp;quot;educational&amp;quot;&lt;br /&gt;
                        ]&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;status&amp;quot;: 1,&lt;br /&gt;
                        &amp;quot;name&amp;quot;: &amp;quot;Discovery Channel&amp;quot;,&lt;br /&gt;
                        &amp;quot;infohash&amp;quot;: &amp;quot;e97bbddc4febc01f649c30013fd221e9adf43622&amp;quot;,&lt;br /&gt;
                        &amp;quot;channel_id&amp;quot;: 845,&lt;br /&gt;
                        &amp;quot;availability_updated_at&amp;quot;: 1494964321,&lt;br /&gt;
                        &amp;quot;availability&amp;quot;: 1,&lt;br /&gt;
                        &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                            &amp;quot;tv&amp;quot;&lt;br /&gt;
                        ]&lt;br /&gt;
                    }&lt;br /&gt;
                ],&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;Discovery Channel&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;items&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;status&amp;quot;: 2,&lt;br /&gt;
                        &amp;quot;in_playlist&amp;quot;: false,&lt;br /&gt;
                        &amp;quot;name&amp;quot;: &amp;quot;Discovery Science&amp;quot;,&lt;br /&gt;
                        &amp;quot;bitrate&amp;quot;: 350000,&lt;br /&gt;
                        &amp;quot;channel_id&amp;quot;: 851,&lt;br /&gt;
                        &amp;quot;availability_updated_at&amp;quot;: 1494971282,&lt;br /&gt;
                        &amp;quot;infohash&amp;quot;: &amp;quot;dacdcf48e9238d23d7bd687c8e00cac0d16dc177&amp;quot;,&lt;br /&gt;
                        &amp;quot;availability&amp;quot;: 1,&lt;br /&gt;
                        &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                            &amp;quot;educational&amp;quot;&lt;br /&gt;
                        ]&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;status&amp;quot;: 2,&lt;br /&gt;
                        &amp;quot;name&amp;quot;: &amp;quot;Discovery Science&amp;quot;,&lt;br /&gt;
                        &amp;quot;bitrate&amp;quot;: 215035,&lt;br /&gt;
                        &amp;quot;channel_id&amp;quot;: 851,&lt;br /&gt;
                        &amp;quot;availability_updated_at&amp;quot;: 1494971282,&lt;br /&gt;
                        &amp;quot;infohash&amp;quot;: &amp;quot;c2c2c2bfda8440ae0781df0e06ccf13dda529737&amp;quot;,&lt;br /&gt;
                        &amp;quot;availability&amp;quot;: 0.98648648648649,&lt;br /&gt;
                        &amp;quot;categories&amp;quot;: [&lt;br /&gt;
                            &amp;quot;educational&amp;quot;&lt;br /&gt;
                        ]&lt;br /&gt;
                    }&lt;br /&gt;
                ],&lt;br /&gt;
                &amp;quot;icon&amp;quot;: &amp;quot;http://c1.torrentstream.info/epg/icons/3349.png&amp;quot;,&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;Discovery Science&amp;quot;,&lt;br /&gt;
                &amp;quot;epg&amp;quot;: {&lt;br /&gt;
                    &amp;quot;start&amp;quot;: &amp;quot;1494970200&amp;quot;,&lt;br /&gt;
                    &amp;quot;stop&amp;quot;: &amp;quot;1494971700&amp;quot;,&lt;br /&gt;
                    &amp;quot;name&amp;quot;: &amp;quot;Как это сделано? (20-я серия) (12+)&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            ... # some results are omitted&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;time&amp;quot;: &amp;quot;0.0421&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Engine_HTTP_API&amp;diff=662</id>
		<title>Engine HTTP API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Engine_HTTP_API&amp;diff=662"/>
		<updated>2018-04-19T19:55:00Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* API methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
Since version 3.1 we implemented API to control app engine via HTTP. To do that, you should send appropriate HTTP GET query to the app engine (default IP:port is 127.0.0.1:6878)&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
You can&amp;#039;t use HTTP API with AJAX queries from secured (https) pages, because HTTP API is not secured, and such behaviour (http query from https page) will be blocked by browser.&lt;br /&gt;
So you must have and serve a dedicated unsecured page on your secured site to work with engine HTTP API.&lt;br /&gt;
&lt;br /&gt;
==Checking local engine availability==&lt;br /&gt;
Send JSON query to &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/webui/api/service?method=get_version&amp;amp;format=jsonp&amp;lt;/nowiki&amp;gt;. If app engine is running, then it return version string in JSON format.&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/webui/api/service?method=get_version&amp;amp;format=jsonp&amp;amp;callback=mycallback&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
mycallback({&amp;quot;result&amp;quot;: {&amp;quot;code&amp;quot;: 3002300, &amp;quot;version&amp;quot;: &amp;quot;3.1.0-rc2&amp;quot;}, &amp;quot;error&amp;quot;: null});&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fields description:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;version&amp;#039;&amp;#039;&amp;#039; - engine version, string (&amp;quot;3.0.12&amp;quot;)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;code&amp;#039;&amp;#039;&amp;#039; - engine version, integer (30012)&lt;br /&gt;
&lt;br /&gt;
Simple page with check button (JSONP-queries served by jQuery):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Ace Stream - check engine version&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-1.11.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
        &amp;lt;script&amp;gt;&lt;br /&gt;
        function checkEngineVersion() {&lt;br /&gt;
            $.ajax({&lt;br /&gt;
                    method: &amp;quot;GET&amp;quot;,&lt;br /&gt;
                    url: &amp;quot;http://127.0.0.1:6878/webui/api/service&amp;quot;,&lt;br /&gt;
                    dataType: &amp;quot;jsonp&amp;quot;,&lt;br /&gt;
                    data: {&lt;br /&gt;
                        method: &amp;quot;get_version&amp;quot;,&lt;br /&gt;
                        format: &amp;quot;jsonp&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    success: function(response) {&lt;br /&gt;
                        if(response.error) {&lt;br /&gt;
                            console.log(&amp;quot;request failed: &amp;quot; + response.error);&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                            console.log(&amp;quot;version: &amp;quot; + response.result.version);&lt;br /&gt;
                            console.log(&amp;quot;version_code: &amp;quot; + response.result.code);&lt;br /&gt;
                        }&lt;br /&gt;
                    },&lt;br /&gt;
                    error: function(request, error_string, exception) {&lt;br /&gt;
                        console.log(&amp;quot;request failed: &amp;quot; + error_string);&lt;br /&gt;
                    }&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
        &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;button onclick=&amp;quot;checkEngineVersion();&amp;quot;&amp;gt;Check engine version&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using HTTP API on Android==&lt;br /&gt;
HTTP API is a preferred way to integrate engine with other applications on Android.&lt;br /&gt;
&lt;br /&gt;
Before sending any requests to engine you should ensure that it is running. This should be done by binding to engine service as described&lt;br /&gt;
[[Using_Ace_Stream_as_service_on_Android|here]].&lt;br /&gt;
&lt;br /&gt;
==API methods==&lt;br /&gt;
Terms: &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;lt;engine_address&amp;gt;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt; - app engine IP address, &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;lt;engine_port&amp;gt;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt; - app engine HTTP port.&lt;br /&gt;
Common params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;id&amp;#039;&amp;#039;&amp;#039; - content id (conditional param)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;infohash&amp;#039;&amp;#039;&amp;#039; - transport file infohash (.acelive or .torrent file) (conditional param)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;url&amp;#039;&amp;#039;&amp;#039; - link to transport file (conditional param). Can be used with URL encoded &amp;quot;file://path/&amp;quot; to access local file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; - [[#Player ID|player id]] (optional, formerly known as &amp;#039;&amp;#039;&amp;#039;sid&amp;#039;&amp;#039;&amp;#039;, since ver. 3.1.29 is obsolete and replaced by &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
In the query to the app engine at least one of params &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;infohash&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;url&amp;lt;/tt&amp;gt; must be present.&lt;br /&gt;
&lt;br /&gt;
===How to get HLS stream===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/ace/manifest.m3u8&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return HLS playlist. If any error occured, then engine return HTTP error code 4хх or 5хх with brief error description.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039;&amp;#039; - transcode all audio tracks to AAC, (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039;&amp;#039; - do not transcode MP3 track(s), (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039;&amp;#039; - transcode only AC3 track(s), (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039;&amp;#039; - three char code of preffered language, full list - http://xml.coverpages.org/nisoLang3-1994.html&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/manifest.m3u8?id=dd1e67078381739d14beca697356ab76d49d1a2d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to get HTTP stream===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/ace/getstream&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return stream data as http progressive download. If any error occured, then engine return HTTP error code 4хх or 5хх with brief error description.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to play HLS broadcast===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/hls/manifest.m3u8&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can play via app engine any HLS broadcast, just pass link to the HLS playlist to the engine (&amp;lt;tt&amp;gt;manifest_url&amp;lt;/tt&amp;gt; param).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;manifest_url&amp;#039;&amp;#039;&amp;#039; - HLS manifest URL (link to the HLS playlist)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/hls/manifest.m3u8?manifest_url=http%3A%2F%2Fwin.cdn.bonus-tv.ru%2FTVB7%2Fntv%2Fplaylist.m3u8&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple HTML code for playing HLS broadcast in VideoJS player:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;HLS example&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;link href=&amp;quot;http://vjs.zencdn.net/4.12/video-js.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;http://vjs.zencdn.net/4.12/video.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://github.com/videojs/videojs-contrib-media-sources/releases/download/v0.1.0/videojs-media-sources.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://github.com/videojs/videojs-contrib-hls/releases/download/v0.11.2/videojs.hls.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;video id=&amp;quot;myvideo&amp;quot; class=&amp;quot;video-js vjs-default-skin&amp;quot; controls preload=&amp;quot;auto&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;390&amp;quot; data-setup=&amp;#039;{}&amp;#039;&amp;gt;&lt;br /&gt;
    &amp;lt;source&lt;br /&gt;
      src=&amp;quot;http://127.0.0.1:6878/hls/manifest.m3u8?manifest_url=http%3A%2F%2Fwin.cdn.bonus-tv.ru%2FTVB7%2Fntv%2Fplaylist.m3u8&amp;quot;&lt;br /&gt;
      type=&amp;quot;application/x-mpegurl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional features==&lt;br /&gt;
Engine can provide some additional features to control playback session, such as extra commands, session statistics and events polling.&lt;br /&gt;
To access such features, you must add this param to playback session options:&lt;br /&gt;
 &amp;lt;tt&amp;gt;format=json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return some links in JSON format: &lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;playback_url&amp;quot;: playback_url,&lt;br /&gt;
    &amp;quot;stat_url: stat_url,&lt;br /&gt;
    &amp;quot;command_url&amp;quot;: command_url,&lt;br /&gt;
    &amp;quot;event_url&amp;quot;: event_url,&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;playback_url&lt;br /&gt;
:media stream link&lt;br /&gt;
;stat_url&lt;br /&gt;
:session statistics link&lt;br /&gt;
;command_url&lt;br /&gt;
:engine commands link&lt;br /&gt;
;event_url&lt;br /&gt;
:session events link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; will be present in engine response only if query contains param &amp;lt;tt&amp;gt;use_api_events&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Via &amp;lt;tt&amp;gt;playback_url&amp;lt;/tt&amp;gt; app engine will serve requested media stream. This link should be passed to media player.&lt;br /&gt;
&lt;br /&gt;
===Getting some stats===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;stat_url&amp;lt;/tt&amp;gt; link app engine should return JSON-formatted structure:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;status&amp;#039;&amp;#039;&amp;#039; - playback session status:&lt;br /&gt;
**&amp;#039;&amp;#039;prebuf&amp;#039;&amp;#039; - prebuffering&lt;br /&gt;
**&amp;#039;&amp;#039;dl&amp;#039;&amp;#039; - playback&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;peers&amp;#039;&amp;#039;&amp;#039; - number of connected peers&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;speed_down&amp;#039;&amp;#039;&amp;#039; - download speed (Kbytes per sec)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;speed_up&amp;#039;&amp;#039;&amp;#039; - upload (Kbytes per sec)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;downloaded&amp;#039;&amp;#039;&amp;#039; - total downloaded (bytes)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;uploaded&amp;#039;&amp;#039;&amp;#039; - total uploaded (bytes)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;total_progress&amp;#039;&amp;#039;&amp;#039; - download ratio in percentage to media size, valid for VOD only, for live always 0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/stat/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;response&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;dl&amp;quot;,&lt;br /&gt;
    &amp;quot;uploaded&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;speed_down&amp;quot;: 516,&lt;br /&gt;
    &amp;quot;speed_up&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;downloaded&amp;quot;: 14155776,&lt;br /&gt;
    &amp;quot;peers&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;total_progress&amp;quot;: 0&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
===Sending extra commands to the app engine===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;command_url&amp;lt;/tt&amp;gt; link you can control playback session.&lt;br /&gt;
&lt;br /&gt;
Command name passed to app engine via &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; param.&lt;br /&gt;
For the moment you can use only one command: &amp;lt;tt&amp;gt;stop&amp;lt;/tt&amp;gt; - stop playback session.&lt;br /&gt;
Its recommended to send &amp;quot;stop&amp;quot; command to the app engine when user stops playback in the media player UI/controls.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/cmd/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb?method=stop&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;ok&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
===Getting events from the app engine===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; link you can get events from the app engine, using &amp;quot;long polling&amp;quot; method.&lt;br /&gt;
&lt;br /&gt;
As response app engine should return data in the &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; field (JSON format):&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; - event name&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;params&amp;#039;&amp;#039;&amp;#039; - object with actual param &lt;br /&gt;
&lt;br /&gt;
In the versions prior to 3003600 &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; field contains &amp;quot;JSON as string&amp;quot; data.&lt;br /&gt;
В версиях до 3003600 в поле &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; передается не сам JSON-объект, а его строковое представление.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/event/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb&lt;br /&gt;
&lt;br /&gt;
Response (engine version &amp;gt;= 3003600):&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;got_codec_info&amp;quot;,&lt;br /&gt;
        &amp;quot;params: {&lt;br /&gt;
            &amp;quot;audio_codec_id&amp;quot;: 86018,&lt;br /&gt;
            &amp;quot;video_codec_id&amp;quot;: 28&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Response (engine version &amp;lt; 3003600):&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;{\&amp;quot;name\&amp;quot;: \&amp;quot;got_codec_info\&amp;quot;}, \&amp;quot;params\&amp;quot;: {\&amp;quot;audio_codec_id\&amp;quot;: 86018, \&amp;quot;video_codec_id\&amp;quot;: 28}&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When current playback session has stopped, &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; response looks like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;response&amp;quot;: null,&lt;br /&gt;
    &amp;quot;error&amp;quot;: &amp;quot;download stopped&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And player should stop sending queries to &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Events list====&lt;br /&gt;
;missing_content&lt;br /&gt;
:quered fragment cannot be found (HLS playback). Player should fast-forward to keep up with &amp;quot;live&amp;quot; stream.&lt;br /&gt;
;got_codec_info&lt;br /&gt;
:stream codec data is ready.&lt;br /&gt;
:;params:&lt;br /&gt;
::video_codec_id - video codec id&lt;br /&gt;
::audio_codec_id - audio codec id&lt;br /&gt;
:audio/video IDs corresponded to ffmpeg libavcodec, [https://ffmpeg.org/doxygen/trunk/avcodec_8h_source.html full list here]&lt;br /&gt;
:this event can be useful, when player do not support such codec(s).&lt;br /&gt;
;segmenter_failed&lt;br /&gt;
:built-in HLS-segmenter failed to process stream. Player should stop the playback.&lt;br /&gt;
;download_stopped&lt;br /&gt;
:engine has stopped playback&lt;br /&gt;
:;params&lt;br /&gt;
::&amp;lt;tt&amp;gt;reason&amp;lt;/tt&amp;gt; - stop reason, possible values:&lt;br /&gt;
:::&amp;lt;tt&amp;gt;missing_option&amp;lt;/tt&amp;gt; - content not free, &amp;quot;paid option&amp;quot; is missing.&lt;br /&gt;
::&amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt; - missing option ID (for &amp;lt;tt&amp;gt;reason=missing_option&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====Javascript example====&lt;br /&gt;
Using [https://jquery.com jQuery] library.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;function startEventListener() {&lt;br /&gt;
    $.ajax({&lt;br /&gt;
        url: url,&lt;br /&gt;
        method: &amp;quot;GET&amp;quot;,&lt;br /&gt;
        dataType: &amp;quot;json&amp;quot;,&lt;br /&gt;
        cache: false,&lt;br /&gt;
        success: function(response) {&lt;br /&gt;
            if(response.error) {&lt;br /&gt;
                console.log(&amp;quot;event listener: got error: &amp;quot; + response.error);&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                var event = response.response;&lt;br /&gt;
                if(typeof event !== &amp;quot;object&amp;quot;) {&lt;br /&gt;
                    event = JSON.parse(event);&lt;br /&gt;
                }&lt;br /&gt;
                console.log(&amp;quot;event listener: got event: name=&amp;quot; + event.name + &amp;quot; params=&amp;quot; + JSON.stringify(params));&lt;br /&gt;
                &lt;br /&gt;
                // handle event here&lt;br /&gt;
                // ...&lt;br /&gt;
                &lt;br /&gt;
                // listen to the next event (long polling)&lt;br /&gt;
                startEventListener(url);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        error: function(xhr, status, error) {&lt;br /&gt;
            console.log(&amp;quot;event listener error: status=&amp;quot; + status + &amp;quot; error=&amp;quot; + error);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// init event listener&lt;br /&gt;
startEventListener(&amp;quot;http://127.0.0.1:6878/ace/event/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;div id=&amp;quot;stop-notifications&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;Notifications about missing paid option==&lt;br /&gt;
In some cases user must have a permit (the paid option) to playback some content. If such permit not granted, then app engine will stop the playback and send a notification to user (by showing some predefined text in the default browser).&lt;br /&gt;
This behaviour can be overrided, and then client API will handle user notifications by itself. To do this, engine playback session should be started with &amp;lt;nowiki&amp;gt;use_stop_notifications=1&amp;lt;/nowiki&amp;gt; param.&lt;br /&gt;
In this case at playback stop app engine will not send notification to user, but send a event to client.&lt;br /&gt;
&lt;br /&gt;
If some permits is not granted, then engine playback can be stopped: &lt;br /&gt;
* at the playback start:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Start playback:&lt;br /&gt;
http://127.0.0.1:6878/ace/manifest.m3u8?id=c894b23a65d64a0dae2076d2a01ec6bface83b01&amp;amp;format=json&amp;amp;use_stop_notifications=1&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra_data&amp;quot;: { &lt;br /&gt;
        &amp;quot;reason&amp;quot;: &amp;quot;missing_option&amp;quot;,&lt;br /&gt;
        &amp;quot;option&amp;quot;: &amp;quot;proxyServer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;response&amp;quot;: null,&lt;br /&gt;
    &amp;quot;error&amp;quot;: &amp;quot;You need to buy Proxy Server option to continue&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sometime after playback was started:&lt;br /&gt;
If playback was stopped after some time, then engine will send a &amp;lt;tt&amp;gt;download_stopped&amp;lt;/tt&amp;gt; event:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Start playback:&lt;br /&gt;
http://127.0.0.1:6878/ace/manifest.m3u8?id=c894b23a65d64a0dae2076d2a01ec6bface83b01&amp;amp;format=json&amp;amp;use_api_events=1&amp;amp;use_stop_notifications=1&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: { &lt;br /&gt;
        &amp;quot;stat_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/stat/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;command_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/cmd/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;event_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/event/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;playback_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/m/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6.m3u8&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Wait for event via event_url:&lt;br /&gt;
http://127.0.0.1:6878/ace/event/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&lt;br /&gt;
&lt;br /&gt;
At playback stop response should look like:&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;download_stopped&amp;quot;,&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
            &amp;quot;reason&amp;quot;: &amp;quot;missing_option&amp;quot;,&lt;br /&gt;
            &amp;quot;option&amp;quot;: &amp;quot;proxyServer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Player ID==&lt;br /&gt;
Player ID (&amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039;) - random string, used for player identification during engine connect session.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Player ID&amp;quot; purpose - app engine must distinguish one player session from another, as in the current engine implementation user cannot play the same live stream with two (or more) players simultaneously from one engine, and engine will stop to serve requests from one player, when got a new request from another.&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Engine_HTTP_API&amp;diff=661</id>
		<title>Engine HTTP API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Engine_HTTP_API&amp;diff=661"/>
		<updated>2018-04-19T19:53:53Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* API methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
Since version 3.1 we implemented API to control app engine via HTTP. To do that, you should send appropriate HTTP GET query to the app engine (default IP:port is 127.0.0.1:6878)&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
You can&amp;#039;t use HTTP API with AJAX queries from secured (https) pages, because HTTP API is not secured, and such behaviour (http query from https page) will be blocked by browser.&lt;br /&gt;
So you must have and serve a dedicated unsecured page on your secured site to work with engine HTTP API.&lt;br /&gt;
&lt;br /&gt;
==Checking local engine availability==&lt;br /&gt;
Send JSON query to &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/webui/api/service?method=get_version&amp;amp;format=jsonp&amp;lt;/nowiki&amp;gt;. If app engine is running, then it return version string in JSON format.&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/webui/api/service?method=get_version&amp;amp;format=jsonp&amp;amp;callback=mycallback&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
mycallback({&amp;quot;result&amp;quot;: {&amp;quot;code&amp;quot;: 3002300, &amp;quot;version&amp;quot;: &amp;quot;3.1.0-rc2&amp;quot;}, &amp;quot;error&amp;quot;: null});&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fields description:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;version&amp;#039;&amp;#039;&amp;#039; - engine version, string (&amp;quot;3.0.12&amp;quot;)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;code&amp;#039;&amp;#039;&amp;#039; - engine version, integer (30012)&lt;br /&gt;
&lt;br /&gt;
Simple page with check button (JSONP-queries served by jQuery):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Ace Stream - check engine version&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-1.11.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
        &amp;lt;script&amp;gt;&lt;br /&gt;
        function checkEngineVersion() {&lt;br /&gt;
            $.ajax({&lt;br /&gt;
                    method: &amp;quot;GET&amp;quot;,&lt;br /&gt;
                    url: &amp;quot;http://127.0.0.1:6878/webui/api/service&amp;quot;,&lt;br /&gt;
                    dataType: &amp;quot;jsonp&amp;quot;,&lt;br /&gt;
                    data: {&lt;br /&gt;
                        method: &amp;quot;get_version&amp;quot;,&lt;br /&gt;
                        format: &amp;quot;jsonp&amp;quot;&lt;br /&gt;
                    },&lt;br /&gt;
                    success: function(response) {&lt;br /&gt;
                        if(response.error) {&lt;br /&gt;
                            console.log(&amp;quot;request failed: &amp;quot; + response.error);&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                            console.log(&amp;quot;version: &amp;quot; + response.result.version);&lt;br /&gt;
                            console.log(&amp;quot;version_code: &amp;quot; + response.result.code);&lt;br /&gt;
                        }&lt;br /&gt;
                    },&lt;br /&gt;
                    error: function(request, error_string, exception) {&lt;br /&gt;
                        console.log(&amp;quot;request failed: &amp;quot; + error_string);&lt;br /&gt;
                    }&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
        &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;button onclick=&amp;quot;checkEngineVersion();&amp;quot;&amp;gt;Check engine version&amp;lt;/button&amp;gt;&lt;br /&gt;
    &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using HTTP API on Android==&lt;br /&gt;
HTTP API is a preferred way to integrate engine with other applications on Android.&lt;br /&gt;
&lt;br /&gt;
Before sending any requests to engine you should ensure that it is running. This should be done by binding to engine service as described&lt;br /&gt;
[[Using_Ace_Stream_as_service_on_Android|here]].&lt;br /&gt;
&lt;br /&gt;
==API methods==&lt;br /&gt;
Terms: &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;lt;engine_address&amp;gt;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt; - app engine IP address, &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;lt;engine_port&amp;gt;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt; - app engine HTTP port.&lt;br /&gt;
Common params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;id&amp;#039;&amp;#039;&amp;#039; - content id (conditional param)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;infohash&amp;#039;&amp;#039;&amp;#039; - transport file infohash (.acelive or .torrent file) (conditional param)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;url&amp;#039;&amp;#039;&amp;#039; - link to transport file (conditional param). Can be used with URL encoded &amp;quot;file://path/&amp;quot; to access local file.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; - [[#Player ID|player id]] (optional, formerly known as &amp;#039;&amp;#039;&amp;#039;sid&amp;#039;&amp;#039;&amp;#039;, beginning ver. 3.1.29 is obsolete and replaced by &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
In the query to the app engine at least one of params &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;infohash&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;url&amp;lt;/tt&amp;gt; must be present.&lt;br /&gt;
&lt;br /&gt;
===How to get HLS stream===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/ace/manifest.m3u8&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return HLS playlist. If any error occured, then engine return HTTP error code 4хх or 5хх with brief error description.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039;&amp;#039; - transcode all audio tracks to AAC, (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039;&amp;#039; - do not transcode MP3 track(s), (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039;&amp;#039; - transcode only AC3 track(s), (values: 0 or 1, default 0)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039;&amp;#039; - three char code of preffered language, full list - http://xml.coverpages.org/nisoLang3-1994.html&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/manifest.m3u8?id=dd1e67078381739d14beca697356ab76d49d1a2d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to get HTTP stream===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/ace/getstream&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return stream data as http progressive download. If any error occured, then engine return HTTP error code 4хх or 5хх with brief error description.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to play HLS broadcast===&lt;br /&gt;
Query: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_address&amp;gt;:&amp;lt;engine_port&amp;gt;/hls/manifest.m3u8&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can play via app engine any HLS broadcast, just pass link to the HLS playlist to the engine (&amp;lt;tt&amp;gt;manifest_url&amp;lt;/tt&amp;gt; param).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;manifest_url&amp;#039;&amp;#039;&amp;#039; - HLS manifest URL (link to the HLS playlist)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/hls/manifest.m3u8?manifest_url=http%3A%2F%2Fwin.cdn.bonus-tv.ru%2FTVB7%2Fntv%2Fplaylist.m3u8&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple HTML code for playing HLS broadcast in VideoJS player:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;HLS example&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;link href=&amp;quot;http://vjs.zencdn.net/4.12/video-js.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;http://vjs.zencdn.net/4.12/video.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://github.com/videojs/videojs-contrib-media-sources/releases/download/v0.1.0/videojs-media-sources.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://github.com/videojs/videojs-contrib-hls/releases/download/v0.11.2/videojs.hls.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;video id=&amp;quot;myvideo&amp;quot; class=&amp;quot;video-js vjs-default-skin&amp;quot; controls preload=&amp;quot;auto&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;390&amp;quot; data-setup=&amp;#039;{}&amp;#039;&amp;gt;&lt;br /&gt;
    &amp;lt;source&lt;br /&gt;
      src=&amp;quot;http://127.0.0.1:6878/hls/manifest.m3u8?manifest_url=http%3A%2F%2Fwin.cdn.bonus-tv.ru%2FTVB7%2Fntv%2Fplaylist.m3u8&amp;quot;&lt;br /&gt;
      type=&amp;quot;application/x-mpegurl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional features==&lt;br /&gt;
Engine can provide some additional features to control playback session, such as extra commands, session statistics and events polling.&lt;br /&gt;
To access such features, you must add this param to playback session options:&lt;br /&gt;
 &amp;lt;tt&amp;gt;format=json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As response app engine should return some links in JSON format: &lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;playback_url&amp;quot;: playback_url,&lt;br /&gt;
    &amp;quot;stat_url: stat_url,&lt;br /&gt;
    &amp;quot;command_url&amp;quot;: command_url,&lt;br /&gt;
    &amp;quot;event_url&amp;quot;: event_url,&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;playback_url&lt;br /&gt;
:media stream link&lt;br /&gt;
;stat_url&lt;br /&gt;
:session statistics link&lt;br /&gt;
;command_url&lt;br /&gt;
:engine commands link&lt;br /&gt;
;event_url&lt;br /&gt;
:session events link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; will be present in engine response only if query contains param &amp;lt;tt&amp;gt;use_api_events&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Via &amp;lt;tt&amp;gt;playback_url&amp;lt;/tt&amp;gt; app engine will serve requested media stream. This link should be passed to media player.&lt;br /&gt;
&lt;br /&gt;
===Getting some stats===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;stat_url&amp;lt;/tt&amp;gt; link app engine should return JSON-formatted structure:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;status&amp;#039;&amp;#039;&amp;#039; - playback session status:&lt;br /&gt;
**&amp;#039;&amp;#039;prebuf&amp;#039;&amp;#039; - prebuffering&lt;br /&gt;
**&amp;#039;&amp;#039;dl&amp;#039;&amp;#039; - playback&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;peers&amp;#039;&amp;#039;&amp;#039; - number of connected peers&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;speed_down&amp;#039;&amp;#039;&amp;#039; - download speed (Kbytes per sec)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;speed_up&amp;#039;&amp;#039;&amp;#039; - upload (Kbytes per sec)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;downloaded&amp;#039;&amp;#039;&amp;#039; - total downloaded (bytes)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;uploaded&amp;#039;&amp;#039;&amp;#039; - total uploaded (bytes)&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;total_progress&amp;#039;&amp;#039;&amp;#039; - download ratio in percentage to media size, valid for VOD only, for live always 0&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/stat/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;response&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;dl&amp;quot;,&lt;br /&gt;
    &amp;quot;uploaded&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;speed_down&amp;quot;: 516,&lt;br /&gt;
    &amp;quot;speed_up&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;downloaded&amp;quot;: 14155776,&lt;br /&gt;
    &amp;quot;peers&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;total_progress&amp;quot;: 0&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
===Sending extra commands to the app engine===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;command_url&amp;lt;/tt&amp;gt; link you can control playback session.&lt;br /&gt;
&lt;br /&gt;
Command name passed to app engine via &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; param.&lt;br /&gt;
For the moment you can use only one command: &amp;lt;tt&amp;gt;stop&amp;lt;/tt&amp;gt; - stop playback session.&lt;br /&gt;
Its recommended to send &amp;quot;stop&amp;quot; command to the app engine when user stops playback in the media player UI/controls.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/cmd/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb?method=stop&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;ok&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
===Getting events from the app engine===&lt;br /&gt;
Via &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; link you can get events from the app engine, using &amp;quot;long polling&amp;quot; method.&lt;br /&gt;
&lt;br /&gt;
As response app engine should return data in the &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; field (JSON format):&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; - event name&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;params&amp;#039;&amp;#039;&amp;#039; - object with actual param &lt;br /&gt;
&lt;br /&gt;
In the versions prior to 3003600 &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; field contains &amp;quot;JSON as string&amp;quot; data.&lt;br /&gt;
В версиях до 3003600 в поле &amp;lt;tt&amp;gt;response&amp;lt;/tt&amp;gt; передается не сам JSON-объект, а его строковое представление.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Query:&lt;br /&gt;
http://127.0.0.1:6878/ace/event/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb&lt;br /&gt;
&lt;br /&gt;
Response (engine version &amp;gt;= 3003600):&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;got_codec_info&amp;quot;,&lt;br /&gt;
        &amp;quot;params: {&lt;br /&gt;
            &amp;quot;audio_codec_id&amp;quot;: 86018,&lt;br /&gt;
            &amp;quot;video_codec_id&amp;quot;: 28&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Response (engine version &amp;lt; 3003600):&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: &amp;quot;{\&amp;quot;name\&amp;quot;: \&amp;quot;got_codec_info\&amp;quot;}, \&amp;quot;params\&amp;quot;: {\&amp;quot;audio_codec_id\&amp;quot;: 86018, \&amp;quot;video_codec_id\&amp;quot;: 28}&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When current playback session has stopped, &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt; response looks like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&lt;br /&gt;
    &amp;quot;response&amp;quot;: null,&lt;br /&gt;
    &amp;quot;error&amp;quot;: &amp;quot;download stopped&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And player should stop sending queries to &amp;lt;tt&amp;gt;event_url&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Events list====&lt;br /&gt;
;missing_content&lt;br /&gt;
:quered fragment cannot be found (HLS playback). Player should fast-forward to keep up with &amp;quot;live&amp;quot; stream.&lt;br /&gt;
;got_codec_info&lt;br /&gt;
:stream codec data is ready.&lt;br /&gt;
:;params:&lt;br /&gt;
::video_codec_id - video codec id&lt;br /&gt;
::audio_codec_id - audio codec id&lt;br /&gt;
:audio/video IDs corresponded to ffmpeg libavcodec, [https://ffmpeg.org/doxygen/trunk/avcodec_8h_source.html full list here]&lt;br /&gt;
:this event can be useful, when player do not support such codec(s).&lt;br /&gt;
;segmenter_failed&lt;br /&gt;
:built-in HLS-segmenter failed to process stream. Player should stop the playback.&lt;br /&gt;
;download_stopped&lt;br /&gt;
:engine has stopped playback&lt;br /&gt;
:;params&lt;br /&gt;
::&amp;lt;tt&amp;gt;reason&amp;lt;/tt&amp;gt; - stop reason, possible values:&lt;br /&gt;
:::&amp;lt;tt&amp;gt;missing_option&amp;lt;/tt&amp;gt; - content not free, &amp;quot;paid option&amp;quot; is missing.&lt;br /&gt;
::&amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt; - missing option ID (for &amp;lt;tt&amp;gt;reason=missing_option&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====Javascript example====&lt;br /&gt;
Using [https://jquery.com jQuery] library.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;function startEventListener() {&lt;br /&gt;
    $.ajax({&lt;br /&gt;
        url: url,&lt;br /&gt;
        method: &amp;quot;GET&amp;quot;,&lt;br /&gt;
        dataType: &amp;quot;json&amp;quot;,&lt;br /&gt;
        cache: false,&lt;br /&gt;
        success: function(response) {&lt;br /&gt;
            if(response.error) {&lt;br /&gt;
                console.log(&amp;quot;event listener: got error: &amp;quot; + response.error);&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                var event = response.response;&lt;br /&gt;
                if(typeof event !== &amp;quot;object&amp;quot;) {&lt;br /&gt;
                    event = JSON.parse(event);&lt;br /&gt;
                }&lt;br /&gt;
                console.log(&amp;quot;event listener: got event: name=&amp;quot; + event.name + &amp;quot; params=&amp;quot; + JSON.stringify(params));&lt;br /&gt;
                &lt;br /&gt;
                // handle event here&lt;br /&gt;
                // ...&lt;br /&gt;
                &lt;br /&gt;
                // listen to the next event (long polling)&lt;br /&gt;
                startEventListener(url);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        error: function(xhr, status, error) {&lt;br /&gt;
            console.log(&amp;quot;event listener error: status=&amp;quot; + status + &amp;quot; error=&amp;quot; + error);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// init event listener&lt;br /&gt;
startEventListener(&amp;quot;http://127.0.0.1:6878/ace/event/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;div id=&amp;quot;stop-notifications&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;Notifications about missing paid option==&lt;br /&gt;
In some cases user must have a permit (the paid option) to playback some content. If such permit not granted, then app engine will stop the playback and send a notification to user (by showing some predefined text in the default browser).&lt;br /&gt;
This behaviour can be overrided, and then client API will handle user notifications by itself. To do this, engine playback session should be started with &amp;lt;nowiki&amp;gt;use_stop_notifications=1&amp;lt;/nowiki&amp;gt; param.&lt;br /&gt;
In this case at playback stop app engine will not send notification to user, but send a event to client.&lt;br /&gt;
&lt;br /&gt;
If some permits is not granted, then engine playback can be stopped: &lt;br /&gt;
* at the playback start:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Start playback:&lt;br /&gt;
http://127.0.0.1:6878/ace/manifest.m3u8?id=c894b23a65d64a0dae2076d2a01ec6bface83b01&amp;amp;format=json&amp;amp;use_stop_notifications=1&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra_data&amp;quot;: { &lt;br /&gt;
        &amp;quot;reason&amp;quot;: &amp;quot;missing_option&amp;quot;,&lt;br /&gt;
        &amp;quot;option&amp;quot;: &amp;quot;proxyServer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;response&amp;quot;: null,&lt;br /&gt;
    &amp;quot;error&amp;quot;: &amp;quot;You need to buy Proxy Server option to continue&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sometime after playback was started:&lt;br /&gt;
If playback was stopped after some time, then engine will send a &amp;lt;tt&amp;gt;download_stopped&amp;lt;/tt&amp;gt; event:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Start playback:&lt;br /&gt;
http://127.0.0.1:6878/ace/manifest.m3u8?id=c894b23a65d64a0dae2076d2a01ec6bface83b01&amp;amp;format=json&amp;amp;use_api_events=1&amp;amp;use_stop_notifications=1&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: { &lt;br /&gt;
        &amp;quot;stat_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/stat/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;command_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/cmd/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;event_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/event/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&amp;quot;,&lt;br /&gt;
        &amp;quot;playback_url&amp;quot;: &amp;quot;http://127.0.0.1:6878/ace/m/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6.m3u8&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Wait for event via event_url:&lt;br /&gt;
http://127.0.0.1:6878/ace/event/6d12f958332ef0bd258053ba1afd833ddf9b74f9/f528764d624db129b32c21fbca0cb8d6&lt;br /&gt;
&lt;br /&gt;
At playback stop response should look like:&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;response&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;download_stopped&amp;quot;,&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
            &amp;quot;reason&amp;quot;: &amp;quot;missing_option&amp;quot;,&lt;br /&gt;
            &amp;quot;option&amp;quot;: &amp;quot;proxyServer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;error&amp;quot;: null&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Player ID==&lt;br /&gt;
Player ID (&amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039;) - random string, used for player identification during engine connect session.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Player ID&amp;quot; purpose - app engine must distinguish one player session from another, as in the current engine implementation user cannot play the same live stream with two (or more) players simultaneously from one engine, and engine will stop to serve requests from one player, when got a new request from another.&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/en&amp;diff=660</id>
		<title>Заглавная страница/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/en&amp;diff=660"/>
		<updated>2018-04-19T11:57:07Z</updated>

		<summary type="html">&lt;p&gt;Ffx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ace Stream&amp;#039;&amp;#039;&amp;#039; allows you to provide the best in the world audio-visual quality of the online broadcast, without any need for maintenance of the park servers and expenditures for payment of network traffic!&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__ &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 95%;&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;| &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center; color: #333; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8;font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Installation&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Download]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Windows|Install on Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Android|Install on Android]]&lt;br /&gt;
&lt;br /&gt;
[[Install_Ubuntu|Install on Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Releases&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[AceStream_3.0/en|AceStream 3]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Partners&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Resellers|Resellers]]&lt;br /&gt;
&lt;br /&gt;
[[Developers|Developers]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:20px auto 0; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Broadcasting&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Create HLS Broadcast]]&lt;br /&gt;
&lt;br /&gt;
[[Check engine version/en|Check engine version]]&lt;br /&gt;
&lt;br /&gt;
[[Embedded Player/en|Embedded Player]]&lt;br /&gt;
&lt;br /&gt;
[[Multi Stream/en|Multi Stream]]&lt;br /&gt;
&lt;br /&gt;
[[Streaming/en|Streaming]]&lt;br /&gt;
&lt;br /&gt;
[[Premium Broadcasts/en|Premium Broadcasts]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:49%;&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 90%; margin: 0 auto; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0 auto; background:#7aabc8; font-size:120%; font-weight:bold; color:#fff; padding:0.2em 0.4em; width: 250px; border: none;&amp;quot;&amp;gt;Developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[Playlist API]]&lt;br /&gt;
&lt;br /&gt;
[[Search API]]&lt;br /&gt;
&lt;br /&gt;
[[Engine HTTP API]]&lt;br /&gt;
&lt;br /&gt;
[[Product key|Product key]]&lt;br /&gt;
&lt;br /&gt;
[[Tracker/en|Tracker]]&lt;br /&gt;
&lt;br /&gt;
[[Content ID Generation|Content ID Generation]]&lt;br /&gt;
&lt;br /&gt;
[[External Playlist/en|External Playlist]]&lt;br /&gt;
&lt;br /&gt;
[[OAuth2/en|OAuth2 protocol]]&lt;br /&gt;
&lt;br /&gt;
[[WebPlugin/en|WebPlugin]]&lt;br /&gt;
&lt;br /&gt;
[[Create Transport File/en|Create Transport File]]&lt;br /&gt;
&lt;br /&gt;
[[Engine API/en|Engine API]]&lt;br /&gt;
&lt;br /&gt;
[[API Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Engine_Service_API|Engine Service API]]&lt;br /&gt;
&lt;br /&gt;
[[Reseller API|Reseller API]]&lt;br /&gt;
&lt;br /&gt;
[[Developer API|Developer API]]&lt;br /&gt;
&lt;br /&gt;
[[Application_Developers_Example|Examples for application developers]]&lt;br /&gt;
&lt;br /&gt;
[[Using_Ace_Stream_as_service_on_Android|Using the engine as a service for Android]]&lt;br /&gt;
&lt;br /&gt;
[[Launch_Ace_Stream_on_Android|Launch Ace Stream on Android]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- end of the middle section --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=659</id>
		<title>Playlist API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=659"/>
		<updated>2018-04-19T11:55:35Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Brief description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;Added in version 3.1.28&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Brief description ==&lt;br /&gt;
Playlist API allows to export playlist in different formats from Ace Stream Media Server.&lt;br /&gt;
&lt;br /&gt;
API endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_host&amp;gt;:6878/playlist/get&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parameters:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;format&amp;#039;&amp;#039; (list) - set output format;&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (list) - filter by category (media type);&lt;br /&gt;
* &amp;#039;&amp;#039;subcategory&amp;#039;&amp;#039; (string) - filter by subcategory (tags);&lt;br /&gt;
* &amp;#039;&amp;#039;favorites&amp;#039;&amp;#039; (bool, default is 0) - filter favorites; favorites=0 means to output both favorite and non-favorite items;&lt;br /&gt;
* &amp;#039;&amp;#039;items&amp;#039;&amp;#039; (list of integers) - filter by playlist item ids;&lt;br /&gt;
* &amp;#039;&amp;#039;host&amp;#039;&amp;#039; (string) - configure playback URL: set &amp;quot;host&amp;quot; part of URL. Actually this is an IP address of Ace Stream Media Server. By default the host from endpoint URL is used;&lt;br /&gt;
* &amp;#039;&amp;#039;protocol&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback URL: set output protocol (http or hls);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: enabled audio transcoding;&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode MP3 to AAC (by default MP3 is not transcoded);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode only AC3 to AAC and don&amp;#039;t transcode other codecs;&lt;br /&gt;
* &amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback ULR: set preferred audio language;&lt;br /&gt;
* &amp;#039;&amp;#039;download&amp;#039;&amp;#039; (bool, default is 0) - download playlist as file;&lt;br /&gt;
* &amp;#039;&amp;#039;skip_autosearch&amp;#039;&amp;#039; (bool, default is 0) - don&amp;#039;t replace playlist data with autosearch results; this doesn&amp;#039;t affect playlist items with disabled autosearch.&lt;br /&gt;
* &amp;#039;&amp;#039;generate_player_id&amp;#039;&amp;#039; (bool, default is 0) - with this option engine will output playlist with random &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; ([[Engine_HTTP_API#Player ID]]) for each item.&lt;br /&gt;
&lt;br /&gt;
Boolean values are passed as 0 or 1 (e.g. transcode_audio=1), list of integers is passed as string of values concatenated with comma (e.g. items=14,115,127).&lt;br /&gt;
&lt;br /&gt;
Allowed values for list parameters:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;format&amp;#039;&amp;#039;&amp;#039; - acestream, m3u, json;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039; - tv, movies, music_video, music, other;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;protocol&amp;#039;&amp;#039;&amp;#039; - http, hls.&lt;br /&gt;
&lt;br /&gt;
== Playlist output formats ==&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;m3u&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is intented for different media players.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;acestream&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is used to export playlist in such way so it can be imported in the Ace Stream software running somewhere else.&lt;br /&gt;
At the moment we use M3U format with some additional fields, specific to Ace Stream.&lt;br /&gt;
Each playlist item is identified either by Content ID (start with acestream://) or infohash (starts with magnet:). Infohash is used when Content ID is not available for some playlist item.&lt;br /&gt;
Both types of identifiers are recognized by Ace Stream Media Server when playlist is imported.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;json&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is indented to be used for automation. Playlist is returned as list of items, each item is an object with such fields:&lt;br /&gt;
* &amp;#039;&amp;#039;id&amp;#039;&amp;#039; (integer) - playlist item id unique for this media server; this id can be passed in &amp;quot;items&amp;quot; parameter to filter specific playlist items;&lt;br /&gt;
* &amp;#039;&amp;#039;title&amp;#039;&amp;#039; (string) - title;&lt;br /&gt;
* &amp;#039;&amp;#039;playback_url&amp;#039;&amp;#039; (string)  playback URL;&lt;br /&gt;
* &amp;#039;&amp;#039;content_id&amp;#039;&amp;#039; (string) - Content ID (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;infohash&amp;#039;&amp;#039; (string) - infohash (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;transport_file_url&amp;#039;&amp;#039; (string) - transport file URL (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (string) - media type (see list for &amp;quot;category&amp;quot; parameter);&lt;br /&gt;
* &amp;#039;&amp;#039;is_live&amp;#039;&amp;#039; (integer) - 1: live content, 0: VOD, -1: unknown;&lt;br /&gt;
* &amp;#039;&amp;#039;auto_search&amp;#039;&amp;#039; (bool) - whether autosearch is enabled for this playlist item;&lt;br /&gt;
* &amp;#039;&amp;#039;tags&amp;#039;&amp;#039; (list of strings) - list of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;m3u&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=m3u&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;acestream&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 acestream://acbfd1954084ffc68c65b0948485e5d0f82173e2&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 magnet:?xt=urn:btih:7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;json&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=json&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 [&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: false,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 1&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: &amp;quot;acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;quot;,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;a1231ebb2a26263cb37b305fced076961990812e&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 3&lt;br /&gt;
 },&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: true,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 2&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: null,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 4&lt;br /&gt;
 }&lt;br /&gt;
 ]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=658</id>
		<title>Playlist API</title>
		<link rel="alternate" type="text/html" href="https://wiki.acestream.media/index.php?title=Playlist_API&amp;diff=658"/>
		<updated>2018-04-19T11:50:34Z</updated>

		<summary type="html">&lt;p&gt;Ffx: /* Brief description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;Added in version 3.1.28&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Brief description ==&lt;br /&gt;
Playlist API allows to export playlist in different formats from Ace Stream Media Server.&lt;br /&gt;
&lt;br /&gt;
API endpoint:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;engine_host&amp;gt;:6878/playlist/get&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Parameters:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;format&amp;#039;&amp;#039; (list) - set output format;&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (list) - filter by category (media type);&lt;br /&gt;
* &amp;#039;&amp;#039;subcategory&amp;#039;&amp;#039; (string) - filter by subcategory (tags);&lt;br /&gt;
* &amp;#039;&amp;#039;favorites&amp;#039;&amp;#039; (bool, default is 0) - filter favorites; favorites=0 means to output both favorite and non-favorite items;&lt;br /&gt;
* &amp;#039;&amp;#039;items&amp;#039;&amp;#039; (list of integers) - filter by playlist item ids;&lt;br /&gt;
* &amp;#039;&amp;#039;host&amp;#039;&amp;#039; (string) - configure playback URL: set &amp;quot;host&amp;quot; part of URL. Actually this is an IP address of Ace Stream Media Server. By default the host from endpoint URL is used;&lt;br /&gt;
* &amp;#039;&amp;#039;protocol&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback URL: set output protocol (http or hls);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_audio&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: enabled audio transcoding;&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_mp3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode MP3 to AAC (by default MP3 is not transcoded);&lt;br /&gt;
* &amp;#039;&amp;#039;transcode_ac3&amp;#039;&amp;#039; (bool, defaults to server settings) - configure playback URL: transcode only AC3 to AAC and don&amp;#039;t transcode other codecs;&lt;br /&gt;
* &amp;#039;&amp;#039;preferred_audio_language&amp;#039;&amp;#039; (string, defaults to server settings) - configure playback ULR: set preferred audio language;&lt;br /&gt;
* &amp;#039;&amp;#039;download&amp;#039;&amp;#039; (bool, default is 0) - download playlist as file;&lt;br /&gt;
* &amp;#039;&amp;#039;skip_autosearch&amp;#039;&amp;#039; (bool, default is 0) - don&amp;#039;t replace playlist data with autosearch results; this doesn&amp;#039;t affect playlist items with disabled autosearch.&lt;br /&gt;
* &amp;#039;&amp;#039;generate_player_id&amp;#039;&amp;#039; (bool, default is 0) - with this option engine will output playlist with random &amp;#039;&amp;#039;&amp;#039;pid&amp;#039;&amp;#039;&amp;#039; ([[http://wiki.acestream.org/wiki/index.php/Engine_HTTP_API#Player ID|player id]], formerly known as &amp;#039;&amp;#039;&amp;#039;sid&amp;#039;&amp;#039;&amp;#039;) for each item.&lt;br /&gt;
&lt;br /&gt;
Boolean values are passed as 0 or 1 (e.g. transcode_audio=1), list of integers is passed as string of values concatenated with comma (e.g. items=14,115,127).&lt;br /&gt;
&lt;br /&gt;
Allowed values for list parameters:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;format&amp;#039;&amp;#039;&amp;#039; - acestream, m3u, json;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039; - tv, movies, music_video, music, other;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;protocol&amp;#039;&amp;#039;&amp;#039; - http, hls.&lt;br /&gt;
&lt;br /&gt;
== Playlist output formats ==&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;m3u&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is intented for different media players.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;acestream&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is used to export playlist in such way so it can be imported in the Ace Stream software running somewhere else.&lt;br /&gt;
At the moment we use M3U format with some additional fields, specific to Ace Stream.&lt;br /&gt;
Each playlist item is identified either by Content ID (start with acestream://) or infohash (starts with magnet:). Infohash is used when Content ID is not available for some playlist item.&lt;br /&gt;
Both types of identifiers are recognized by Ace Stream Media Server when playlist is imported.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;json&amp;#039;&amp;#039;&amp;#039;&amp;quot; format is indented to be used for automation. Playlist is returned as list of items, each item is an object with such fields:&lt;br /&gt;
* &amp;#039;&amp;#039;id&amp;#039;&amp;#039; (integer) - playlist item id unique for this media server; this id can be passed in &amp;quot;items&amp;quot; parameter to filter specific playlist items;&lt;br /&gt;
* &amp;#039;&amp;#039;title&amp;#039;&amp;#039; (string) - title;&lt;br /&gt;
* &amp;#039;&amp;#039;playback_url&amp;#039;&amp;#039; (string)  playback URL;&lt;br /&gt;
* &amp;#039;&amp;#039;content_id&amp;#039;&amp;#039; (string) - Content ID (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;infohash&amp;#039;&amp;#039; (string) - infohash (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;transport_file_url&amp;#039;&amp;#039; (string) - transport file URL (may be null);&lt;br /&gt;
* &amp;#039;&amp;#039;category&amp;#039;&amp;#039; (string) - media type (see list for &amp;quot;category&amp;quot; parameter);&lt;br /&gt;
* &amp;#039;&amp;#039;is_live&amp;#039;&amp;#039; (integer) - 1: live content, 0: VOD, -1: unknown;&lt;br /&gt;
* &amp;#039;&amp;#039;auto_search&amp;#039;&amp;#039; (bool) - whether autosearch is enabled for this playlist item;&lt;br /&gt;
* &amp;#039;&amp;#039;tags&amp;#039;&amp;#039; (list of strings) - list of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;m3u&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=m3u&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;acestream&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=acestream&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 #EXTM3U&lt;br /&gt;
 #EXTINF:-1,Test Channel 1&lt;br /&gt;
 acestream://acbfd1954084ffc68c65b0948485e5d0f82173e2&lt;br /&gt;
 #EXTINF:-1 acestream-autosearch=&amp;quot;1&amp;quot;,Test Channel 2&lt;br /&gt;
 magnet:?xt=urn:btih:7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Get playlist in &amp;quot;json&amp;quot; format:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Request:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/playlist/get?format=json&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
 [&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: false,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 1&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: &amp;quot;acbfd1954084ffc68c65b0948485e5d0f82173e2&amp;quot;,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;a1231ebb2a26263cb37b305fced076961990812e&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 3&lt;br /&gt;
 },&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;category&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
 &amp;quot;auto_search&amp;quot;: true,&lt;br /&gt;
 &amp;quot;title&amp;quot;: &amp;quot;Test Channel 2&amp;quot;,&lt;br /&gt;
 &amp;quot;playback_url&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;amp;hlc=1&amp;amp;transcode_audio=0&lt;br /&gt;
 &amp;amp;transcode_mp3=0&amp;amp;transcode_ac3=0&amp;amp;preferred_audio_language=eng&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;quot;is_live&amp;quot;: 1,&lt;br /&gt;
 &amp;quot;transport_file_url&amp;quot;: null,&lt;br /&gt;
 &amp;quot;content_id&amp;quot;: null,&lt;br /&gt;
 &amp;quot;infohash&amp;quot;: &amp;quot;7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&amp;quot;,&lt;br /&gt;
 &amp;quot;id&amp;quot;: 4&lt;br /&gt;
 }&lt;br /&gt;
 ]&lt;/div&gt;</summary>
		<author><name>Ffx</name></author>
		
	</entry>
</feed>