Tämä ohje ei ole vielä valmis. Ole ystävällinen, äläkä käytä tätä ellet tiedä mitä teet!Haluaisiko joku auttaa minua tekemään oppaan darkicestä wikiin? Olen tuossa dokumenttien luomisessa wikiin täysi tumpelo, valmiita osaan sentään editoida.
**********************************************************************'
Darkice on icecast2-palvelinta käyttävä ohjelmisto jolla voi helposti perustaa oman nettiradioaseman.
Tässä esimerkissä luomme lähetyksen joka toistaa kaiken koneella kuullun äänen matkapuhelimen internet-radio sovelluksen käyttöön. Lisäksi lähetystä voi kuunnella tavallisella tietokoneella käyttämällä VLC-soitinta.
VALMISTELU
Jotta kaikkien sovellusten äänet varmasti saadaan välitettyä, tehdään äänikortissa looppi äänikorttiin itseensä.
Äänikortin kaiutinulostulo kytketään linja sisään liittimeen 3.5mm uros stereo <--> 3.5mm uros stereo kaapelilla.
Eli käytännössä kaapeli kytketään äänikortin sinisestä rei'ästä vihreään reikään.
SOVELLUSTEN ASENNUS
Asennetaan tarvittavat sovellukset:
sudo apt-get install icecast2 darkice
SOVELLUSTEN MÄÄRITYS
luodaan tiedosto /etc/darkice.cfg
sudo nano /etc/darkice.cfg
/etc/darkice.cfg sisältö:
# Yleiset asetukset
[general]
duration = 0 # Pitkäkö lähetys tehdään (sekunteja). 0 = ikuinen
bufferSecs = 2 # Darkicen slip bufferin koko sekunteina
# Äänilähteen valinta
[input]
device = /dev/dsp # OSS DSP äänikortti
sampleRate = 22050 # sample rate Hz. Toimivia 11025, 22050 tai 44100
bitsPerSample = 16 # samplen bittimäärä, oletuksena 16
channel = 1 # kanavien määrä 1=mono 2=stereo
# Nettiradioserveriyhteyden asetukset
[icecast2-0]
bitrateMode = cbr # Striimin pakkaustapa cbr, vbr tai abr
bitrate = 16 # Striimin nopeus. radio.toimii.net serverillä 128kbps suurin sallittu
format = mp3 # Striimin formaatti mp3 tai vorbis
quality = 0.8 # Pakkauksen laatu
server = 127.0.0.1 # Nettiradioserverin osoite
port = 8000 # Nettiradiserverin portti, yleensä 8000
password =***SALASANA*** # Salasana nettiradioserverille OLTAVA SAMA KUIN /etc/icecast2/icecast2.xml -tiedostossa
mountPoint = omaradio # radion "kanava"
Name = Matti meikäläisen oma radio # striimin nimi
description = Matti testaa nettradiota # lisäselitys
url = http://www.mattiradio.fi # nettiradion urli
genre = Live # Lähetyksen genre
public = no # Saako striimin näyttää luetteloissa
määritetään tiedosto /etc/icecast2/icecast.xml. jostain syystä ei anna sudolla tehdä mitään, joten kirjaudutaan rootiksi.
(miten saisi sudolla muutettua?)
sudo su
nano /etc/icecast2/icecast.xml
muutetaan tiedoston sisältö seuraavaksi:
<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>***SALASANA***</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>***SALASANA***</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>***SALASANA***</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>localhost</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>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>-->
<!-- 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>-->
<!--
<relay>
<server>127.0.0.1</server>
<port>8001</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>
Jos halutaan että icecast2-palvelin käynnistyy koneen käynnistymisen myötä automaattisesti,
muutetaan tiedostoa /etc/default/icecast2
sudo su
nano /etc/default/icecast2
viimeisen rivin teksti
ENABLE=false
muutetaan muotoon:
ENABLE=true
MUUTOSTEN KÄYTTÖÖNOTTO JA RADION KÄYNNISTÄMINEN
Radiomme on nyt säädetty toimivaksi, mutta muutokset pitää vielä ottaa käyttöön.
Tehdään se nyt:
sudo /etc/init.d/icecast2 restart
OHJELMAN LÄHETTÄMINEN PALVELIMELLE
Käynnistetään ohjelman lähettäminen äänikortin sisääntulosta palvelimelle:
sudo darkice
PALOMUURIN SÄÄTÄMINEN ADSL-MODEEMISTA
Jos käytössäsi on NAT-yhteys, joudut vielä palomuurin asetuksista ohjaamaan portin 8000 omalle koneellesi.
Palomuureja on monenlaisia joten siitä ei tässä enempää. ADSL-laitteesi ohjekirjasta löytyy tähän ohjeet.
MUSIIKKI SOIMAAN
Nyt voit omalla suosikkisoittimellasi laittaa musiikin soimaan ja sen pitäisi olla kännykällä kuultavissa.
KUUNTELU
Kännykän internet-radioon laitat osoitteeksi
http://omaip.jossain:8000/omaradioEllet tiedä omaa julkista ip-osoitettasi, katso se tietokoneesi selaimella vaikkapa täältä:
http://ihminen.org/ip/TEKIJÄNOIKEUSMAKSUT
Huomaa että jos radiossa soittamasi musiikki on tekijänoikeuden alaista, joudut maksamaan siitä korvauksia.
lisätietoja:
http://www.teosto.fi/http://www.gramex.fi/LUETTAVAA
http://www.mbnet.fi/nettijatkot/2006/07/omanettiradio/http://wiki.ubuntu-fi.org/Dynaaminen_DNSJUONTAMINEN
Kaikki mitä itsekin kuulet tietokoneellasi, myös lähetetään. Mikäli haluat juontaa lähetystä, feidaa musiikkia soittavasta sovelluksesta ääni alas ja avaa mikseristä mikrofoni.
(pakettienhallinnasta löydät paketin "gnome-alsamixer", tutustu siihen).
!!!varo! joissain äänikorteissa mikki vuotaa enemmän tai vähemmän line-in:iin joten turvallisinta olisi että mikrofoni olisi aivan fyysisesti katkaistu vaikkapa mekaanisella kytkimellä.
PROPELLIHATTU
Mikäli haluat automaattisesti tuottaa vaikkapa tiedotteita musiikin päälle puhesyntetisaattorilla, tutustu ohjeeseen:
http://wiki.ubuntu-fi.org/festvox-suopuheKäytä skripteissäsi muodossa:
pasuspender sano minä olen tärkeä tiedote. Anteeksi kun keskeytin musiikin kuuntelusi
niin taustalla soiva musiikki sammutetaan automaattisesti viestin ajaksi. Huomaa että tässä on myös kymmenien sekuntien viive lähetystekniikasta johtuen.
******************************************************************
Haluaisiko joku testailla ohjetta ja kertoa mitä puutteita siinä on?
tuota kohtaa /etc/icecast2/icecast.xml saa kanssa selventää, siinä on aika paljon turhaakin..
Kieltämättä tämän ohjeen fiksaaminen aloittelijoillekin ymmärrettävään muotoon on melkoinen haaste
Olisiko helpompi tehdä installeri, joka kysyy tarpeelliset tiedot ja tekee säädöt automaattisesti?