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

Исходное сообщение
"Вещвние на FreeBSD"

Отправлено Grayich , 09-Окт-04 17:47 
Здравствуйте

хочется организовать радиовещание в местную сеть с FM тюнера.  Подскажите пути решения.

Спасибо.


Содержание

Сообщения в этом обсуждении
"Вещание в локальной сети"
Отправлено proff , 10-Окт-04 15:17 
$ cd /usr/ports/graphics/ffmpeg
$ cat pkg-descr

think....


"Вещвние на FreeBSD"
Отправлено sysand , 11-Окт-04 07:15 
>Здравствуйте
>
>хочется организовать радиовещание в местную сеть с FM тюнера.  Подскажите пути
>решения.
>
>Спасибо.
Ставь связку DarkIce + ShoutCast

Enjoy


Andrew



"Вещвние на FreeBSD"
Отправлено u96 , 11-Окт-04 09:50 
http://www.unix.lviv.ua/index_rus.html?art/radio.html

"Вещвние на FreeBSD"
Отправлено Grayich , 13-Окт-04 06:31 
>http://www.unix.lviv.ua/index_rus.html?art/radio.html


хорошая статья, кратко и понятно. А по поводу самого FM тюнера, нужно под него специальные драйвера ? через что с ним работать ?


"Вещвние на FreeBSD"
Отправлено sysand , 14-Окт-04 08:09 
>>http://www.unix.lviv.ua/index_rus.html?art/radio.html
>
>
>хорошая статья, кратко и понятно. А по поводу самого FM тюнера, нужно
>под него специальные драйвера ? через что с ним работать ?
>
Собственно говоря DarkIce работает со входом звуковой карты, т.е. подаешь сигнал на вход звуковухи.
Звуковухой рулишь man mixer
А тюнером
/usr/ports/audio/fmio
/usr/ports/audio/xtuner

Enjoy

Andrew


"Вещвние на FreeBSD"
Отправлено nghtf , 14-Окт-04 10:38 
Минимальные требования к железкам??

"Вещвние на FreeBSD"
Отправлено Grayich , 14-Окт-04 14:36 
>Минимальные требования к железкам??


всмысле требования ?


"Вещвние на FreeBSD"
Отправлено asmer , 14-Окт-04 17:55 
>>Минимальные требования к железкам??
>
>
>всмысле требования ?
В смысле на 286-м не получиться закодировать мпз в реальном времени.
Вот и интересно, под что такое пойдет, и с каким качеством
меня самого заинтересовало. ща стоит мертвый плагин апача под это дело, который шуфлирует мп3. Думаю таки поставить нормальный приемник и посмотреть. что выйдет ;)



"Вещвние на FreeBSD"
Отправлено Grayich , 15-Окт-04 04:51 
>В смысле на 286-м не получиться закодировать мпз в реальном времени.
>Вот и интересно, под что такое пойдет, и с каким качеством
>меня самого заинтересовало. ща стоит мертвый плагин апача под это дело, который
>шуфлирует мп3. Думаю таки поставить нормальный приемник и посмотреть. что выйдет
>;)


:) неужели такое железо еще осталось :) антиквариат :)


"Вещвние на FreeBSD"
Отправлено georgyip , 15-Окт-04 09:25 
У меня работает такое в сетке на PIII-500 128М ОЗУ, darkice+icecast2, для настройки тюнера - fmio, загрузка проца при настройках darkice - sampleRate = 22050 - 20%, при 44100 - 48%. Кодек - vorbis, чего и вам советую, когда ставил вычитал здесь же, что lame кривовато работает с фри, раньше на 4.6 стояло, сейчас на 4.10, может уже лучше, не знаю. Если интересно могу все подробно расписать что и как.

"Вещвние на FreeBSD"
Отправлено qwerty , 15-Окт-04 10:37 
Очень интересно!!!

"Вещание на FreeBSD"
Отправлено georgyip , 15-Окт-04 13:35 
Думаю расписывать как поднять звук и фм-тюнер не стоит, дело индивидуальное, лично у меня звук ess-1868, фм-тюнер - soundforge SF16-FMR2, все ISA. В общем начало - это звук, подняли ок, для моего тюнера подошел fmio, у него есть список поддерживаемых девайсов, тоже ок.
В тюнер воткнули антенну, соединили выход тюнера с линейным входом звуковой, на выходе слушаем радио.
После этого ставим darkice http://darkice.sourceforge.net/ для закачки потока на icecast2 http://www.icecast.org/, я поставил последние версии. icecast2 для вещания в сеть. В инструкции все подробно расписано, какие библиотеки они требуют, у меня все встало из портов без проблем. Единственно что при ./configure darkice надо указать --with-vorbis-prefix=/usr/local, иначе оно ищет либы в /usr/lib, а они у меня встали в /usr/local/lib. После установки darkice и icecast2 в /usr/local/etc появились их конфиги, darkice.cfg и icecast.xml соответственно.
У меня так:
darkice.cfg

# sample DarkIce configuration file, edit for your needs before using
# see the darkice.cfg man page for details

# this section describes general aspects of the live streaming session
[general]
duration = 0 # duration of encoding, in seconds. 0 means forever
bufferSecs = 5 # size of internal slip buffer, in seconds

# this section describes the audio input that will be streamed
[input]
device = /dev/dsp # OSS DSP soundcard device for the audio input
sampleRate = 22050 # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample = 16 # bits per sample. try 16
channel = 2 # channels. 1 = mono, 2 = stereo

# this section describes a streaming connection to an IceCast2 server
# there may be up to 8 of these sections, named [icecast2-0] ... # these can be mixed with [icecast-x] and [shoutcast-x] sections
[icecast2-0]
bitrateMode = abr # average bit rate
format = vorbis # format of the stream: ogg vorbis
bitrate = 112 # bitrate of the stream sent to the server
server = 127.0.0.1 # host name of the server
port = 8000 # port of the IceCast2 server, usually 8000
password = 111111 # source password to the IceCast2 server
mountPoint = sigma.ogg # mount point of this stream on the IceCast2 server name = FM radio Sigma # name of the stream
description =           # description of the stream
url = http://www.muzic.sigma # URL related to the stream
genre = various # genre of the stream
public = yes # advertise this stream?
quality = 0.8 # encoding quality

тут реально поиграться настройками можно sampleRate и bitrate, разницу при 22050 и 44100 заметно на слух, но и нагрузка на проц тоже выше. Кстати все равно что пень 500-й что целерон 500-й, видимо только от частоты зависит, а т.к. у меня не только радио а еще куча всего я пока ограничился худшим качеством. bitrate имхо никакой разницы, но у меня свои проблемы со слухом, наверно чтото больше медведя мне на ухо наступило :).

icecast.xml

<icecast>
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
    </limits>

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

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>111111</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>
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://yp.icecast.net/cgi-bin/yp.cgi</yp-url>
    </directory>
     -->

    <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.100.2</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>111111</master-password>-->
    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8000</port>
        <mount>/sigma.ogg</mount>
        <local-mount>/mystream.ogg</local-mount>

        <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>icy0</mount-name>

        <username></username>
        <password></password>

        <max-listeners>1</max-listeners>
        <!-- <dump-file>/tmp/dump-example1.ogg</dump-file> -->
        <fallback-mount>/example2.ogg</fallback-mount>
    </mount>

    <fileserve>1</fileserve>

    <paths>
        <basedir>/usr/local/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>/usr/local/icecast</logdir>
        <webroot>/usr/local/share/icecast/web</webroot>
        <adminroot>/usr/local/share/icecast/admin</adminroot>
        <pidfile>/usr/local/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"/>
          -->
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
          <loglevel>1</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    <security>
        <chroot>0</chroot>
        <!--
        <changeowner>
            <user>admin</user>
            <group>wheel</group>
    </changeowner>
        -->
    </security>
</icecast>

тут я особо ничего не менял, только указал куда цепляться, с каким паролем и какой поток тянуть, куда логи валить, оно их несколько может обслуживать, потоков.

запуск:
первым запускается icecast2, под юзером отличным от root-а, лично я сделал admin, группа wheel, из под него все ок.
/usr/local/bin/icecast -c /usr/local/etc/icecast.xml &

darkice можно root-ом
/usr/local/bin/darkice -c /usr/local/etc/darkice.cfg 2>&1 &

darkice слушает девайс на звуковой, включенный на запись, у меня по умолчанию почему то это микрофон, поэтому:
mixer =rec line

Тут бы и все ок, но при прослушивании потока winamp-ом (версия 2.95 и выше) (в playlist-е add->add url там пишем напр. 192.168.100.2:8000/sigma.ogg (см. mountPoint в darkice.cfg)), обнаружилось, что вещание ведется на слишком большом уровне записи, индикацию winamp-а зашкаливает, это как на древних магнитофонах,
где этот уровень при записи надо было выставлять вручную. Чем его понизить програмно я не нашел, воспроизведение тем же mixer, а вот записи... :(. Положение спас тот же принцип, что и в магнитофонах, а именно простой переменный сдвоенный (стерео все таки) резистор на 22К, включенный как делитель в цепь между выходом тюнера и линейным входом звуковой.

Это все. Замечания, поправки?

PS. еще есть желание поднять видео вещание на радость охране ночью, avi там и все такое, есть какие мысли насчет этого? Можно конечно и расшарить просто, но тогда народ все себе на локальный винт тянет...
icq 34210147


"Вещание на FreeBSD"
Отправлено Kerp , 12-Дек-04 14:58 
  У меня проблемма с запуском icecast2, пишет имхо :

bash-2.05b# icecast -c /usr/local/etc/icecast.xml
Changed root successfully to "/usr/local/share/icecast".
Changed groupid to 80.
Changed userid to 1004.
FATAL: could not open error logging
FATAL: could not open access logging
FATAL: Could not start logging


icecast.xml

    <paths>
                <!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/local/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>/usr/local/icecast</logdir>
        <webroot>/usr/local/share/icecast/web</webroot>
        <adminroot>/usr/local/share/icecast/admin</adminroot>
        <!-- <pidfile>/usr/local/share/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"/>
          -->
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

ПАМАГЫТЕ!!! :(


"Вещание на FreeBSD"
Отправлено SandDevil , 08-Янв-05 22:50 
создай пустые файлы access.log и error.log в папке /usr/local/icecast и поставь права на запись и онвера того, с которого айскаст стартует

В чём проблема:
у тебя в папке, указанной в строке  **<logdir>/usr/local/icecast</logdir>** нет файлов, указанных в строках    
**<accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog> **


"Вещание на FreeBSD"
Отправлено Kerp , 10-Янв-05 12:21 
>создай пустые файлы access.log и error.log в папке /usr/local/icecast и поставь права
>на запись и онвера того, с которого айскаст стартует

ИМХО сабж не создаёт эти файлы сам :(