URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 64538
[ Назад ]

Исходное сообщение
"сетевое радио - не получается настроить"

Отправлено Mig , 03-Мрт-06 14:02 
настраиваю связку icecast+ices, icecast настроил  по http можно подключиться на 8000 порт,
не присоединяется ices к icecast,не могу разобраться в чем причина.

в playlist.txt
/dev/dsp
/dev/dsp

в логах следующее:
[2006-03-03  13:38:19] INFO signals/signal_int_handler Shutdown requested...
[2006-03-03  13:38:55] INFO ices-core/main IceS 2.0.1 started...
[2006-03-03  13:38:55] INFO signals/signal_usr1_handler Metadata update requested
[2006-03-03  13:38:55] INFO playlist-basic/playlist_basic_get_next_filename Loading playlist from file "/etc/playlist.txt"
[2006-03-03  13:38:55] INFO playlist-builtin/playlist_read Currently playing "/dev/dsp"
[2006-03-03  13:38:55] EROR stream/ices_instance_stream Failed initial connect to 192.168.1.12:8000 (Login failed: Success)
[2006-03-03  13:38:55] DBUG reencode/reencode_clear Clearing reencoder
[2006-03-03  13:38:55] WARN playlist-builtin/playlist_read Corrupt or missing data in file (/dev/dsp)
[2006-03-03  13:43:10] INFO signals/signal_int_handler Shutdown requested...

вот конфиги:
icecast.xml
<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>
        <!-- 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>11111</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>11111</relay-password>

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

    <!-- 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>
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://www.oddsock.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>localhost</hostname>

    <!-- You can use these two if you only want a single listener -->
    <!--<port>8000</port> -->
    <!--<bind-address>127.0.0.1</bind-address>-->

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <bind-address>192.168.1.12</bind-address>
    </listen-socket>
    <!--
    <listen-socket>
        <port>8001</port>
    </listen-socket>
    -->

    <!--<master-server>127.0.0.1</master-server>-->
    <!--<master-server-port>8001</master-server-port>-->
    <!--<master-update-interval>120</master-update-interval>-->
    <!--<master-password>hackme</master-password>-->
    <!--<master-relay-auth>1</master-relay-auth>-->
5
    <!-- 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 -->
    <!--<relays-on-demand>1</relays-on-demand>-->


    <!-- Report <hostname> and this port to master server for redirecting
         clients to this slave -->
    <!--<master-redirect-port>8000</master-redirect-port>-->

    <!-- Relays. State connection information, and by default
         request inline metadata for mp3 streams if available.
         An on-demand relay will only retrieve the stream if
         there are listeners connected -->
    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8001</port>
        <mount>/example.ogg</mount>
        <local-mount>/different.ogg</local-mount>
        <on-demand>1</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>/path/to/stream-intro.ogg</intro>
        <hidden>1</hidden>
        <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>
    -->
    <!-- other auth possibilities include running a command
         to do the auth, mount, user and pass are passed via
         stdin to the program
    <mount>
    ....
        <authentication type="command">
             <option name="filename" value="auth_verify"/>
        </authentication>
        
        or

        for url auth, the add url needs to return a "icecast-auth-user: 1" http
        header for a user to authenicate. Both urls are sent params via POST,
        add is sent id, mount, user, pass, ip, useragent
        remove is passed id, mount, user, pass, duration

        <authentication type="url">

             state username/password if url requires it

             <option name="username" value="admin"/>
             <option name="password" value="hackme"/>
             <option name="add"    value="http://myauthserver.com/scripts/add_listener.php"/>
             <option name="remove" value="http://myauthserver.com/scripts/del_listener.php"/>
        </authentication>
    </mount -->
    
    <relay>
        <server>192.168.1.12</server>
        <port>8000</port>
        <mount>/sigma.ogg</mount>
        <local-mount>/sigma.ogg</local-mount>
        <on-demand>1</on-demand>

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

    <fileserve>1</fileserve>

    <!-- 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>
    -->

    <paths>
        <!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/share/icecast</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/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
        <pidfile>/var/run/icecast/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>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    <security>
        <chroot>0</chroot>
        <changeowner>
            <user>icecast</user>
            <group>icecast</group>
        </changeowner>
    </security>
</icecast>


ices-playlist.xml

<?xml version="1.0"?>
<ices>
    <!-- run in background -->
    <background>0</background>
    <!-- where logs, etc go. -->
    <logpath>/var/log/ices</logpath>
    <logfile>ices.log</logfile>
    <!-- 1=error,2=warn,3=info,4=debug -->
    <loglevel>4</loglevel>
    <!-- set this to 1 to log to the console instead of to the file above -->
    <consolelog>0</consolelog>

    <!-- optional filename to write process id to -->
    <!-- <pidfile>/home/ices/ices.pid</pidfile> -->

    <stream>
        <!-- metadata used for stream listing (not currently used) -->
        <metadata>
            <name>Example stream name</name>
            <genre>Example genre</genre>
            <description>A short description of your stream</description>
        </metadata>

        <!-- input module

            The module used here is the playlist module - it has
            'submodules' for different types of playlist. There are
            two currently implemented, 'basic', which is a simple
            file-based playlist, and 'script' which invokes a command
            to returns a filename to start playing. -->

        <input>
            <module>playlist</module>
            <param name="type">basic</param>
            <param name="file">/etc/playlist.txt</param>
            <!-- random play -->
            <param name="random">0</param>
            <!-- if the playlist get updated that start at the beginning -->
            <param name="restart-after-reread">0</param>
            <!-- if set to 1 , plays once through, then exits. -->
            <param name="once">0</param>
        </input>

        <!-- Stream instance
            You may have one or more instances here. This allows you to
            send the same input data to one or more servers (or to different
            mountpoints on the same server). Each of them can have different
            parameters. This is primarily useful for a) relaying to multiple
            independent servers, and b) encoding/reencoding to multiple
            bitrates.
            If one instance fails (for example, the associated server goes
            down, etc), the others will continue to function correctly.
            This example defines two instances as two mountpoints on the
            same server.  -->
        <instance>
            <!-- Server details:
                You define hostname and port for the server here, along with
                the source password and mountpoint.  -->
            <hostname>192.168.1.12</hostname>
            <port>8000</port>
            <password>11111</password>
            <mount>/sigma.ogg</mount>

            <!-- Reconnect parameters:
                When something goes wrong (e.g. the server crashes, or the
                network drops) and ices disconnects from the server, these
                control how often it tries to reconnect, and how many times
                it tries to reconnect. Delay is in seconds.
                If you set reconnectattempts to -1, it will continue
                indefinately. Suggest setting reconnectdelay to a large value
                if you do this.
            -->
            <reconnectdelay>2</reconnectdelay>
            <reconnectattempts>5</reconnectattempts>

            <!-- maxqueuelength:
                This describes how long the internal data queues may be. This
                basically lets you control how much data gets buffered before
                ices decides it can't send to the server fast enough, and
                either shuts down or flushes the queue (dropping the data)
                and continues.
                For advanced users only.
            -->
            <maxqueuelength>80</maxqueuelength>

            <!-- Live encoding/reencoding:
                Currrently, the parameters given here for encoding MUST
                match the input data for channels and sample rate. That
                restriction will be relaxed in the future.
            -->
            <encode>  
                <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
                <samplerate>44100</samplerate>
                <channels>2</channels>
            </encode>
        </instance>

    </stream>
</ices>


Содержание

Сообщения в этом обсуждении
"сетевое радио - не получается настроить"
Отправлено zeiter , 03-Мрт-06 20:42 
>в playlist.txt
>/dev/dsp
>/dev/dsp

В файлике playlist.txt должны быть указаны пути до mp3-файликов, которые ты будешь транслировать на радио, а не твои устройства!


"сетевое радио - не получается настроить"
Отправлено Mig , 03-Мрт-06 22:38 
>В файлике playlist.txt должны быть указаны пути до mp3-файликов, которые ты будешь
>транслировать на радио, а не твои устройства!
прописал mp3 файлы - заработало,
вопрос, что тогда еще надо добавить к связке icecast + ices, чтобы можно было забирать сигал поступающий с выхода fm тюнера на вход звуковой карты? т.е. каким образом радио в режиме он-лайн упаковывать в mp3?



"сетевое радио - не получается настроить"
Отправлено Аноним , 04-Мрт-06 06:46 
>>В файлике playlist.txt должны быть указаны пути до mp3-файликов, которые ты будешь
>>транслировать на радио, а не твои устройства!
>прописал mp3 файлы - заработало,
>вопрос, что тогда еще надо добавить к связке icecast + ices, чтобы
>можно было забирать сигал поступающий с выхода fm тюнера на вход
>звуковой карты? т.е. каким образом радио в режиме он-лайн упаковывать в
>mp3?


Если пользовать ices, то все делается  просто, как и написано на этом сайте, воспользуйся поиском. В двух словах так:

mkfifo  /path/radio.mp3
sox -t ossdsp -w -s -r 44100 -c 2 /dev/dsp -t raw - | lame -x -m s - /path/radio.mp3 &


"сетевое радио - не получается настроить"
Отправлено zeiter , 04-Мрт-06 13:39 
>прописал mp3 файлы - заработало,
>вопрос, что тогда еще надо добавить к связке icecast + ices, чтобы
>можно было забирать сигал поступающий с выхода fm тюнера на вход
>звуковой карты? т.е. каким образом радио в режиме он-лайн упаковывать в
>mp3?

Используй для ices другой конфиг

пример ices-live.xml (должен помочь)

<?xml version="1.0"?>
<ices>

    <!-- run in background  -->
    <background>1</background>
    <!-- where logs go. -->
    <logpath>/var/log/ices</logpath>
    <logfile>ices.log</logfile>
    <logsize>2048</logsize>
    <!-- 1=error, 2=warn, 3=infoa ,4=debug -->
    <loglevel>4</loglevel>
    <!-- logfile is ignored if this is set to 1 -->
    <consolelog>0</consolelog>

    <!-- optional filename to write process id to -->
    <!-- <pidfile>/home/ices/ices.pid</pidfile> -->

    <stream>
        <!-- metadata used for stream listing -->
        <metadata>
            <name>Example stream name</name>
            <genre>Example genre</genre>
            <description>A short description of your stream</description>
            <url>http://mysite.org</url>
        </metadata>

        <!--    Input module.

            This example uses the 'oss' module. It takes input from the
            OSS audio device (e.g. line-in), and processes it for live
            encoding.  -->
        <input>
            <module>oss</module>
            <param name="rate">44100</param>
            <param name="channels">2</param>
            <param name="device">/dev/dsp</param>
            <!-- Read metadata (from stdin by default, or -->
            <!-- filename defined below (if the latter, only on SIGUSR1) -->
            <param name="metadata">1</param>
            <param name="metadatafilename">test</param>
        </input>

        <!--    Stream instance.

            You may have one or more instances here.  This allows you to
            send the same input data to one or more servers (or to different
            mountpoints on the same server). Each of them can have different
            parameters. This is primarily useful for a) relaying to multiple
            independent servers, and b) encoding/reencoding to multiple
            bitrates.

            If one instance fails (for example, the associated server goes
            down, etc), the others will continue to function correctly.
            This example defines a single instance doing live encoding at
            low bitrate.  -->

        <instance>
            <!--    Server details.

                You define hostname and port for the server here, along
                with the source password and mountpoint.  -->

            <hostname>localhost</hostname>
            <port>8008</port>
            <password>pass1</password>
            <mount>/example1.ogg</mount>
            <yp>1</yp>   <!-- allow stream to be advertised on YP, default 0 -->

            <!--    Live encoding/reencoding:

                channels and samplerate currently MUST match the channels
                and samplerate given in the parameters to the oss input
                module above or the remsaple/downmix section below.  -->

            <encode>  
                <quality>0</quality>
                <samplerate>22050</samplerate>
                <channels>1</channels>
            </encode>

            <!-- stereo->mono downmixing, enabled by setting this to 1 -->
            <downmix>1</downmix>

            <!-- resampling.
            
                Set to the frequency (in Hz) you wish to resample to, -->
            
            <resample>
                <in-rate>44100</in-rate>
                <out-rate>22050</out-rate>
            </resample>
        </instance>

    </stream>
</ices>



"сетевое радио - не получается настроить"
Отправлено Mig , 06-Мрт-06 10:52 
спасибо конфиг переписал,
сделал (статью нашел),
sox -t ossdsp -w -s -r 44100 -c 2 /dev/dsp -t raw - | lame -x -m s - /radio/radio.mp3 & - в списке запущенных процессов появляется,
но результата нет - у клиента нет радио,
пробовал запускать в качестве микшера использую aumix
вопрос:
ossdsp - это драйвера? у меня звуковая от creative, видится в системе как Ensoniq 5880 AudioPCI, ossdsp я должен заменить на свои?

"сетевое радио - не получается настроить"
Отправлено PavelR , 06-Мрт-06 15:23 
>спасибо конфиг переписал,
>сделал (статью нашел),

>sox -t ossdsp -w -s -r 44100 -c 2 /dev/dsp -t raw
>- | lame -x -m s - /radio/radio.mp3 & - в


>вопрос:
>ossdsp - это драйвера? у меня звуковая от creative, видится в системе
>как Ensoniq 5880 AudioPCI, ossdsp я должен заменить на свои?


Посмотри в dmesg на тему какие устройства появляются при инициализации драйвера звуковой карты.

Еще посмотри man sox, там есть варианты как использовать другие -t параметры, например в Alsa.


"сетевое радио - не получается настроить"
Отправлено rrv , 28-Окт-08 21:40 
Как то через заднее место все сделано, ставишь Darkice и делаешь как тут написано http://rrv.nsk.ru/wiki/index.php/IceCast_%D0%BD�...