bandeau2016

file envoi d'un seul flux de streaming shoutcast pour alimenter le serveur icecast2 avec un mp3 et un ogg

il y a 5 ans 10 mois - il y a 5 ans 10 mois #51 par doc_denis
Bonjour, tout est dans le titre.

Pour aller plus loin que dans mon post précédent , je vais envoyer un seul flux vers mon serveur Shoutcast.
Puis mon serveur Icecast2 va convertir le flux de streaming shoutcast en Icecast avec deux points de montages, l'un en mp3 et l'autre en ogg sans intervention humaine :) ...presque
ainsi, nous allons diffuser du icecast avec un flux de streaming shoutcast ! "shoutcast vers icecast"
...pour le contraire, j'ai pas encore trouvé.

mise en place en 2MN avec webmin un peux plus avec nano ou vi ;)

Tout est dans mon fichier /etc/icecast2/icecast.xml présenté ci dessous !

Tu peux changer la valeur de : (afin de mettre le service tout le temps avec "0" ou à la demande "1")
<relays-on-demand>0</relays-on-demand>
en
<relays-on-demand>1</relays-on-demand>

de même, tu devra changer les noms des points de montages pour personnaliser ton service.
/le85.mp3
et
/le85.ogg

<icecast>
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <threadpool>5</threadpool>
        <queue-size>524288</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <!-- If enabled, this will provide a burst of data when a client 
             first connects, thereby significantly reducing the startup 
             time for listeners that do substantial buffering. However,
             it also significantly increases latency between the source
             client and listening client.  For low-latency setups, you
             might want to disable this. -->
        <burst-on-connect>1</burst-on-connect>
        <!-- same as burst-on-connect, but this allows for being more
             specific on how much to burst. Most people won t need to
             change from the default 64k. Applies to all mountpoints  -->
        <burst-size>65535</burst-size>
    </limits>

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>motdepasse</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>motdepasse</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>motdepasse</admin-password>
    </authentication>

    <!-- set the mountpoint for a shoutcast source to use, the default if not
         specified is /stream but you can change it here if an alternative is
         wanted or an extension is required
    <shoutcast-mount>/live.nsv</shoutcast-mount>
    -->

    <!-- Uncomment this if you want directory listings -->
    <!--
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>
     -->

    <!-- This is the hostname other people will use to connect to your server.
    It affects mainly the urls generated by Icecast for playlists and yp
    listings. -->
    <hostname>ADRESSE_OU_IP_DU_SERVEUR_ICECAST2</hostname>

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
        <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
    </listen-socket>
    <!--
    <listen-socket>
        <port>8001</port>
    </listen-socket>
    -->

    <master-server>PORT_DU_SERVEUR_ICECAST2</master-server>
    <master-server-port>8001</master-server-port>
    <master-update-interval>120</master-update-interval>
    <master-password>motdepasse</master-password>

    <!-- setting this makes all relays on-demand unless overridden, this is
         useful for master relays which do not have <relay> definitions here.
         The default is 0 -->

<!-- "option a la demande avec un 1 - tout le temps avec un 0" -->
<relays-on-demand>0</relays-on-demand>


<!-- "desactive l'option voulue avec des fleches comme sur cette phrase" -->
<!-- j ai choisi tout shoutcast et envoyer a la demande les flux icecast, ainsi je n envoi qu un flux -->
<!-- "envoi d un seul flux vers un serveur shoutcast reccupere par icecast et converti en .mp3 et .ogg" -->
 
<relay>
        <server>IP_DU_SERVEUR_SHOUTCAST</server>
        <port>PORT_DU_SERVEUR_SHOUTCAST</port>
        <mount>/</mount>
       <local-mount>/le85.mp3</local-mount>
	<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<relay>
        <server>IP_DU_SERVEUR_SHOUTCAST</server>
        <port>PORT_DU_SERVEUR_SHOUTCAST</port>
        <mount>/</mount>
        <local-mount>/le85.ogg</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>


<!-- "envoi d un flux icecast vers .mp3 converti en .ogg" -->
<!--
<relay>
        <server>127.0.0.1</server>
        <port>8000</port>
        <mount>/le85.mp3</mount>
        <local-mount>/le85.ogg</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
-->

<!-- je n ai pas de solutions pour envoyer le fux icecast vers serveur shoutcast ...dommage -->


    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8000</port>
        <mount>/example.ogg</mount>
        <local-mount>/different.ogg</local-mount>
        <on-demand>0</on-demand>

        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    -->

    <!-- Only define a <mount> section if you want to use advanced options,
         like alternative usernames or passwords
    <mount>
        <mount-name>/example-complex.ogg</mount-name>

        <username>othersource</username>
        <password>hackmemore</password>

        <max-listeners>1</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/example2.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.ogg</intro>
        <hidden>1</hidden>
        <no-yp>1</no-yp>
        <authentication type="htpasswd">
                <option name="filename" value="myauth"/>
                <option name="allow_duplicate_users" value="0"/>
        </authentication>
        <on-connect>/home/icecast/bin/stream-start</on-connect>
        <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
    </mount>

    <mount>
        <mount-name>/auth_example.ogg</mount-name>
        <authentication type="url">
            <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
            <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
            <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
            <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
        </authentication>
    </mount>

    -->

    <fileserve>1</fileserve>

    <paths>
		<!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/share/icecast2</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>/var/log/icecast2</logdir>
        <webroot>/usr/share/icecast2/web</webroot>
        <adminroot>/usr/share/icecast2/admin</adminroot>
        <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->

        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
             May be made specific to a port or bound address using the "port"
             and "bind-address" attributes.
          -->
        <!--
        <alias source="/foo" dest="/bar"/>
          -->
        <!-- Aliases: can also be used for simple redirections as well,
             this example will redirect all requests for http://server:port/ to
             the status page
          -->
        <alias source="/" dest="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <!-- <playlistlog>playlist.log</playlistlog> -->
      	<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
      	<logsize>10000</logsize> <!-- Max size of a logfile -->
        <!-- If logarchive is enabled (1), then when logsize is reached
             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
             otherwise it will be moved to [error|access|playlist].log.old.
             Default is non-archive mode (i.e. overwrite)
        -->
        <!-- <logarchive>1</logarchive> -->
    </logging>

    <security>
        <chroot>0</chroot>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>

Le partage du savoir fait avancer plus vite !

Connexion ou Créer un compte pour participer à la conversation.

il y a 5 ans 10 mois #52 par doc_denis
un oubli, le pré-requis pour cette opération : (mais c'est évident!!)

un serveur shoutcast en ligne qui tourne, le flux de streaming fonctionne et est diffusé
un serveur Icecast2 en ligne installé

Tout cela fonctionne sur des kimsufi, dedibox et même sur des VPS ...faut pas le dire trop fort.
inconvénient du VPS "chez ovh" c'est la bande passant limité, faudra surveillé la consommation.

cela dit, pour tester le vps est suffisant surtout si on active le service à la demande.

Le partage du savoir fait avancer plus vite !

Connexion ou Créer un compte pour participer à la conversation.

il y a 5 ans 3 mois #58 par doc_denis
NOUVELLE VERSION DANS LE CAS OU LE SERVEUR SHOUTCAST ET LE SERVEUR ICECAST CE TROUVENT SUR LE MEME SERVEUR PHYSIQUE.
<!-- ###########   MODIFS DENIS   ########### -->

<!-- je change le port d'écoute de icecast en 8200, car shoucast utilise déja le port 8000 -->
    <listen-socket>
        <port>8200</port>
    </listen-socket>
	
<!-- je passe à la suite, icecast va prendre les flux shoutcast et les convertirs en MP3 et OGG -->

<!-- la radio 1 -->

	<relay> <!-- nous allons convertir le flux shoutcast en icecast -->
	<server>localhost</server> <!-- adresse du serveur shoutcast, ici c'est le même serveur -->
	<port>8900</port> <!-- port du flux shoutcast à convertir en icecast -->
	<mount>/</mount> <!-- ne pas toucher -->
	<local-mount>/radio1.mp3</local-mount> <!-- point de montage MP3 icecast -->
	<relay-shoutcast-metadata>1</relay-shoutcast-metadata> <!-- relayer les titres -->
	<relays-on-demand>0</relays-on-demand> <!-- a la demande =1 tout le temps =0 -->
	</relay>

	<relay> <!-- nous allons convertir le MP3 icecast en OGG -->
	<server>localhost</server> <!-- adresse du serveur icecast c'est le même serveur physique -->
	<port>8200</port> <!-- port du serveur icecast, ici le 8000 est déjà utilisé par shoutcast, icecast est configuré en 8200 -->
	<mount>/radio1.mp3</mount> <!-- la source a convertir -->
	<local-mount>/radio1.ogg</local-mount> <!-- la destination en OGG -->
	<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
	<relays-on-demand>0</relays-on-demand> <!-- a la demande =1 tout le temps =0 -->
	</relay>

<!-- FIN radio 1 -->

<!-- la radio 2 -->

	<relay>
	<server>localhost</server>
	<port>8000</port> <!-- port du flux shoutcast à convertir en icecast -->
	<mount>/</mount>
	<local-mount>/radio2.mp3</local-mount>
	<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
	<relays-on-demand>0</relays-on-demand> <!-- a la demande =1 tout le temps =0 -->
	</relay>

	<relay>
	<server>localhost</server>
	<port>8200</port> <!-- port du serveur icecast, ici le 8000 est déjà utilisé par shoutcast, icecast est configuré en 8200 -->
	<mount>/radio2.mp3</mount> <!-- la source a convertir -->
	<local-mount>/radio2.ogg</local-mount> <!-- la destination en OGG -->
	<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
	<relays-on-demand>0</relays-on-demand> <!-- a la demande =1 tout le temps =0 -->
	</relay>

<!-- FIN radio 2 -->

<!-- ########### FIN MODIFS DENIS ########### -->

Le partage du savoir fait avancer plus vite !

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.070 secondes
Propulsé par Kunena