/usr/share/doc/mopidy-doc/html/audio.html is in mopidy-doc 2.0.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Advanced audio setups — Mopidy 2.0.0 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '2.0.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Mopidy 2.0.0 documentation" href="index.html" />
<link rel="next" title="Troubleshooting" href="troubleshooting.html" />
<link rel="prev" title="Running as a service" href="service.html" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head>
<body role="document">
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="advanced-audio-setups">
<span id="audio"></span><h1>Advanced audio setups<a class="headerlink" href="#advanced-audio-setups" title="Permalink to this headline">¶</a></h1>
<p>Mopidy has very few <a class="reference internal" href="config.html#audio-config"><span>audio configs</span></a>, but the ones we
have are very powerful because they let you modify the GStreamer audio pipeline
directly. Here we describe some use cases that can be solved with the audio
configs and GStreamer.</p>
<div class="section" id="custom-audio-sink">
<span id="custom-sink"></span><h2>Custom audio sink<a class="headerlink" href="#custom-audio-sink" title="Permalink to this headline">¶</a></h2>
<p>If you have successfully installed GStreamer, and then run the
<code class="docutils literal"><span class="pre">gst-inspect-1.0</span></code> command, you should see a long listing of installed
plugins, ending in a summary line:</p>
<div class="highlight-python"><div class="highlight"><pre>$ gst-inspect-1.0
... long list of installed plugins ...
Total count: 233 plugins, 1339 features
</pre></div>
</div>
<p>Next, you should be able to produce a audible tone by running:</p>
<div class="highlight-python"><div class="highlight"><pre>gst-launch-1.0 audiotestsrc ! audioresample ! autoaudiosink
</pre></div>
</div>
<p>If you cannot hear any sound when running this command, you won’t hear any
sound from Mopidy either, as Mopidy by default uses GStreamer’s
<code class="docutils literal"><span class="pre">autoaudiosink</span></code> to play audio. Thus, make this work before you file a bug
against Mopidy.</p>
<p>If you for some reason want to use some other GStreamer audio sink than
<code class="docutils literal"><span class="pre">autoaudiosink</span></code>, you can set the <a class="reference internal" href="config.html#confval-audio/output"><code class="xref std std-confval docutils literal"><span class="pre">audio/output</span></code></a> config value to a
partial GStreamer pipeline description describing the GStreamer sink you want
to use.</p>
<p>Example <code class="docutils literal"><span class="pre">mopidy.conf</span></code> for using OSS4:</p>
<div class="highlight-ini"><div class="highlight"><pre><span class="k">[audio]</span>
<span class="na">output</span> <span class="o">=</span> <span class="s">oss4sink</span>
</pre></div>
</div>
<p>Again, this is the equivalent of the following <code class="docutils literal"><span class="pre">gst-launch-1.0</span></code> command, so
make this work first:</p>
<div class="highlight-python"><div class="highlight"><pre>gst-launch-1.0 audiotestsrc ! audioresample ! oss4sink
</pre></div>
</div>
</div>
<div class="section" id="streaming-through-icecast">
<span id="streaming"></span><h2>Streaming through Icecast<a class="headerlink" href="#streaming-through-icecast" title="Permalink to this headline">¶</a></h2>
<p>If you want to play the audio on another computer than the one running Mopidy,
you can stream the audio from Mopidy through an Icecast audio streaming server.
Multiple media players can then be connected to the streaming server
simultaneously. To use the Icecast output, do the following:</p>
<ol class="arabic">
<li><p class="first">Install, configure and start the Icecast server. It can be found in the
<code class="docutils literal"><span class="pre">icecast2</span></code> package in Debian/Ubuntu.</p>
</li>
<li><p class="first">Set the <a class="reference internal" href="config.html#confval-audio/output"><code class="xref std std-confval docutils literal"><span class="pre">audio/output</span></code></a> config value to encode the output audio to
MP3 (<code class="docutils literal"><span class="pre">lamemp3enc</span></code>) or Ogg Vorbis (<code class="docutils literal"><span class="pre">audioresample</span> <span class="pre">!</span> <span class="pre">audioconvert</span> <span class="pre">!</span>
<span class="pre">vorbisenc</span> <span class="pre">!</span> <span class="pre">oggmux</span></code>) and send it to Icecast (<code class="docutils literal"><span class="pre">shout2send</span></code>).</p>
<p>You might also need to change the <code class="docutils literal"><span class="pre">shout2send</span></code> default settings, run
<code class="docutils literal"><span class="pre">gst-inspect-1.0</span> <span class="pre">shout2send</span></code> to see the available settings. Most likely
you want to change <code class="docutils literal"><span class="pre">ip</span></code>, <code class="docutils literal"><span class="pre">username</span></code>, <code class="docutils literal"><span class="pre">password</span></code>, and <code class="docutils literal"><span class="pre">mount</span></code>.</p>
<p>Example for MP3 streaming:</p>
<div class="highlight-ini"><div class="highlight"><pre><span class="k">[audio]</span>
<span class="na">output</span> <span class="o">=</span> <span class="s">lamemp3enc ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme</span>
</pre></div>
</div>
<p>Example for Ogg Vorbis streaming:</p>
<div class="highlight-ini"><div class="highlight"><pre><span class="k">[audio]</span>
<span class="na">output</span> <span class="o">=</span> <span class="s">audioresample ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme</span>
</pre></div>
</div>
</li>
</ol>
<p>Other advanced setups are also possible for outputs. Basically, anything you
can use with the <code class="docutils literal"><span class="pre">gst-launch-1.0</span></code> command can be plugged into
<a class="reference internal" href="config.html#confval-audio/output"><code class="xref std std-confval docutils literal"><span class="pre">audio/output</span></code></a>.</p>
<div class="section" id="known-issues">
<h3>Known issues<a class="headerlink" href="#known-issues" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><strong>Changing track:</strong> As of Mopidy 1.2 we support gapless playback, and the
stream does no longer end when changing from one track to another.</li>
<li><strong>Previous/next:</strong> The stream ends on previous and next. See <a class="reference external" href="https://github.com/mopidy/mopidy/issues/1306">#1306</a>
for details. This can be worked around using a fallback stream, as described
below.</li>
<li><strong>Pause:</strong> Pausing playback stops the stream. This is probably not something
we’re going to fix. This can be worked around using a fallback stream, as
described below.</li>
<li><strong>Metadata:</strong> Track metadata is mostly missing from the stream. For Spotify,
fixing <a class="reference external" href="https://github.com/mopidy/mopidy/issues/1357">#1357</a> should help. The general issue for other extensions is
<a class="reference external" href="https://github.com/mopidy/mopidy/issues/866">#866</a>.</li>
</ul>
</div>
<div class="section" id="fallback-stream">
<h3>Fallback stream<a class="headerlink" href="#fallback-stream" title="Permalink to this headline">¶</a></h3>
<p>By using a <em>fallback stream</em> playing silence, you can somewhat mitigate the
known issues above.</p>
<p>Example Icecast configuration:</p>
<div class="highlight-xml"><div class="highlight"><pre><span class="nt"><mount></span>
<span class="nt"><mount-name></span>/mopidy<span class="nt"></mount-name></span>
<span class="nt"><fallback-mount></span>/silence.mp3<span class="nt"></fallback-mount></span>
<span class="nt"><fallback-override></span>1<span class="nt"></fallback-override></span>
<span class="nt"></mount></span>
</pre></div>
</div>
<p>You can easily find MP3 files with just silence by searching the web. The
<code class="docutils literal"><span class="pre">silence.mp3</span></code> file needs to be placed in the directory defined by
<code class="docutils literal"><span class="pre"><webroot>...</webroot></span></code> in the Icecast configuration.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Advanced audio setups</a><ul>
<li><a class="reference internal" href="#custom-audio-sink">Custom audio sink</a></li>
<li><a class="reference internal" href="#streaming-through-icecast">Streaming through Icecast</a><ul>
<li><a class="reference internal" href="#known-issues">Known issues</a></li>
<li><a class="reference internal" href="#fallback-stream">Fallback stream</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="service.html" title="previous chapter">Running as a service</a></li>
<li>Next: <a href="troubleshooting.html" title="next chapter">Troubleshooting</a></li>
</ul></li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/audio.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©2009-2016, Stein Magnus Jodal and contributors.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.6</a>
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.7</a>
|
<a href="_sources/audio.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
|