*ARCHIVE* An audio stream processor and a retransmittor to icecast.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
9.3 KiB

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="./robodoc.css" type="text/css" />
<title>./streamproxy</title>
<!-- Source: ./streamproxy -->
<!-- Generated with ROBODoc Version 4.99.41 (Jul 2 2011) -->
</head>
<body>
<div id="logo">
<a name="robo_top_of_doc"></a>
</div> <!-- logo -->
<div id="navigation">
<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
<a class="menuitem" href="./masterindex.html#top">Index</a>
<a class="menuitem" href="./robo_files.html#top">Files</a>
<a class="menuitem" href="./robo_functions.html#top">Functions</a>
<a class="menuitem" href="./tobo_toplevel.html#top">Toplevel</a>
<a class="menuitem" href="./robo_variables.html#top">Variables</a>
</div> <!-- navigation -->
<div id="content">
<hr />
<a name="ffmpeg2fstreamproxy"></a>
<a name="robo8"></a><h2>ffmpeg/streamproxy [ Files ]</h2>
<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./robo_files.html#robo_top_of_doc">Files</a> ]</p>
<p class="item_name">NAME</p>
<pre> <strong>streamproxy</strong> - проксирование аудиопотока на Icecast
</pre>
<p class="item_name">VERSION</p>
<pre> 1.0
</pre>
<p class="item_name">DESCRIPTION</p>
<p> Сценарий принимает аудиопоток с оборудования, по UDP или TCP,
и ретранслирует поток на сервер радиовещания icecast для
получения сигнала другими программами и прослушивания аудио конечным
пользователем.
</p>
<p> Проксирование будет доступно только при задании в файле настроек опции
&lt;proxy&gt;1&lt;/proxy&gt;
</p>
<p><img src="dot_graph_1.png">
</p>
<p class="item_name">USAGE</p>
<pre> <strong>streamproxy</strong> &lt;файл настроек&gt;
</pre>
<p class="item_name">ARGUMENTS</p>
<ul><li> &lt;файл настроек&gt; - xml-файл с описанием входящего и выходящего потоков и
правилами фрагментирования записей.
</li>
</ul>
<p></p>
<hr />
<a name="streamproxy2freadXML"></a>
<a name="robo9"></a><h2>streamproxy/readXML [ Functions ]</h2>
<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo8">streamproxy</a> ] [ <a href="./robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
<p class="item_name">NAME</p>
<pre> <strong>readXML</strong> - получение значения опции из файла настроек
</pre>
<p class="item_name">USAGE</p>
<pre> <strong>readXML</strong> &lt;опция&gt; &lt;файл&gt;
</pre>
<p class="item_name">ARGUMENTS</p>
<ul><li> опция - имя опции
</li>
<li> файл - xml-файл с настройками
</li>
</ul>
<p></p>
<p class="item_name">RESULT</p>
<pre> Значение параметра при наличии искомой опции в xml-файле или значение по
умолчанию, которое задаётся при инициализации переменной <a href="./streamsaver.html#robo5">config</a>.
</pre>
<p class="item_name">SOURCE</p>
<pre class="source"><span class="line_number">82 </span><strong>readXML</strong><span class="sign">(</span><span class="sign">)</span> <span class="keyword">{</span>
<span class="line_number">83 </span> <span class="sign">\</span><span class="keyword">grep</span> <span class="sign">-</span>oPm1 <span class="quote">"(?&lt;=&lt;$1&gt;)[^&lt;]+"</span> <span class="quote">"$2"</span>
<span class="line_number">84 </span><span class="keyword">}</span>
</pre>
<hr />
<a name="streamproxy2fproxyCMD"></a>
<a name="robo10"></a><h2>streamproxy/proxyCMD [ Functions ]</h2>
<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo8">streamproxy</a> ] [ <a href="./robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
<p class="item_name">NAME</p>
<pre> <strong>proxyCMD</strong> - создание команды для передачи аудиопотока
</pre>
<p class="item_name">DESCRIPTION</p>
<p> Процедура составляет команду ffmpeg на основе конфигурационного файла
</p>
<p class="item_name">RESULT</p>
<pre> Команда ffmpeg, которую можно передать на выполнение.
</pre>
<p class="item_name">SOURCE</p>
<pre class="source"><span class="line_number">100 </span><strong>proxyCMD</strong><span class="sign">(</span><span class="sign">)</span> <span class="keyword">{</span>
<span class="line_number">101 </span> STREAM<span class="sign">=</span><span class="sign">$</span><span class="sign">(</span><a href="#robo9">readXML</a> stream <span class="quote">"$XML"</span><span class="sign">)</span>
<span class="line_number">102 </span> ICECAST<span class="sign">=</span><span class="quote">"$(<a href="#robo9">readXML</a> icecast $XML)/$(<a href="#robo9">readXML</a> mountpoint $XML)"</span>
<span class="line_number">103 </span> ICENAME<span class="sign">=</span><span class="quote">"$(<a href="#robo9">readXML</a> channel_name $XML)"</span>
<span class="line_number">104 </span> ICEDESC<span class="sign">=</span><span class="quote">"$(<a href="#robo9">readXML</a> channel_descr $XML)"</span>
<span class="line_number">105 </span> FORMAT<span class="sign">=</span><span class="quote">"$(<a href="#robo9">readXML</a> input_format $XML)"</span>
<span class="line_number">106 </span>
<span class="line_number">107 </span> <span class="keyword">echo</span> <span class="keyword">ffmpeg</span> <span class="sign">-</span>i <span class="quote">"$STREAM"</span> <span class="sign">\</span>
<span class="line_number">108 </span> <span class="sign">-</span><span class="keyword">fi</span> <span class="quote">"$FORMAT"</span> <span class="sign">\</span>
<span class="line_number">109 </span> <span class="sign">-</span>legacy_icecast 1 <span class="sign">\</span>
<span class="line_number">110 </span> <span class="sign">-</span>content_type audio<span class="sign">/</span>mpeg <span class="sign">\</span>
<span class="line_number">111 </span> <span class="sign">-</span>ice_name <span class="quote">"$ICENAME"</span> <span class="sign">\</span>
<span class="line_number">112 </span> <span class="sign">-</span>ice_description <span class="quote">"$ICEDESC"</span> <span class="sign">\</span>
<span class="line_number">113 </span> icecast<span class="sign">:</span><span class="sign">/</span><span class="sign">/</span>source<span class="sign">:</span><span class="sign">$</span>ICECAST
<span class="line_number">114 </span><span class="keyword">}</span>
</pre>
<hr />
<a name="streamproxy2fmain"></a>
<a name="robo11"></a><h2>streamproxy/main [ Toplevel ]</h2>
<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo8">streamproxy</a> ] [ <a href="./tobo_toplevel.html#robo_top_of_doc">Toplevel</a> ]</p>
<p class="item_name">NAME</p>
<pre> <a href="#robo8">streamproxy</a>
</pre>
<p class="item_name">SOURCE</p>
<pre class="source"><span class="line_number">125 </span><span class="comment">#Проверка аргументов</span>
<span class="line_number">126 </span><span class="keyword">if</span> <span class="sign">[</span> <span class="sign">-</span>z <span class="sign">$</span>1 <span class="sign">]</span><span class="sign">;</span> <span class="keyword">then</span>
<span class="line_number">127 </span> <span class="keyword">echo</span> <span class="quote">"USAGE: $0 &lt;xml&gt;"</span>
<span class="line_number">128 </span> <span class="keyword">exit</span> 1
<span class="line_number">129 </span><span class="keyword">fi</span>
<span class="line_number">130 </span>
<span class="line_number">131 </span><span class="comment">#Файл настроек</span>
<span class="line_number">132 </span>XML<span class="sign">=</span><span class="quote">"$1"</span>
<span class="line_number">133 </span>
<span class="line_number">134 </span><span class="comment">#Проверка использования прокси</span>
<span class="line_number">135 </span>PROXY<span class="sign">=</span><span class="sign">$</span><span class="sign">(</span><a href="#robo9">readXML</a> proxy <span class="quote">"$XML"</span><span class="sign">)</span>
<span class="line_number">136 </span>
<span class="line_number">137 </span><span class="keyword">if</span> <span class="sign">[</span> <span class="quote">"$PROXY"</span> <span class="sign">=</span><span class="sign">=</span> 1 <span class="sign">]</span><span class="sign">;</span> <span class="keyword">then</span>
<span class="line_number">138 </span> <a href="#robo10">proxyCMD</a>
<span class="line_number">139 </span><span class="keyword">fi</span>
</pre>
</div> <!-- content -->
<div id="footer">
<p>Generated from ./streamproxy with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.41 on Fri Aug 12 2016 17:07:07
</p>
</div> <!-- footer -->
</body>
</html>