{"id":221,"date":"2022-02-07T21:52:20","date_gmt":"2022-02-07T19:52:20","guid":{"rendered":"https:\/\/tartine.linkpc.net\/?p=221"},"modified":"2022-02-07T21:52:20","modified_gmt":"2022-02-07T19:52:20","slug":"raspberry-pi-radio-partie-5-le-mode-light","status":"publish","type":"post","link":"https:\/\/blog.nibelheim.fr\/?p=221","title":{"rendered":"Raspberry Pi Radio partie 5 : le mode light"},"content":{"rendered":"\n<p>Cet article suit <a href=\"https:\/\/tartine.linkpc.net\/?p=218\">celui-ci<\/a>!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prerequis\">Pr\u00e9requis<\/h2>\n\n\n\n<p>Avoir au moins une radio pourvue d&#8217;une source, comme d\u00e9crit dans les \u00e9tapes pr\u00e9c\u00e9dentes de ce tutoriel!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"objectif\">Objectif<\/h2>\n\n\n\n<p>Si vous n&#8217;utilisez votre radio que pour streamer de la musique en continu, sans voix ni mixage sp\u00e9cifique, alors nous pouvons nous passer d&#8217;Icecast! En effet, et je l&#8217;ai d\u00e9couvert apr\u00e8s avoir r\u00e9dig\u00e9 les articles pr\u00e9c\u00e9dents, MPD dispose de son propre serveur HTTP et peut donc absolument s&#8217;autosuffire.<br>Magn\u00e9to, Serge.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"procedure\">Proc\u00e9dure<\/h2>\n\n\n\n<p><strong><em>1- Couper la musique<\/em><\/strong><\/p>\n\n\n\n<p>Dans la mesure o\u00f9 nous allons faire un grand m\u00e9nage, il convient dans un premier temps de couper tout ce qui doit \u00eatre coup\u00e9. Selon que vous ayez opt\u00e9 pour <a href=\"https:\/\/www.ympd.org\/\">ympd<\/a> ou <a href=\"https:\/\/www.musicpd.org\/clients\/ncmpc\/\">ncmpc<\/a> pour contr\u00f4ler votre source, coupez-la donc avec la commande qui va bien.<\/p>\n\n\n\n<p><strong><em>2- Arr\u00eater Icecast2 et le d\u00e9sactiver<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo service icecast2 stop<br>sudo systemctl disable icecast2<\/pre>\n\n\n\n<p>Nous avons besoin de faire cela car nous allons r\u00e9utiliser le port pr\u00e9c\u00e9demment pris par Icecast pour MPD &#8211; de cette mani\u00e8re, c&#8217;est transparent pour l&#8217;ext\u00e9rieur et vous n&#8217;avez pas \u00e0 changer l&#8217;adresse de votre flux.<\/p>\n\n\n\n<p><strong><em>3- Mettre \u00e0 jour la configuration de MPD<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo nano \/etc\/mpd.conf <\/pre>\n\n\n\n<p>Vous souvenez-vous du bloc de sortie audio_output? Il est temps de le commenter compl\u00e8tement en rajoutant des # devant chaque ligne :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#audio_output {\n#    type \"shout\"\n#    encoder \"lame\"\n#    encoder \"vorbis\" # optional\n#    name \"Radio\"\n#    host \"localhost\"\n#    port \"8000\"\n#    mount \"\/radio.ogg\"\n#    password \"\"\n#    quality \"5.0\"\n#    bitrate \"192\"\n#    format \"44100:16:1\"\n#    protocol \"icecast2\" # optional\n#    user \"source\" # optional\n#    description \"\" # optional\n#    url \"https:\/\/xxx\" # optional\n#    genre \"VGM\" # optional\n#    public \"no\" # optional\n#    timeout \"2\" # optional\n#    mixer_type \"software\" # optional\n#}<\/pre>\n\n\n\n<p>Maintenant, nous allons chercher le bloc dont le type est httpd , et le configurer de la sorte :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>audio_output {\n    type \"httpd\"\n    name \"Stream\"\n    encoder \"vorbis\"                        # optional, vorbis or lame\n<span class=\"has-inline-color has-vivid-red-color\">    port \"8000\"<\/span>\n    bind_to_address \"0.0.0.0\"               # optional, IPv4 or IPv6\n<span class=\"has-inline-color has-vivid-red-color\">#   quality         \"5.0\"<\/span>\n    bitrate         \"192\"                   # do not define if quality is defined\n    format          \"44100:16:1\"\n    max_clients     \"0\"                     # optional 0=no limit\n<span class=\"has-inline-color has-vivid-red-color\">    always_on       \"yes\"\n    tags            \"yes\"<\/span>\n}<\/code><\/pre>\n\n\n\n<p>Quelques d\u00e9tails sont \u00e0 retenir  ici :<br>&#8211; Le champ <em>name <\/em>n&#8217;a pas grande importance, car il n&#8217;y a plus besoin d&#8217;un point de montage pour Icecast, uniquement d&#8217;un num\u00e9ro de port d\u00e9di\u00e9 par source.<br>&#8211; Le port doit \u00eatre le m\u00eame que dans le bloc de type shout que nous avons comment\u00e9 ci-dessus <em>(afin de ne pas changer la configuration de Nginx &#8211; enfin, presque pas)<\/em><br>&#8211; La ligne Quality doit \u00eatre comment\u00e9e si la ligne Bitrate ne l&#8217;est pas, et vice-versa. Personnellement, le bitrate me parle bien plus que le facteur qualit\u00e9, mais c&#8217;est votre bizness.<br>&#8211; Always_on permet de ne pas virer salement tout le monde lorsqu&#8217;il n&#8217;y a plus de musique \u00e0 jouer,<br>&#8211; Tags permet de s&#8217;assurer d&#8217;avoir les informations issues des tags ID3 de vos morceaux MP3 (et probablement d&#8217;autres formats de musique, mais je suis de la vieille \u00e9cole des MP3&#8230;).<\/p>\n\n\n\n<p>Ceci \u00e9tant fait, vous pouvez sauvegarder et quitter, et relancer MPD :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo service mpd start<\/pre>\n\n\n\n<p><strong><em>4- Mettre \u00e0 jour Nginx<\/em><\/strong><\/p>\n\n\n\n<p><em><span class=\"has-inline-color has-luminous-vivid-amber-color\">Cette partie s&#8217;adresse \u00e0 celles et ceux ayant utilis\u00e9 Nginx pour l&#8217;acc\u00e8s ext\u00e9rieur \u00e0 leur flux audio. En r\u00e9seau interne pur, vous pouvez zapper cette \u00e9tape.<\/span><\/em><br>Bien que l&#8217;URL d&#8217;acc\u00e8s \u00e0 votre stream n&#8217;ait pas besoin de changement, l&#8217;URL interne pointant vers votre stream doit l\u00e9g\u00e8rement changer, car comme pr\u00e9cis\u00e9 plus t\u00f4t, il n&#8217;y a plus de point de monte.<br>Ouvrez donc la configuration de votre site Nginx :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo nano \/etc\/nginx\/sites-available\/radio<\/pre>\n\n\n\n<p>Localisez le bloc <strong>location \/radio<\/strong> et sa premi\u00e8re ligne :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>location \/radio {\n        proxy_pass http:\/\/127.0.0.1:8000\/radio.ogg;<\/code><\/pre>\n\n\n\n<p>Ajoutez un # devant cette ligne, et ajoutez en dessous la ligne suivante :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">proxy_pass http:\/\/127.0.0.1:8000;<\/pre>\n\n\n\n<p>Contenant \u00e9videmment le m\u00eame num\u00e9ro de port que pr\u00e9c\u00e9demment.<br>Comme vous pouvez le constater, plus besoin de <strong>\/radio.ogg<\/strong>, le port suffit. C&#8217;est beau la vie!<\/p>\n\n\n\n<p>Sauvegardez et quittez, puis relancez Nginx :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo service nginx reload<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>Si vous n&#8217;avez rien loup\u00e9 <em>(genre bloc mal comment\u00e9)<\/em>, tout devrait \u00eatre OK maintenant, et vous devriez pouvoir acc\u00e9der \u00e0 votre flux radio pareil qu&#8217;avant, sans avoir Icecast qui grignote des ressources pour rien du tout &#8211; ce qui devrait vous aider dans le cas de plusieurs sources simultan\u00e9es!<\/p>\n\n\n\n<p><a href=\"https:\/\/tartine.linkpc.net\/?p=231\">Dans le prochain chapitre<\/a>, nous allons nous assurer que notre radio puisse se relancer en cas de besoin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cet article suit celui-ci! Pr\u00e9requis Avoir au moins une radio pourvue d&#8217;une source, comme d\u00e9crit dans les \u00e9tapes pr\u00e9c\u00e9dentes de ce tutoriel! Objectif Si vous n&#8217;utilisez votre radio que pour streamer de la musique en continu, sans voix ni mixage sp\u00e9cifique, alors nous pouvons nous passer d&#8217;Icecast! En effet, et [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[16,22,24,25],"class_list":["post-221","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi","tag-icecast","tag-nginx","tag-radio","tag-raspberry"],"_links":{"self":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts\/221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=221"}],"version-history":[{"count":0,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts\/221\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}